Gallery with duplicate search and weighted tags, plus DNN autotagger
Go to file
Přemysl Eric Janouch e895beadb7
All checks were successful
Alpine 3.20 Success
Debian Bookworm Success
Add a check option to garbage collect DB files
2024-12-21 12:18:54 +01:00
deeptagger deeptagger: flush batches 2024-12-14 22:56:26 +01:00
public gallery: make it reverse proxy friendly 2024-01-27 18:09:48 +01:00
.gitignore Add .gitignore 2024-12-21 09:38:44 +01:00
gen-initialize.sh Initial commit 2023-12-29 15:02:28 +01:00
go.mod Initial commit 2023-12-29 15:02:28 +01:00
go.sum Initial commit 2023-12-29 15:02:28 +01:00
initialize.sql gallery: implement AND/NOT for tag search 2024-01-22 19:52:35 +01:00
LICENSE Add a deep tagger in C++ 2024-01-18 18:31:09 +01:00
main.go Add a check option to garbage collect DB files 2024-12-21 12:18:54 +01:00
Makefile Initial commit 2023-12-29 15:02:28 +01:00
README.adoc gallery: improve the README 2024-01-27 18:30:57 +01:00
test.sh Add a sync option to exclude paths by regexp 2024-12-21 11:12:00 +01:00

gallery

This is gallery software designed to maintain a shadow structure of your filesystem, in which you can attach metadata to your media, and query your collections in various ways.

All media is content-addressed by its SHA-1 hash value, and at your option also perceptually hashed. Duplicate search is an essential feature.

The gallery is designed for simplicity, and easy interoperability. sqlite3, curl, jq, and the filesystem will take you a long way.

Prerequisites: Go, ImageMagick, xdg-utils

ImageMagick v7 is preferred, it doesnt shoot out of memory as often.

Getting it to work

# apt install build-essential git golang imagemagick xdg-utils
$ git clone https://git.janouch.name/p/gallery.git
$ cd gallery
$ make
$ ./gallery init G
$ ./gallery sync G ~/Pictures
$ ./gallery thumbnail G             # parallelized, with memory limits
$ ./gallery -threads 1 thumbnail G  # one thread only gets more memory
$ ./gallery dhash G
$ ./gallery web G :8080

The intended mode of use is running daily automated sync/thumbnail/dhash/tag batches in a cron job, or from a systemd timer.

The web command needs to see the public directory, and is friendly to reverse proxying.