Skip to content

Frequently Asked Questions

PhotoPrism does not work, what can I do?

If the application can not be opened in the browser or the container doesn't start at all, you might have found a bug, you might be using an outdated container image or your folder is not readable (check permissions).

You're welcome to send a full report to so that we can assist you.

Do you support Podman?

In short, it works just fine both in rootless and under root. Mind the SELinux which is enabled on Red Hat compatible systems, you may hit permission error problems. More details on on how to run PhotoPrism with Podman on CentOS in the following blogpost, it includes all the details including root and rootless modes, user mapping and SELinux:

Do you provide LXC images?

There is currently no LXC build for PhotoPrism, see issue #147 for details.

How can I optimize caching for performance?

Some users might want to place the thumbnail cache on a separate, faster file system while keeping the actual photo files on large, slow bulk storage. This should result in faster access to the thumbnails.

To do this, we add a further volume (-v) parameter to the docker script so we use an external path (outside the container) for the cache files. You can get the internal path with photoprism config, or as a docker command in a running system (for Linux/BSD systems):

sudo docker exec photoprism photoprism config | grep cache-path

This should return a line such as:

cache-path            /home/photoprism/.cache/photoprism

for the internal path. We now know to add a line like

  -v <MYCACHE_FOLDER>:/home/photoprism/.cache/photoprism \

to the docker invocation, with your actual path to the cache folder replacing <MYCACHE_FOLDER>.

As an example, let's assume a ZFS filesystem with two pools ("volumes" in classical terminology): A pool tank in a raidz2 (RAID6) configuration based on hard drives that holds the original pictures, and a pool dozer in a mirrored (RAID1) configuration based on SSD or NVMe drives to store the thumbnails. Our docker script could be:

docker run -d \
  --name photoprism \
  -p 2342:2342 \
  -v /tank/photos/:/home/photoprism/Pictures/Originals \
  -v /dozer/cache/:/home/photoprism/.cache/photoprism \

In a case like this, you will probably also want to optimize the datasets ("file systems") tank/photos and dozer/cache further. For instance, the original photo files will call for a larger recordsize than the smaller cache files.

Mapping database directory

Everytime a container with PhotoPrism is removed, the database is lost. To prevent unwanted reindex process, map the database directory to directory on the host similarly like folder with original photos:

docker run -d --name photoprism -p 2342:2342 ... \
  -v /srv/photoprism/db:/home/photoprism/.local/share/photoprism/resources/database \


Our database schema still changes a lot as we do performance optimizations and add features. Therefore we cannot provide a smooth upgrade path and you should be prepared to delete your current database and re-index. To spare you a disappointment, we kindly advise you not to index large photo collections at the moment.