photoprism/docker/examples/arm64
Michael Mayer ef4fde9ca8 Docker: Update ARM64 docs
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2021-12-25 20:40:57 +01:00
..
docker-compose.yml Docker: Update ARM64 docs 2021-12-25 20:40:57 +01:00
README Docker: Update ARM64 docs 2021-12-25 20:40:57 +01:00

# 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/

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.

### No Matching Manifest ###

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".

Alternatively, you can run your device with [UbuntuDockerPi](https://github.com/guysoft/UbuntuDockerPi).
It's a 64-bit Ubuntu Server with Docker pre-configured.

### 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:
  ```yaml
  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 fast, 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.

### Getting Updates ###

If an old version is running on your device and is not updated, you may need to explicitly
pull the latest image from [Docker Hub](https://hub.docker.com/r/photoprism/photoprism).
Note that the `:latest` image 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!