# 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:///application/o//.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