# AfiS-Aktensystem - Vorlage für den .env-Reiter in Dockge. # Diese Datei enthält nur Platzhalter. Die echten Werte gehören nach # /opt/stacks/afis/.env und niemals ins Repository. Siehe docs/11-betrieb.md. # --- Zeitzone ----------------------------------------------------------------- TZ=Europe/Berlin # --- Datenbank ---------------------------------------------------------------- # Wird von db, pgbouncer, web, worker und den Backups gelesen. POSTGRES_PASSWORD=hier-ein-langes-zufaelliges-passwort # Die Anwendung spricht über pgbouncer im Transaktionsmodus, deshalb pgbouncer=true. DATABASE_URL=postgresql://afis:hier-ein-langes-zufaelliges-passwort@pgbouncer:6432/afis?pgbouncer=true&connection_limit=1 # Migrationen und LISTEN/NOTIFY brauchen eine Verbindung an pgbouncer vorbei. DIRECT_DATABASE_URL=postgresql://afis:hier-ein-langes-zufaelliges-passwort@db:5432/afis # --- Anwendung ---------------------------------------------------------------- # Auf welchem Port die Anwendung auf dem Host erreichbar ist. Im Container # hoert sie immer auf 3000; hier steht nur, worauf das abgebildet wird. Ein # Reverse Proxy davor leitet auf genau diesen Port. WEB_PORT=3000 # Die öffentliche Adresse der Anwendung. Auth.js baut daraus die redirect_uri # für Discord; sie muss zeichengenau im Developer Portal hinterlegt sein als # /api/auth/callback/discord APP_URL=https://afis.example.de # 32+ Zeichen. Erzeugen mit: openssl rand -base64 48 AUTH_SECRET=hier-ein-langes-zufaelliges-geheimnis-mit-mindestens-32-zeichen # --- Discord ------------------------------------------------------------------ # Aus dem Developer Portal. Das Server Members Intent muss aktiviert sein, # sonst liefert der Bot keine Rollen. Siehe docs/03-auth-und-rechte.md. # Als Redirect-URI in der Application eintragen: # /api/auth/callback/discord # Der Bot muss ausserdem auf den Server eingeladen sein, sonst liefert die # API "Unknown Guild": # https://discord.com/oauth2/authorize?client_id=&scope=bot&permissions=3072 DISCORD_CLIENT_ID= DISCORD_CLIENT_SECRET= DISCORD_BOT_TOKEN= DISCORD_GUILD_ID= # Kanal, in den der Worker Start, Verbindungsabbruch und fehlgeschlagenen # Voll-Abgleich meldet. Das ist die eigentliche Alarmierung. DISCORD_ADMIN_CHANNEL_ID= # Takt des Postausgangs als Sicherheitsnetz; angestossen wird er ueber LISTEN. WORKER_OUTBOX_MS=30000 # --- Notfallzugang ------------------------------------------------------------ # Eine oder zwei Discord-IDs, kommagetrennt. Diese Nutzer haben immer Stufe 5 # und alle Rechte, unabhängig vom Rollen-Mapping. Ohne das sperrt man sich beim # ersten Fehler in der Rollenverwaltung selbst aus. BOOTSTRAP_ADMIN_IDS= # --- Dateien und Prüfkette ---------------------------------------------------- FILES_DIR=/data/files # clamd: host:port im Stack, oder ein Pfad, wenn ein Unix-Socket erreichbar ist. # Das offizielle Image legt seinen Socket unter /tmp im eigenen Container ab, # deshalb TCP - der Port ist nur im Stack-Netz erreichbar, nicht nach aussen. CLAMAV_ADDRESS=clamav:3310 PDF_SERVICE_URL=http://pdf:3000 # --- Cloudflare Tunnel -------------------------------------------------------- CLOUDFLARE_TUNNEL_TOKEN= # --- Auslagerungs-Backup ------------------------------------------------------ RESTIC_REPOSITORY= RESTIC_PASSWORD=