# Running PhotoPrism on ARM64-based devices (64-bit)
Our stable version and development preview now come as a single multi-arch image for AMD64 and ARM64 (64-bit).
Stable Release : photoprism/photoprism:latest
Development Preview: photoprism/photoprism:preview
MariaDB : arm64v8/mariadb:10.6
If your device meets the system requirements, mostly the same installation instructions as for regular Linux
servers apply:
https://docs.photoprism.app/getting-started/docker-compose/
### Raspberry Pi OS ###
To ensure compatibility with 64-bit Docker images, your Raspberry Pi 3 / 4 must boot with
the "arm_64bit=1" flag in its "config.txt" file:
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
An "exec format" error will occur otherwise.
Try explicitly pulling the ARM64 version if you've booted your device with the "arm_64bit=1"
flag and you see the "no matching manifest" error on Raspberry Pi OS (Raspbian):
docker pull --platform=arm64 photoprism/photoprism:latest
It may also help to set the DOCKER_DEFAULT_PLATFORM environment variable to "linux/arm64".
### Raspbian Alternatives ###
Raspberry Pi OS is designed to be compatible with older 32-bit applications. We recommend choosing
a standard 64-bit Linux distribution to run modern server applications, for example:
- [UbuntuDockerPi](https://github.com/guysoft/UbuntuDockerPi) is a 64-bit Ubuntu Server with Docker pre-configured
- [Ubuntu for Raspberry Pi](https://ubuntu.com/raspberry-pi)
- [Ubuntu MATE for Raspberry Pi](https://ubuntu-mate.org/raspberry-pi/)
### System Requirements ###
- Your device should have at least 4 GB of memory. Running PhotoPrism on a server with less than 4 GB of swap space
or setting a memory/swap limit can cause unexpected restarts, especially when the indexer temporarily needs more
memory to process large files.
- If you see Docker errors related to "cgroups", it may help to add the following to `/boot/firmware/cmdline.txt`:
```
cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
```
- We recommend disabling Linux kernel security in your `docker-compose.yml`, especially if you do not have experience
with the configuration:
```
photoprism:
security_opt:
- seccomp:unconfined
- apparmor:unconfined
```
- If you install PhotoPrism on a public server outside your home network, please always run it behind a secure
HTTPS reverse proxy such as Traefik, Caddy, or NGINX. Your files and passwords will otherwise be transmitted in
clear text and can be intercepted by anyone, including your provider, hackers, and governments.
!!! Note
Indexing large photo and video collections significantly benefits from local SSD storage and plenty of memory
for caching. Especially the conversion of RAW images and the transcoding of videos are very demanding.
!!! Reducing System Load
If you're running out of memory - or other system resources - while indexing, try reducing the
[number of workers](https://docs.photoprism.app/getting-started/config-options/) 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.
### Is a Raspberry Pi fast enough? ###
This largely depends on your expectations and the number of files you have. Most users report that
PhotoPrism runs smoothly on their Raspberry Pi 4. However, initial indexing typically takes much longer
than on standard desktop computers.
Also keep in mind that the hardware has limited video transcoding capabilities, so the conversion of video
file formats is not well-supported and software transcoding is generally slow.
### Getting Updates ###
Open a terminal and change to the folder where the docker-compose.yml file was saved. Now run the
following commands to download the most recent image from Docker Hub and restart your instance
in the background:
docker-compose pull --platform=arm64 photoprism
docker-compose stop photoprism
docker-compose up -d photoprism
Pulling a new version can take several minutes, depending on your internet connection speed.
Note that running an image with ":latest" tag does not cause Docker to automatically download
new images.
### Credits ###
A big thank you to [Guy Sheffer](https://github.com/guysoft) for helping us [build](https://github.com/photoprism/photoprism/issues/109)
a Raspberry Pi version!