Do you enjoy having to go to that one computer to look at your family photos? Or have you trusted all your photos to some cloud provider? I'd say no to both questions. I love being able to watch my family photos from anywhere. But I dont' love quite as much giving them all away to Google, Microsoft or whoever. So I found another way!

Luckily, I have this sweet Docker stack, and with Docker, you can deploy the most wonderful applications. One such application is "PhotoShow". With "PhotoShow", you can point to a folder or a drive containing all your photos, and it will generate thumbnails and galleries from all your folders, recursively and automatically. It can even encode your videos for smooth viewing in a browser. You can add user accounts and set custom permissions. It's really something.

After I read-only mounted my Synology folder with all my family photos on my Linux server, it was pretty simple to send my photos to my own personal cloud.

Basically, I added this to my docker-compose file after fist registering a CNAME in DNS pointing to my domain:

volumes:
  ...

  photoshow-config:
    driver: local
  photoshow-thumbs:
    driver: local

services:
  ...

  photoshow:
    container_name: photoshow
    image: linuxserver/photoshow
    container_name: photoshow
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    environment:
      - TZ=${DOCKER_TZ}
      - VIRTUAL_HOST=${PHOTOSHOW_DOMAIN}
      - VIRTUAL_PORT=80
      - VIRTUAL_PROTO=http
      - LETSENCRYPT_HOST=${PHOTOSHOW_DOMAIN}
      - LETSENCRYPT_EMAIL=${NOTIFICATION_EMAIL}
    volumes:
      - photoshow-config:/config
      - /media/synology-photos:/Pictures:ro
      - photoshow-thumbs:/Thumbs
    restart: unless-stopped

If you read up on my Docker stack, you'll see that this automatically generates the Lets Encrypt SSL-certificate and the NginX upstream server configuration.

The rest is done by PhotoView and Docker-compose. You get an web application that stores configuration and tumbnails in dynamic volumes, and fetches the phtos from a read-only NFS mount. The configuration is written by the web application the first time you acess your site when you define an admin user and start setting up the application.

BEWARE! By default, all your photos are public, so you need to switch over to private as one of the first things you do. It's a simple switch you need to do only once. After that, you control who gets access to your photos with user accounts.

Previous Post