• bvandeusen released this 2026-05-22 14:16:23 -04:00 | 769 commits to dev since this release

    First FabledCurator release. Merges FC-1 (Foundation) → FC-5 (Migration tooling) onto main from dev. CalVer per FabledRulebook/forgejo.md.

    What's in this build

    The full FabledCurator merge of ImageRepo + GallerySubscriber:

    • FC-1 Foundation — Quart + Vue scaffold, unified Postgres schema (migrations 0001–0015), Celery + Redis, Docker setup.
    • FC-2 Image backbone (a–e) — gallery / showcase / modal viewer, importer with sha+phash dedup, ML pipeline (WD14 + SigLIP + centroids), discovery surfaces (tag directory, merge, bulk select, series), provenance system (artist as row, post + image_provenance + post_attachment), integrity verification.
    • FC-3 Subscription backbone (a–f) — Sources management, encrypted Credentials store, gallery-dl Downloader, Scheduling + source health with exponential backoff, Posts stream, Artists directory.
    • FC-5 Migration tooling — file-based ingest UI for ImageRepo + GallerySubscriber exports (/api/migrate/*, LegacyMigrationCard), backup + rollback, ML re-queue, sha256-sample verify.

    Coordinated export scripts on main of the legacy repos:

    • bvandeusen/imagerepo @ 2fb1a2ascripts/export_for_fabledcurator.py.
    • bvandeusen/GallerySubscriber @ d47b4c8scripts/export_for_fabledcurator.py.

    Operator notes (migration workflow)

    1. Pull this image: git.fabledsword.com/bvandeusen/fabledcurator:main (or :latest).
    2. docker compose up -d with the standard FC compose file. On first boot alembic upgrade head brings the schema from empty to 0015.
    3. Run the export scripts on the host:
      • python ~/Nextcloud/Projects/ImageRepo/scripts/export_for_fabledcurator.py > ~/ir-export.json
      • python ~/Nextcloud/Projects/GallerySubscriber/scripts/export_for_fabledcurator.py --secret-key "$GS_SECRET_KEY" > ~/gs-export.json
    4. Bind-mount IR's images dir at /import/imagerepo:ro per the docker-compose.yml example.
    5. In FC UI → Settings → Maintenance → Legacy migration:
      • Click Backup FC (creates pre-migration snapshot).
      • Upload gs-export.json, click Ingest GS.
      • Upload ir-export.json, click Ingest IR.
      • Switch to Settings → Import tab → trigger the filesystem scan.
      • Back to Maintenance → Apply IR tagsQueue MLVerify.
    6. Once verified, delete the export JSON files (the GS one contains plaintext credentials).

    Constraints

    Homelab HTTP. No TLS in the app itself. Self-hosted single-operator. ImageRepo + GallerySubscriber become archived once this build's migration completes on the homelab.

    Downloads