No description
  • Go 60.8%
  • templ 30.3%
  • Shell 6%
  • Nix 2.3%
  • JavaScript 0.5%
  • Other 0.1%
Find a file
2026-09-26 14:45:02 -06:00
static feat: verify archives before skip, clear-finished, force re-download 2026-09-08 22:41:58 -06:00
vendor feat: gallery-dl UI for single and bulk CBZ downloads 2026-09-08 19:33:22 -06:00
.gitignore chore: ignore graft's local graph cache (plus .direnv) 2026-09-26 14:45:02 -06:00
default.nix feat: gallery-dl UI for single and bulk CBZ downloads 2026-09-08 19:33:22 -06:00
flake.lock feat: gallery-dl UI for single and bulk CBZ downloads 2026-09-08 19:33:22 -06:00
flake.nix feat: gallery-dl UI for single and bulk CBZ downloads 2026-09-08 19:33:22 -06:00
go.mod feat: gallery-dl UI for single and bulk CBZ downloads 2026-09-08 19:33:22 -06:00
go.sum feat: gallery-dl UI for single and bulk CBZ downloads 2026-09-08 19:33:22 -06:00
index.templ feat: verify archives before skip, clear-finished, force re-download 2026-09-08 22:41:58 -06:00
index_templ.go feat: verify archives before skip, clear-finished, force re-download 2026-09-08 22:41:58 -06:00
jobs.go feat: verify archives before skip, clear-finished, force re-download 2026-09-08 22:41:58 -06:00
jobs_test.go feat: unique archive names, exact output detection, cbz verification 2026-09-08 22:29:40 -06:00
main.go feat: verify archives before skip, clear-finished, force re-download 2026-09-08 22:41:58 -06:00
README.md feat: gallery-dl UI for single and bulk CBZ downloads 2026-09-08 19:33:22 -06:00
site.go feat: gallery-dl UI for single and bulk CBZ downloads 2026-09-08 19:33:22 -06:00
tailwind.config.js feat: gallery-dl UI for single and bulk CBZ downloads 2026-09-08 19:33:22 -06:00
test-smoke.sh feat: persistent state, dedupe, progress indicators, URL cleanup 2026-09-08 21:16:33 -06:00

gallery-dl UI

Tiny web UI for gallery-dl bulk gallery downloads that packs each gallery into a .cbz comic archive.

Layout

media/pictures/
├── inbox/                    # single downloads → <Title>.cbz lands here
└── gallery-dl/
    └── <site>/               # bulk downloads → <Title>.cbz inside site folder

Site name is normalized from the URL host (greenshines.com → greenshines).

Build

nix build .#default          # or: go build .

Generated assets (index_templ.go, static/style.css) are committed, so the build needs no templ/tailwind toolchain.

Run

gallery-dl-ui
Env var Default Purpose
GDL_PICTURES_DIR /mnt/storage/data/media/pictures Base pictures dir (inbox/ and gallery-dl/ live here)
GDL_BIN gallery-dl Path to the gallery-dl binary
GDL_CONFIG (empty) gallery-dl config file, passed with -c
GDL_EXTRACTORS (empty) Custom extractor dir, passed with -X
GDL_LISTEN :8080 Listen address

API

  • GET / — UI
  • GET /api/jobs — job list
  • POST /api/jobs — {"mode":"single"|"bulk","urls":[...],"override":"/optional/dir"}
  • GET /api/events — SSE stream (snapshot + per-job log updates)

Smoke test

nix shell nixpkgs#gallery-dl -c bash test-smoke.sh