Zum Inhalt springen

Konfiguration

Die gesamte Konfiguration erfolgt über die Datei .env im Wurzelverzeichnis des Selfhosted-Repositorys. Sensible Werte (Passwörter, API-Schlüssel) werden als Docker Secrets in ./secrets/ gespeichert — Details findest du unter Docker Secrets.

VariableBeschreibungStandardwert
PROJECT_NAMEName des Docker-Compose-Projektssolyto
SOLYTO_VERSIONVersions-Tag für solyto-Imageslatest

Dies sind die Domainnamen, die auf deinen Server zeigen. Jeder Dienst erhält seine eigene (Sub-)Domain.

VariableBeschreibungBeispiel
API_DOMAINDomain für die APIapi.example.com
APP_DOMAINDomain für das Frontendapp.example.com
DAV_DOMAINDomain für CalDAV/CardDAVdav.example.com
ACME_EMAILE-Mail für Let’s-Encrypt-Zertifikatsbenachrichtigungenadmin@example.com
VariableBeschreibungStandardwert
APP_NAMEAnzeigename der Anwendungsolyto
APP_URLVollständige URL zur APIhttps://${API_DOMAIN}
FRONTEND_URLVollständige URL zum Frontendhttps://${APP_DOMAIN}
APP_ENVAnwendungsumgebungproduction
APP_DEBUGDebug-Modus aktivierenfalse
APP_TIMEZONEStandard-Zeitzone der AnwendungUTC
VariableBeschreibungStandardwert
NODE_ENVNode.js-Umgebungproduction
PUBLIC_API_URLURL, über die das Frontend die API erreichthttps://${API_DOMAIN}
PUBLIC_DISABLE_DEV_REQUESTSBlendet den Bereich Dev Requests austrue
PUBLIC_REDIRECT_AFTER_LOGOUTURL, zu der nach dem Abmelden weitergeleitet wird${APP_URL}
PUBLIC_LEGAL_NOTICE_URLLink für die Schaltfläche des Impressums(leer)
PUBLIC_PRIVACY_URLLink für die Schaltfläche der Datenschutzerklärung(leer)
PUBLIC_TERMS_URLLink für die Schaltfläche der Nutzungsbedingungen(leer)

Setze PUBLIC_DISABLE_DEV_REQUESTS=true, um den Link zu Dev Requests auszublenden und die Route vollständig zu deaktivieren (der Standard bei selbst gehosteten Instanzen, da Anfragen das solyto-Team ohnehin nicht erreichen würden). Setze eine der PUBLIC_*_URL-Variablen, um eine Schaltfläche mit rechtlichen Hinweisen anzuzeigen, die auf dein eigenes Impressum, deine Datenschutzerklärung oder deine Nutzungsbedingungen verweist.

VariableBeschreibungStandardwert
MARIADB_VERSIONMariaDB-Image-Version12
POSTGRES_VERSIONPostgreSQL-Image-Version17
REDIS_VERSIONRedis-Image-Version7.4.1
VariableBeschreibungStandardwert
DB_CONNECTIONDatenbanktreibermariadb
DB_HOSTMariaDB-Hostnamemariadb
DB_PORTMariaDB-Port3306
DB_DATABASEDatenbanknameapi

Zugangsdaten (DB_USER, DB_PASSWORD) werden aus Docker Secrets gelesen (db_user, db_password). Das MariaDB-Root-Passwort wird aus mariadb_root_password gelesen.

VariableBeschreibungStandardwert
DAV_DB_HOSTPostgreSQL-Hostnamepostgres
DAV_DB_PORTPostgreSQL-Port5432
DAV_DB_DATABASEName der DAV-Datenbankdav

Zugangsdaten werden aus Docker Secrets gelesen (dav_db_user, dav_db_password). Das PostgreSQL-Root-Passwort wird aus postgres_root_password gelesen.

VariableBeschreibungStandardwert
REDIS_CLIENTRedis-Client-Bibliothekphpredis
REDIS_HOSTRedis-Hostnameredis
REDIS_PORTRedis-Port6379
REDIS_PASSWORDRedis-Passwort(aus Docker Secret)
REDIS_PREFIXSchlüsselpräfix für diese Instanzsolyto_
VariableBeschreibungStandardwert
TRUSTED_PROXIESVertrauenswürdige Proxy-IPs (nötig bei Verwendung eines externen Reverse Proxys)(leer)
VariableBeschreibungStandardwert
TIMEZONEServer-ZeitzoneUTC

Dies wirkt sich auf die Zeitzoneneinstellungen von PHP und des Queue-Workers aus.

VariableBeschreibungStandardwert
AI_BASE_URLBasis-URL der OpenAI-kompatiblen API(leer — OpenAI-Standard)
AI_MODELStandard-KI-Modellgpt-4o-mini

Der API-Schlüssel wird im Docker Secret ai_api_key gespeichert. Das wird nur benötigt, wenn du Bibliotheksempfehlungen nutzen möchtest.

VariableBeschreibungStandardwert
MAILGUN_DOMAINMailgun-Domain zum Versenden von E-Mails(leer)
MAIL_FROM_ADDRESSAbsender-E-Mail-Adressenoreply@example.com
MAIL_FROM_NAMEAnzeigename des Absenderssolyto

Das Mailgun-Secret wird im Docker Secret mailgun_secret gespeichert.

VariableBeschreibungStandardwert
IMAGE_DRIVERBackend für die Bildverarbeitungintervention

Optionen:

  • intervention — nutzt die Intervention-Image-PHP-Bibliothek (Standard, kein zusätzlicher Dienst nötig)
  • imgproxy — nutzt den eigenständigen imgproxy-Dienst für bessere Performance bei großen Bildern

Bei IMAGE_DRIVER=imgproxy wird der imgproxy-Container gestartet, und die Zugangsdaten werden aus den Docker Secrets imgproxy_key und imgproxy_salt gelesen.

VariableBeschreibungStandardwert
TELEGRAM_DEBUG_CHAT_IDChat-ID für Debug-Benachrichtigungen(leer)

Die Zugangsdaten des Telegram-Bots werden als Docker Secrets gespeichert (solyto_bot_telegram_token, solyto_bot_webhook_token). Eine Einrichtungsanleitung findest du unter Telegram-Bot.

Starte nach dem Bearbeiten von .env die betroffenen Dienste neu:

Terminal-Fenster
docker compose up -d

Docker Compose erkennt Änderungen in .env und erstellt Container mit den neuen Werten neu.