Open a terminal and change to the folder where the
docker-compose.yml file is located.1 Now run the following commands to download the most recent version from our private registry and restart your instance in the background:2
docker compose pull docker compose stop docker compose up -d
Pulling a new version can take several minutes, depending on your internet connection speed. Advanced users can add this to a
Makefile so that they only have to type a single command like
Even when you use an image with the
:latest tag, Docker does not automatically download new images for you. You can either manually upgrade as shown above, or set up a service like Watchtower to get automatic updates.
You can test upcoming features and enhancements by changing the image from
photoprism/photoprism:preview in your
docker-compose.yml. Then pull the most recent image and restart your instance as shown above.
Adding Watchtower as a service to your
docker-compose.yml will automatically keep images up-to-date:
services: watchtower: image: containrrr/watchtower restart: unless-stopped volumes: - "/var/run/docker.sock:/var/run/docker.sock"
Automatic updates may interrupt indexing and import operations. Only enable Watchtower if you are comfortable with this.
Open a terminal on your server, and run the following command to pull the most recent container image:2
docker pull photoprism/photoprism:latest
We recommend performing a complete rescan after major updates to take advantage of new search filters and sorting options. Be sure to read the notes for each release to see what changes have been made and if they might affect your library, for example, because of the file types you have or because new search features have been added. If you encounter problems that you cannot solve otherwise (i.e. before reporting a bug), please also try a rescan and see if it solves the problem.
You can start a rescan from the user interface by navigating to Library > Index, selecting "Complete Rescan", and then clicking "Start". Manually entered information such as labels, people, titles or descriptions will not be modified when indexing, even if you perform a "complete rescan".
Be careful not to start multiple indexing processes at the same time, as this will lead to a high server load.
Our configuration examples are generally based on the current stable version to take advantage of performance improvements. This does not mean that older versions are no longer supported and you must upgrade immediately. We recommend not using the
:latest tag for the MariaDB Docker image and to upgrade manually by changing the tag once we had a chance to test a new major version, e.g.:
services: mariadb: image: mariadb:10.11 ...
If MariaDB fails to start after upgrading from an earlier version (or migrating from MySQL), the internal management schema may be outdated. See Troubleshooting MariaDB Problems for instructions on how to fix this.
For detailed information on specific product features, services, and related resources, see our Knowledge Base, or read the User Guide for help using the web user interface:
The default Docker Compose config filename is
docker-compose.yml. For simplicity, it doesn't need to be specified when running
docker-composein the same directory. Config files for other apps or instances should be placed in separate folders. ↩
Our guides use the new
docker composecommand by default. If your server does not yet support it, the old
docker-composecommand will still work. Users of Red Hat Enterprise Linux® and compatible Linux distributions such as CentOS, Fedora, AlmaLinux, and Rocky Linux can substitute the
docker composecommands with
podman-composeas drop-in replacements. ↩ ↩