# ampelos-dashboard
#
# Copy to .env.local and fill in. Next.js loads .env.local automatically from
# the working directory, which is what ampelos.service sets. Never commit it.

# --- database -------------------------------------------------------------
# This repository owns the schema. ampelos-agent reads the same database with
# raw SQL and holds no copy of it, so a rename here needs `npm run check:schema`
# run over there.
DATABASE_URL=postgres://user:password@mimir/ampelos

# --- sign-in --------------------------------------------------------------
# AUTH_URL is this app's own address. The ISSUER is Authentik's, and the two
# are unrelated -- moving the identity provider does not change AUTH_URL.
AUTH_URL=https://ampelos.sticknife.com

# Must match the "issuer" field in the provider's own discovery document
# exactly, trailing slash included, or the sign-in fails validation even though
# the host answers. Check with:
#   curl -s https://<host>/application/o/<slug>/.well-known/openid-configuration
AUTHENTIK_ISSUER=https://charon.sticknife.com/application/o/ampelos/
AUTHENTIK_CLIENT_ID=
AUTHENTIK_CLIENT_SECRET=

# --- ampelos-agent --------------------------------------------------------
# Where the indexer listens, for the manual search and grab panel. The
# automatic acquisition loop does not go through here.
AMPELOS_INDEXER_URL=http://127.0.0.1:8081
AMPELOS_AGENT_TIMEOUT_SECONDS=30
# Shared with ampelos-agent, in both directions: the satellites POST to
# /api/agents/* with it, and this app sends it to the indexer. Same value in
# both repositories' environments, in neither's history.
AMPELOS_AGENT_TOKEN=

# --- the sticknife-wide profile -------------------------------------------
# accounts.sticknife.com shows an Ampelos section in its own profile page, by
# framing /embed/profile and/or reading /api/profile. See PROFILE-INTEGRATION.md.
#
# Which origins may frame /embed/* and call /api/profile from a browser.
# Comma-separated ORIGINS, scheme included -- a bare hostname is silently
# ignored by the CSP parser and never matches a CORS Origin header. Everything
# outside /embed is frame-ancestors 'none' regardless of what is set here.
AMPELOS_EMBED_ANCESTORS=https://accounts.sticknife.com
#
# Optional, and OFF unless set. Lets charon render the panel SERVER-side, where
# there is no browser to carry a session cookie: it presents this as a bearer
# token and names the user with ?email= or ?userId=.
#
# That is a full read of anybody's profile, watch history included. It is
# deliberately NOT AMPELOS_AGENT_TOKEN -- that one is deployed to every
# satellite host, and a leaked herald script should not also hand over
# everyone's viewing. Leave it unset if charon only ever iframes the panel.
AMPELOS_PROFILE_API_TOKEN=

# --- external services ----------------------------------------------------
MOVIEDB_API=
PLEX_URL=
PLEX_PORT=32400
PLEX_AUTH_TOKEN=
PLEX_MACHINE_IDENTIFIER=
# Read-only here: the dashboard shows queue state, the agent does the grabbing.
QBT_URL=http://localhost:8080
