====== HomeGallery ====== **Note:** since i don't use this service anymore, this page might be not updated. [[https://home-gallery.org|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 [[https://docs.home-gallery.org/install/index.html|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**: 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 [[https://docs.home-gallery.org/configuration/index.html#configuration|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: 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: 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 [[selfhost:nginx|The Reverse Proxy concept]] for more details. ===== Autostart ===== For the API container, to start it, and set it up on boot, as usual follow my indications [[gentoo:containers|Using Containers on Gentoo]], so link the **user-containers** init script: ln -s /etc/init.d/user-containers /etc/init.d/user-containers.homegalleryapi and create the following config file: USER=homegalleryapi DESCRIPTION="The homegallery APIs" Add the service to the default runlevel and start it now: rc-update add user-containers.homegalleryapi default rc-service user-containers.homegalleryapi start For the web part, following my [[gentoo:locald|Custom User Services]], in e you need symlinks for the server: And the associated service support file **/data/daemons/homegallery/service_homegallery_start**: COMMAND="/data/daemons/homegallery/gallery" ARGUMENTS=(run server) Ensure the server starts after the container. ===== Upgrade ===== See [[https://docs.home-gallery.org/install/index.html#upgrade-the-gallery|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 &