Manuelle Installation¶
Für alle, die jeden Befehl selbst ausführen wollen — z. B. weil der Server keine Skripte aus dem Internet ausführen darf.
Alle Schritte als root (oder mit sudo).
1. Voraussetzungen¶
2. Docker installieren¶
Verifizieren:
3. Verzeichnis anlegen¶
4. Compose-Datei und Beispiel-Env vom Lizenzportal laden¶
sudo curl -sSL https://license.vesana.org/api/v1/install/compose -o docker-compose.prod.yml
sudo curl -sSL https://license.vesana.org/api/v1/install/env-example -o .env.example
sudo cp .env.example .env
5. Secrets generieren¶
SECRET_KEY=$(openssl rand -hex 32)
FIELD_ENCRYPTION_KEY=$(openssl rand -base64 32 | tr '+/' '-_' | tr -d '=')
POSTGRES_PASSWORD=$(openssl rand -hex 16)
REDIS_PASSWORD=$(openssl rand -hex 16)
echo "FIELD_ENCRYPTION_KEY: $FIELD_ENCRYPTION_KEY"
FIELD_ENCRYPTION_KEY sofort sichern
Der Schlüssel ist genau ein Mal sichtbar. Verlust = verschlüsselte Felder dauerhaft unleserlich. In Passwort-Manager kopieren, bevor du das Terminal schließt.
6. .env befüllen¶
sudo sed -i "s|^BASE_URL=.*|BASE_URL=https://deine-domain.tld|" .env
sudo sed -i "s|^POSTGRES_PASSWORD=.*|POSTGRES_PASSWORD=${POSTGRES_PASSWORD}|" .env
sudo sed -i "s|^REDIS_PASSWORD=.*|REDIS_PASSWORD=${REDIS_PASSWORD}|" .env
sudo sed -i "s|^SECRET_KEY=.*|SECRET_KEY=${SECRET_KEY}|" .env
sudo sed -i "s|^FIELD_ENCRYPTION_KEY=.*|FIELD_ENCRYPTION_KEY=${FIELD_ENCRYPTION_KEY}|" .env
sudo sed -i "s|^# REGISTRY_URL=.*|REGISTRY_URL=ghcr.io/lukas5001|" .env
BASE_URL ersetzen durch deine echte URL (z. B. https://monitoring.example.com oder https://192.168.1.50).
Optional, wenn du einen Lizenzschlüssel hast:
7. Secrets-Dateien erzeugen¶
sudo mkdir -p secrets
echo "$POSTGRES_PASSWORD" | sudo tee secrets/pg_password > /dev/null
echo "$REDIS_PASSWORD" | sudo tee secrets/redis_password > /dev/null
echo "$SECRET_KEY" | sudo tee secrets/secret_key > /dev/null
echo "$FIELD_ENCRYPTION_KEY" | sudo tee secrets/field_encryption_key > /dev/null
sudo chmod 600 secrets/*
8. Images pullen und Stack starten¶
sudo docker compose -f docker-compose.prod.yml pull
sudo docker compose -f docker-compose.prod.yml up -d
9. Status prüfen¶
sudo docker compose -f docker-compose.prod.yml ps
sudo docker compose -f docker-compose.prod.yml logs -f api
Wenn alle Container Up (healthy) sind, weiter zum Setup-Wizard.
Wenn ein Container nicht startet¶
# Welche Container laufen / hängen?
docker compose -f docker-compose.prod.yml ps
# Logs vom problematischen Container
docker compose -f docker-compose.prod.yml logs <service-name> --tail 100
Häufige Ursachen siehe Troubleshooting.