PicturePortal

An open source project for self-hosting enthusiasts with a large and well tagged DigiKam photo collection.

T Shirt Sizing: M

I’m the creator and maintainer of PicturePortal, an open-source self-hosted Laravel/Vue3 project which provides a sleek mobile-first UI and PWA to allow filtering and browsing of a tagged photo collection managed through DigiKam.

By default, only images which have a configurable “Public” tag are exposed to public view, but current on-going work will support RBACS to allow specific authenticated users (ie friends and family who are tagged in photos) deeper access into non-public images. Photos are served through the Glide image server, which stores its cache on S3/Minio, and which helps to protect against iteration attacks by abstracting the underlying storage directory structure by referencing and resolving hashed identifiers instead of file names.

PicturePortal is downloaded as a git project and then built and run locally from a docker compose file. This builds and runs the containers for the frontend web server, the backend php-fpm server and a couple of associated containers. The docker compose file is configured with the credentials of an account created on the mysql server hosting your DigiKam database (sqlite should also work, but not battle tested).

A bit of configuration is needed to specify the ID of the DigiKam tag representing “public” images and a list of the tag IDs to be presented as the root nodes in the tree filter. The tree filter follows the DigiKam tag structure descended from these root nodes.

Finally, tell docker compose where the source images are mounted. This could be a folder on the same filesystem running the docker containers, or a mountpoint on that filesystem using NFS or sshfs. WebDAV will follow soon!

That’s all that’s needed to get PicturePortal up and running and serving your photos inside your LAN. Only devices with an IP address on the same subnet as the PicturePortal docker server can access your photos, and even then, only the photos you’ve applied the “public” tag to in DigiKam.

But that’s not much use for sharing your public portfolio, or giving friends and family access to photos tagged of them.

If you’re happy setting up NAT rules on your router, point a WAN port to the docker server and your public images are now securely shared with the world across your own Internet connection, served from your own domain name.

See more

https://pictureportal.webdevops.uk

Tech stack tags