Skip to content

Running PhotoPrism on a Raspberry Pi

Our stable version and development preview now come as a single multi-arch image for AMD64, ARM64, and ARMv7. If your device meets the system requirements, mostly the same installation instructions as for regular Linux servers apply.

Use photoprism/photoprism:latestfor the stable release or photoprism/photoprism:preview for testing preview builds. Make sure to pull the most recent image from Docker Hub. Existing users are advised to update their docker-compose.yml config based on our examples for ARM64 and ARMv7-based devices.

Owners of ARMv7-based devices have to revert to an alternative image if they want to use MariaDB. The official image is available for AMD64 and ARM64 only. Pay close attention to changed directory and environment variable names.

System Requirements

It's important that you boot your Raspberry Pi 3 / 4 with the parameter arm_64bit=1 in config.txt to use our ARM64 image. Alternatively, you may run it on UbuntuDockerPi. It's a 64bit Ubuntu Server with Docker pre-installed.

Your device should have at least 4 GB of memory. Also make sure it has at least 4 GB of swap configured, so that indexing doesn't cause restarts when there are memory usage spikes.

Indexing large photo and video collections significantly benefits from fast, local SSD storage, and plenty of memory for caching. Especially the conversion of RAW images and the transcoding of videos are very demanding.

To avoid permission issues, your docker-compose.yml should include the following security options:

      - seccomp:unconfined
      - apparmor:unconfined

Big thank you to Guy Sheffer for building this!

If you're running out of memory - or other system resources - while indexing, try reducing the number of workers by setting PHOTOPRISM_WORKERS to a reasonably small value in docker-compose.yml (depending on the performance of the server). As a measure of last resort, you may disable using TensorFlow for image classification and facial recognition.