PhotoPrism for Cloud Servers running Ubuntu 20.04 LTS (Focal Fossa)
===================================================================
Run this script as root to install PhotoPrism on a cloud server e.g. at DigitalOcean:
bash <(curl -s https://dl.photoprism.org/docker/cloud/setup.sh)
This may take a while to complete, depending on the performance of your
server and its internet connection.
When done - and you see no errors - please open
https://<YOUR SERVER IP>/
in a Web browser and log in using the initial admin password shown
by the script. You may also see the initial password by running
cat /root/.initial-password.txt
as root on your server. To open a terminal:
ssh root@<YOUR SERVER IP>
Data and all config files related to PhotoPrism can be found in
/opt/photoprism
The main docker-compose config file for changing config options is
/opt/photoprism/docker-compose.yml
The server is running as "photoprism" (UID 1000) by default. There's no need
to change defaults unless you experience conflicts with other services running
on the same server. For example, you may need to disable the Traefik reverse
proxy as the ports 80 and 443 can only be used by a single web server / proxy.
Configuring multiple apps on the same server is beyond the scope of this base
config and for advanced users only.
## System Requirements ##
We recommend hosting PhotoPrism on a server with at least 2 cores and
4 GB of memory. Beyond these minimum requirements, the amount of RAM
should match the number of cores. Indexing large photo and video
collections significantly benefits from fast, local SSD storage.
RAW file conversion and automatic image classification using TensorFlow
will be disabled on servers with less than 2 GB of physical memory.
## Using Let's Encrypt as HTTPS certificate resolver ##
By default, a self-signed certificate will be used for HTTPS connections.
Browsers are going to show a security warning because of that. Depending
on your settings, they may also refuse connecting at all.
To get an official, free HTTPS certificate from Let's Encrypt, your server
needs a fully qualified public domain name first, e.g. "photos.yourdomain.com".
You may add a static DNS entry (on DigitalOcean go to Networking > Domains),
or use a Dynamic DNS service of your choice.
Once your server has a public domain name, please disable the self-signed
certificate and enable domain based routing in docker-compose.yml and
traefik.yaml (see inline instructions in !! UPPERCASE !!):
ssh root@<YOUR SERVER IP>
nano /opt/photoprism/docker-compose.yml
nano /opt/photoprism/traefik.yaml
Then restart services in a terminal for the changes to take effect:
docker-compose stop
docker-compose up -d
To check logs for errors:
docker-compose logs -f