This is an old revision of the document!
HomeGallery
HomeGallery is a nice photo gallery to be self-hosted. It support AI and many other features.
It comes with Docker and bare-metal instructions, which i like very much. Also it supports base-url's too.
The reverse-geocoding and AI stuff is accessed via public APIs on api.home-gallery.org specially for low-powered devices, but if your server can support it, you can also self host this part using Docker/Podman.
Installation
Full documentation is well maintained and csan be found here.
Create a homegallery user as a memeber of the photos group:
useradd -d /deposito/daemons/homegallery -m -g photos homegallery su - homegallery curl -sL https://dl.home-gallery.org/dist/latest/home-gallery-latest-linux-x64 -o gallery chmod 755 gallery
Installing the API server is ismpler using a container, do use the following docker-compose.yml:
- docker-compose.yml
version: "3.9" services: api: # custom build via #build: packages/api-server image: xemle/home-gallery-api-server environment: # TensorflowJS backends # - cpu: slowest and best support # - wasm: good perfromance for arm64 and amd64 platforms # - node: best performance on amd64 platform #- BACKEND=cpu #- BACKEND=wasm - BACKEND=node ports: - "3023:3000"
Note that you should not create a specific network for the API server to ensure it works with the non-containerized server.
Then the usual:
podman compose pull
Configuration
Full configuration is here.
First of all, run HomeGallery to let it initialize the configiuration:
./gallery run init --source ~/Pictures
Now you can edit the /data/daemons/homegallery/.config/home-gallery/gallery.config.yml. In detail, you will want to edit at least the following values:
- gallery.config.yml
extractor: apiServer: url: http://localhost:3023 timeout: 30 concurrent: 5 server: port: 3022 host: '127.0.0.1' BasePath: /gallery/
Please note that for BasePath to work, the trailing / is required!
Reverse Proxy
Example NGINX configuration:
- gallery.conf
location /gallery/ { proxy_pass http://127.0.0.1:3022/; 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; }
Refer to The Reverse Proxy concept for more details.
Startup
Following my Custom User Services, in this case you need two sets of symlinks, one for the container and one for the server:
Ensure the server starts after the container.
Upgrade
See here:
kill gallery podman compose down podman compose pull mv gallery gallery.old curl -sL https://dl.home-gallery.org/dist/latest/home-gallery-latest-linux-x64 -o gallery chmod 755 gallery podman compose up -d ./gallery run import ./gallery run server &