CI / lint (push) Successful in 3s
CI / extension-version (push) Successful in 2s
Build images / build-agent (push) Successful in 7s
CI / frontend-build (push) Successful in 24s
CI / backend-lint-and-test (push) Failing after 53s
extension / lint (push) Successful in 22s
Build images / build-ml (push) Successful in 2m10s
CI / integration (push) Failing after 2m33s
Build images / sign-extension (push) Successful in 5m33s
Build images / build-web (push) Successful in 1m7s
Build images / smoke-web (push) Skipped
Build images / promote (push) Skipped
Ships with the switch-off rather than with the code removal: a doc that promises a platform the product refuses is the Install and Public Surface area's characteristic defect. pixiv comes out of README (twice), SECURITY.md (twice), .env.example and the compose header. The stored-credential warnings now name Patreon and SubscribeStar - the accounts that usually carry a payment method. One correction beyond pixiv. README said FabledCurator follows creators on Patreon, SubscribeStar, Pixiv "and anything gallery-dl supports". That was already false: a platform not in the registry is rejected, however capable gallery-dl is. It now names the real set, which rule 171 records: Patreon, SubscribeStar, Discord and HentaiFoundry. The 3422 docs guards still hold - the key path and bootstrap variable are untouched. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SHQB1YukL3VyvMK8rcbmV9
104 lines
4.5 KiB
Bash
104 lines
4.5 KiB
Bash
# FabledCurator configuration.
|
|
#
|
|
# Copy to `.env` and edit before your first production start:
|
|
#
|
|
# cp .env.example .env
|
|
#
|
|
# Only the two values under CHANGE THESE actually need your attention. The
|
|
# rest have working defaults baked into docker-compose.yml and are listed
|
|
# here so you know they exist, not because you have to set them.
|
|
#
|
|
# Almost nothing else lives here on purpose. FabledCurator is configured from
|
|
# its own Settings UI, backed by the database — no restart, no YAML. If you
|
|
# are looking for where to set an import path, a download schedule or an ML
|
|
# threshold, it is in the app, not in this file.
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# CHANGE THESE
|
|
# ---------------------------------------------------------------------------
|
|
|
|
# The Postgres password. docker-compose.yml falls back to a published default
|
|
# (`fabledcurator_dev`) so that `docker compose up` works with no config at
|
|
# all — which is exactly why you must not leave it at that on a real install.
|
|
# It is the credential protecting your stored platform session cookies.
|
|
DB_PASSWORD=
|
|
|
|
# Sets Quart's app.secret_key. Today it signs nothing: FabledCurator has no
|
|
# login and uses no session cookies, so no value here is protecting anything
|
|
# right now. Set it anyway. It is required at boot rather than defaulted so
|
|
# that the day something session-backed does land, no instance is already
|
|
# running on a value published in this file.
|
|
#
|
|
# openssl rand -hex 32
|
|
SECRET_KEY=
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# FIRST BOOT ONLY — then delete this line
|
|
# ---------------------------------------------------------------------------
|
|
|
|
# FabledCurator encrypts your stored platform credentials with a Fernet key it
|
|
# keeps at /images/secrets/credential_key.b64 — inside the ./images bind mount,
|
|
# so it outlives the container. On a brand-new install that file does not exist
|
|
# yet, and the app REFUSES TO START rather than quietly create one:
|
|
#
|
|
# MissingCredentialKey: Fernet key file not found at
|
|
# /images/secrets/credential_key.b64
|
|
#
|
|
# That refusal is deliberate. Auto-creating a key is indistinguishable from the
|
|
# disaster case — a restore that brought the database back but lost
|
|
# ./images/secrets — and there it would mint a key that cannot decrypt anything,
|
|
# leaving an instance that looks healthy while every paywalled download fails.
|
|
# So the choice is yours to make explicitly, once.
|
|
#
|
|
# Set this for your first `up`, watch the container come up, then DELETE THE
|
|
# LINE. Leaving it set disarms the protection permanently, on an instance that
|
|
# by then has credentials worth protecting.
|
|
#
|
|
# BACK UP ./images/secrets/ ALONGSIDE YOUR DATABASE. The key is the only thing
|
|
# that can read your stored credentials; a database restored without it needs
|
|
# every credential re-entered by hand.
|
|
CURATOR_BOOTSTRAP_NEW_KEY=1
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Optional — defaults are fine
|
|
# ---------------------------------------------------------------------------
|
|
|
|
# Host port the UI is published on. The container always listens on 8080;
|
|
# this is only the left-hand side of the port mapping.
|
|
PORT=8080
|
|
|
|
# DEBUG | INFO | WARNING | ERROR
|
|
LOG_LEVEL=INFO
|
|
|
|
# Postgres identity. Change these only if you are pointing at a database you
|
|
# manage yourself — the bundled postgres service is created with whatever is
|
|
# set here, so changing them after the first start will not rename anything.
|
|
DB_USER=fabledcurator
|
|
DB_NAME=fabledcurator
|
|
|
|
# Set by docker-compose.yml to reach the bundled services. Override only when
|
|
# running Postgres or Redis outside this stack.
|
|
# DB_HOST=postgres
|
|
# DB_PORT=5432
|
|
# CELERY_BROKER_URL=redis://redis:6379/0
|
|
# CELERY_RESULT_BACKEND=redis://redis:6379/0
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# There is no authentication variable here, and that is not an omission
|
|
# ---------------------------------------------------------------------------
|
|
#
|
|
# FabledCurator has no login, no accounts and no permission model. Anything
|
|
# that can reach PORT is an administrator and can read the platform session
|
|
# cookies the app stores for Patreon and SubscribeStar.
|
|
#
|
|
# Bind it to a trusted network. See "Before you expose it" in README.md and
|
|
# the deployment posture section of SECURITY.md.
|
|
#
|
|
# The Firefox extension's API key is NOT configured here — it is generated
|
|
# automatically on first use and shown under Settings → Maintenance, where you
|
|
# can also rotate it.
|