This repository has been archived on 2026-05-31. You can view files and clone it. You cannot open issues or pull requests or push a commit.

Gallery Subscriber

A Docker-based web application for managing gallery-dl downloads with a modern web interface.

Features

  • Web Dashboard - Monitor downloads, view statistics, and manage sources
  • Source Management - Add, edit, and organize download sources from multiple platforms
  • Per-Source Configuration - Customize content types, rate limits, and patterns for each source
  • Credential Management - Securely store cookies/tokens for authenticated platforms
  • Scheduled Downloads - Automatic periodic checks for new content
  • Real-time Updates - WebSocket notifications for download progress
  • Supported Platforms: Patreon, SubscribeStar, Hentai Foundry, Discord

Quick Start

  1. Copy environment file and configure:

    cp .env.example .env
    # Edit .env with your settings (especially DB_PASSWORD and SECRET_KEY)
    
  2. Start the services:

    docker-compose up -d
    
  3. Run database migrations:

    docker-compose exec app alembic upgrade head
    
  4. Access the application:

Configuration

Environment Variables

Variable Description Default
DB_PASSWORD PostgreSQL password (required)
SECRET_KEY App secret key (32+ chars) (required)
EXTENSION_API_KEY Firefox extension auth key (required)
PORT External port 8080
DOWNLOAD_PARALLEL_LIMIT Max concurrent downloads 3
DOWNLOAD_RATE_LIMIT Delay between downloads (sec) 3.0
DEFAULT_CHECK_INTERVAL Check interval (sec) 3600

Settings Page

All configuration options are available in the web UI under Settings:

  • Download settings (parallel limit, rate limit, retries)
  • Notification settings (webhooks)
  • Raw gallery-dl.conf editor
  • Platform defaults reference

Screenshots

Dashboard

  • Overview of sources and download statistics
  • Recent downloads with status
  • Sources needing attention

Sources

  • List all sources with filtering
  • Enable/disable sources
  • Trigger manual checks
  • Configure per-source options

Downloads

  • Full download history
  • Filter by status, source, date
  • View detailed logs
  • Retry failed downloads

Credentials

  • Platform credential status
  • Upload cookies/tokens
  • Verify credentials

Settings

  • Application configuration
  • Gallery-dl config editor
  • Platform documentation

API Endpoints

Endpoint Description
GET /api/sources List all sources
POST /api/sources Create a new source
GET /api/sources/:id Get source details
PATCH /api/sources/:id Update a source
DELETE /api/sources/:id Delete a source
POST /api/sources/:id/check Trigger download check
GET /api/downloads List download history
GET /api/downloads/stats Get download statistics
POST /api/downloads/:id/retry Retry failed download
GET /api/credentials List credential status
POST /api/credentials Upload cookies/tokens
DELETE /api/credentials/:platform Remove credentials
GET /api/settings Get application settings
PATCH /api/settings Update settings
GET /api/platforms List supported platforms
WS /ws/events Real-time event stream

Project Structure

gallery-subscriber/
├── backend/              # Quart API server
│   ├── app/
│   │   ├── api/          # REST + WebSocket endpoints
│   │   ├── models/       # SQLAlchemy database models
│   │   ├── services/     # Business logic (gallery-dl wrapper)
│   │   ├── tasks/        # Celery background tasks
│   │   └── utils/        # Encryption, cookies, etc.
│   └── alembic/          # Database migrations
├── frontend/             # Vue 3 + Vuetify SPA
│   └── src/
│       ├── views/        # Page components
│       ├── stores/       # Pinia state management
│       └── services/     # API client
├── extension/            # Firefox extension (planned)
├── scripts/              # Migration utilities
└── Dockerfile            # Multi-stage build (frontend + backend)

Technology Stack

  • Backend: Quart (async Flask) + SQLAlchemy + PostgreSQL
  • Task Queue: Celery + Redis
  • Frontend: Vue 3 + Vuetify 3 + Pinia (compiled to static files, served by Quart)
  • Downloader: gallery-dl

Development

For development with hot-reload:

docker-compose -f docker-compose.yml -f docker-compose.dev.yml up

Frontend development (standalone):

cd frontend
npm install
npm run dev

Migrating from Legacy Project

If you have an existing Gallery-DL-scripting setup:

# Coming soon: migration script
python scripts/migrate_legacy.py \
  --sources /path/to/sources.yaml \
  --config /path/to/gallery-dl.conf

License

MIT

S
Description
No description provided
Readme 430 KiB
2026-02-04 13:13:31 -05:00
Languages
Python 58.5%
Vue 28%
JavaScript 9.8%
HTML 2%
CSS 1.2%
Other 0.5%