PiGallery2

PiGallery2 is a fast and efficient photo viewer for your photo collections.

Installing

Create a pigallery2 user belonging to group photos:

groupadd photos
useradd -d /data/daemons/pigallery2 -m -g photos pigallery2

Installing on bare-metal on Gentoo is not easy because some dependencies still require Python 2 (!!!) it seems. Going containers is currently the best approach. See Using Containers on Gentoo for more details on containers in Gentoo.

Grab the docker-compose file and start it, be sure to grab the one without NGINX:

su - pigallery2
wget https://github.com/bpatrik/pigallery2/raw/master/docker/docker-compose/pigallery2-only/docker-compose.yml

now edit it. Change the port from 80 to 3011 (of course, pick your preferred port!), and setup properly your folders.

Also, add the following lines to the end of the docker-compose file:

networks:
  pigallery2-net: {}
  

to segregate Pigallery2 to it's own subnetwork.

It's installation time:

podman compose pull

NGINX reverse proxy

The following NGINX config:

photos.conf
location /photos/ {
        proxy_pass http://127.0.0.1:3011/;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
}

You will be able to access your Pigallery2 on https://mydomain.com/photos. Add it to your NGINX config and restart it. See The Reverse Proxy concept page for more details.

Starting and autostart on boot

Following my Custom User Services approach, create the links:

cd /etc/local.d
ln -s _servicer.sh 42-pigallery2--podman.start
ln -s _servicer.sh 42-pigallery2--podman.stop

Now, manual first start onceto create the configuration file:

./42-pigallery2--podman.start

And then want to shut it down:

./42-pigallery2--podman.stop

so that you can edit the configuration file /data/daemons/pigallery2/pigallery2/config/config.json and change the following line to look like:

"urlBase": "/photos/"

to ensure Pigallery2 works with the new subpath.