Sign inSign up

rigon/photo-gallery

By rigon

Updated over 1 year ago

Photo Gallery is a self-hosted performant application to organize your photos built for speed

Image
Web servers
Databases & storage
1

10K+

rigon/photo-gallery repository overview

Photo Gallery is a self-hosted performant application to organize your photos. Built for speed with React and Go, explore your photos quick and easy!

Live Demo

Photo Gallery

Quick start

Using docker, run:

docker run -p 3080:3080 --name photo-gallery rigon/photo-gallery:demo

That's it, enjoy! Just open in your browser http://localhost:3080.

This image however includes a demo gallery, for your own use please use rigon/photo-gallery.

Goals

Built around the file system: photos are loaded from albums. Data is preserved as-is in the filesystem. Changes you make later are saved as transparently as possible, like as choosing your favorites. No requirement to be tied to a database. If you decide for another solution you should own all your data.

Performant: no need for initial and regular scans. Thumbnails are used to see a large amount of photos at a time and are automatically generated on-the-fly.

Made for photography: for everyone, amateur or professional, that enjoys taking photos and revisiting precious memories captured through them.

Ease of use: navigation through albums as easy as possible

Quick start

Using docker, run:

docker run -p 3080:3080 --name photo-gallery rigon/photo-gallery:demo

That's it, enjoy! Just open in your browser http://localhost:3080.

This image however includes a demo gallery, for your own use please use rigon/photo-gallery.

Usage

Server help:

Usage of ./server/photo-gallery:
  -b, --[no-]cache-thumbnails   Generate missing thumbnails while scanning (default true)
  -c, --collection strings      Define a new collection. The order used will will be the same used in the interface.
                                Example: -c name=Photos,path=/photos,thumbs=/tmp
                                List of possible options:
                                  name           Name of the collection
                                  path           Location of the collection, i.e. path where the photos are stored
                                  thumbs         Path to store the thumbnails (by default is the path set with --thumbs)
                                  db             Path to cache DB, if a filename is provided it will be located in thumbnails directory
                                  hide=false     Hide the collection from the list (does not affect webdav)
                                  rename=true    Rename files instead of overwriting them
                                  readonly=false
      --debug                   Enable debug
      --disable-scan            Disable scans on start, by default will run a quick scan (cache info of new albums)
      --disable-webdav          Disable WebDAV
      --full-scan               Perform a full scan on start (validates if all cached data is up to date)
  -H, --host string             Specify a host (default "localhost")
  -p, --port int                Specify a port (default 3080)
  -r, --recreate-cache          Recreate cache DB, required after DB version upgrade
  -t, --thumbs string           Default path to store thumbnails
      --workers-info int        Number of concurrent workers to extract photos info (default 2)
      --workers-thumb int       Number of concurrent workers to generate thumbnails, by default number of CPUs (default N)
Docker

This project is distributed via docker (Photo Gallery Docker Hub page).

The following example illustrates a case where you have two folders mounted with volumes, one with the collection of photos that is read-only and a recent folder with your still unorganized photos that is writable.

docker run -d -p 3080:3080 --restart=always --name photo-gallery \
-v photo-gallery_data:/thumbs \
-v /media/data/photos/:/photos/:ro \
-v /media/data/recent/:/recent/:rw \
rigon/photo-gallery \
-c "name=Photos,path=/photos,thumbs=/thumbs" \
-c "name=Recent,path=/recent,thumbs=/thumbs"

If you prefer Docker Compose, here is the same example:

version: "3"

volumes:
  photo-gallery_data:

services:
  photo-gallery:
    image: rigon/photo-gallery
    volumes:
      - photo-gallery_data:/thumbs
      - /media/data/photos/:/photos/:ro
      - /media/data/recent/:/recent/:rw
    ports:
      - 3080:3080
    command:
      - "-cname=Photos,path=/photos,thumbs=/thumbs"
      - "-cname=Recent,path=/recent,thumbs=/thumbs"

photo-gallery_data can be safely deleted, however cached data must be regenerated.

WebDAV access

WebDAV endpoint is like http://localhost:3080/webdav and makes it very easy to access to the photo galleries in the file explorer (just past the URL in the address bar) or to upload photos directly from your phone.

For uploading from your phone, the app PhotoSync makes that task very convinent. However for WebDAV functions you have to purchase it and we do not have any partnership with them. When creating a new WebDAV configuration in PhotoSync, make sure you fill the field Directory with /webdav

Remote access is also possible by configuring Port forwarding over SSH using tools like Terminus. See How to configure Port forwarding in Terminus. For iOS is more difficult setting it up, you can find more info here and here.

Contribute

Contributions to this project are very welcome, by reporting issues or just by sharing your support. That means the world to me!

Please help me maintaining this project, only with your support I can take the time to make it even better. Look here for more info!

Tag summary

Content type

Image

Digest

sha256:a328b6099

Size

51.7 MB

Last updated

over 1 year ago

docker pull rigon/photo-gallery