Setup Using Docker Compose¶
To simplify running PhotoPrism on a server, we strongly recommend using Docker Compose.
In addition, we plan to ship the final app as a single binary for users that don't know or like Docker. An image for the Raspberry Pi is now available too.
Step 1: Configure¶
Download docker-compose.yml (right click and Save Link As... or use
wget) to a directory of your choice and edit directory names as needed:
By default, a folder named
Pictures in your home directory will be used to store all images and sidecar files. You don't need to create it.
PhotoPrism will also create
Originals in this folder: You may copy photos to import and copy or move them from there to avoid duplicates.
Files that cannot be imported will stay in the import directory, nothing gets lost. Using import is strictly optional and can be disabled in Settings.
To enable read-only mode, set
true. You may additionally want to
mount your originals directory with a
:ro flag so that Docker prevents any write operations.
Your image files won't be deleted, modified or moved. We might later update metadata in XMP sidecar files to sync with Adobe Lightroom. A JPEG representation might be created for RAW, HEIF, TIFF, PNG, BMP and GIF images in order to render thumbnails. You can enable read-only mode to prevent this completely, but you will also lose the functionality.
Step 2: Start the server¶
Open a terminal, go to the directory in which you saved the config file and run this command to start the server:
docker-compose up -d
Now open http://localhost:2342/ in a Web browser to see the user interface. The default password is "photoprism".
The port and other basic settings can be changed in
Remember to stop and re-create the container whenever configuration values changed:
docker-compose stop photoprism docker-compose up -d --no-deps photoprism
To also update the Docker image:
docker-compose pull photoprism docker-compose stop photoprism docker-compose up -d --no-deps photoprism
Be aware that later builds may expect more or different configuration values.
We always keep our example configuration up to date for reference.
In addition, you can run
photoprism help inside the container to see all options incl.
environment variable names and a short description.
Step 3: Index your library¶
Go to Library in our Web UI to start indexing or importing. Alternatively, you can run this command in a terminal to index all files in your originals folder:
docker-compose exec photoprism photoprism index
The index command will automatically create JPEGs from other file types when needed to display them in a browser. They will be stored in the same folder next to the original using the best possible quality. You can disable this in Settings. Converting is currently not possible in read-only mode.
Photos will become visible one after another. You can watch the indexer working in the terminal, or the logs tab in Library.
photoprism index --all will re-index all originals, including already indexed and unchanged files. This can be
useful after updates that add new features.
To import files, run
photoprism import after putting them in the import folder:
docker-compose exec photoprism photoprism import
For a list of commands and config options run
docker-compose exec photoprism photoprism help
You should now be able to see your photos. You can continue using your favorite tools like Photoshop or Lightroom
to edit images in the originals folder. Run
photoprism index to reindex them as needed.
Even deleting and adding is possible. Easy, isn't it?