Introduction

photoprism help lists all commands and config options available in the current version:

docker compose exec photoprism photoprism help

Use the --help flag to see a detailed command description, for example:

docker compose exec photoprism photoprism backup --help

PhotoPrism's command-line interface is also well suited for job automation e.g. using a scheduler.

When using Docker Compose, you can prefix the commands you want to run with docker compose exec [service] to execute them in the specified service container. If this fails with no container found, please make sure that the service has been started, you have specified an existing service (usually photoprism) and you are in the folder where your compose.yaml or docker-compose.yml file is located.

Opening a Terminal

To open a terminal session as the default user:

docker compose exec photoprism bash

Since the above will open the terminal as root by default, we recommend that you pass the -u flag to explicitly open a non-root session if PhotoPrism is running under a specific user account, for example:

docker compose exec -u 1000 photoprism bash

This avoids potential filesystem permission issues that can occur when a command creates new files or folders, e.g. to store thumbnails.

Changing the User ID

Specifying a user with the -u flag is possible for all commands you run with Docker and Docker Compose. In the following examples, it is omitted for brevity. Note, however, that commands that you run without an explicit user ID might be executed as root. The currently supported user ID ranges are 0, 33, 50-99, 500-600, 900-1250, and 2000-2100.

We recommend running the photoprism service as a non-root user by setting either the user service property or the PHOTOPRISM_UID environment variable in your compose.yaml or docker-compose.yml file. Don't forget to update file permissions and/or ownership with the chown command when you make changes.

Examples

Action Command
Start Services docker compose up -d
Stop Services docker compose stop
Download Updates docker compose pull
Uninstall docker compose rm -s -v
Watch Logs docker compose logs -f --tail=100
Display Config Values docker compose exec photoprism photoprism show config
Show Migration Status docker compose exec photoprism photoprism migrations ls
Repeat Failed Migrations docker compose exec photoprism photoprism migrations run -f
Reset Database docker compose exec photoprism photoprism reset --yes
Backup Database docker compose exec photoprism photoprism backup -a -i
Restore Database docker compose exec photoprism photoprism restore -a -i
Change Password docker compose exec photoprism photoprism passwd [username]
Show User Management Commands docker compose exec photoprism photoprism users help
Reset User Accounts docker compose exec photoprism photoprism users reset --yes
Reset Sessions and Access Tokens docker compose exec photoprism photoprism auth reset --yes
Show Face Recognition Commands docker compose exec photoprism photoprism faces help
Index Faces docker compose exec photoprism photoprism faces index
Reset People & Faces docker compose exec photoprism photoprism faces reset -f
Transcode Videos to AVC docker compose exec photoprism photoprism convert
Regenerate Thumbnails docker compose exec photoprism photoprism thumbs -f
Update Index docker compose exec photoprism photoprism index --cleanup
Move to Originals docker compose exec photoprism photoprism import [path]
Copy to Originals docker compose exec photoprism photoprism cp [path]

Note that our examples use the new docker compose command by default. If your server does not yet support it, you can still use docker-compose or alternatively podman-compose on Red Hat-compatible Linux distributions.

docker compose exec photoprism photoprism index -f rescans all originals, including already indexed and unchanged files. This may be necessary after major upgrades and after migrations of the database schema, especially if search results are missing or incorrect. Note you can also start a rescan from the user interface by navigating to Library > Index, checking "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".

PhotoPrism® Documentation

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: