Installation
Für Nova gibt es zwei vorbereitete Installationswege. Beide bauen das Image aus deploy/Dockerfile und betreiben Nova zusammen mit PostgreSQL 16. Die Vorlagen liegen im Verzeichnis deploy/; die Befehle unten laufen in dem Verzeichnis, das deploy/ enthält. Was vorher bereitstehen muss, beschreibt Voraussetzungen.
Einzelner Server mit Docker Compose
Die Vorlage deploy/docker-compose.yml startet Nova und PostgreSQL als Container. Die Datenbank liegt in einem eigenen Docker-Volume und übersteht Neustarts und Updates.
- Konfiguration anlegen.
deploy/.env.examplenachdeploy/.envkopieren und darin mindestensSECRET_KEY,NOVA_ENCRYPTION_KEYund ein eigenesDB_PASSWORDsetzen;RUN_DUMMIESbleibt auf0. Die beiden Schlüssel lassen sich so erzeugen, der zweite mit Python und dem Paketcryptography:bashopenssl rand -hex 32 python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" - Für den TLS-Proxy vorbereiten. In
deploy/.envAPP_BIND=127.0.0.1setzen, damit Nova nur auf dem Server selbst erreichbar ist, dazuTRUST_PROXY=1undSESSION_COOKIE_SECURE=1. - Bauen und starten.bashDer erste Aufruf baut das Image und dauert einige Minuten. Nova ist bereit, sobald das Protokoll zeigt, dass Gunicorn auf Port 8000 lauscht. Die Vorlage enthält außerdem den Dienst
docker compose -f deploy/docker-compose.yml --env-file deploy/.env up -d --build app docker compose -f deploy/docker-compose.yml --env-file deploy/.env logs -f apphandbook, der dieses Handbuch ausliefert; für Nova wird er nicht gebraucht. - TLS-Proxy einrichten. Ein Webserver auf dem Server nimmt HTTPS entgegen und leitet an
http://127.0.0.1:8000weiter. Die nginx-Vorlagen unterdeploy/nginx/zeigen die Einstellungen: die KopfzeilenHost,X-Forwarded-For,X-Forwarded-ProtoundX-Forwarded-Hostweiterreichen, Uploads bis 25 MB zulassen und Zeitlimits von 120 Sekunden setzen. Das Zertifikat kann zum Beispiel certbot von Let's Encrypt beziehen.
Nicht ohne TLS betreiben
Ohne vorgeschalteten Proxy liefert Nova nur unverschlüsseltes HTTP aus. Vor dem Einsatz mit echten Daten gehört ein TLS-Proxy davor.
SAP BTP, Kyma Runtime
Die Vorlagen unter deploy/kyma/ betreiben Nova in einem Kyma-Cluster: ein Deployment für Nova, PostgreSQL als StatefulSet mit eigenem Volume und eine APIRule, die Nova per HTTPS über das Kyma-Gateway erreichbar macht – unter https://nova-iam.‹Cluster-Domain›.
- Zugang und Namespace. kubectl mit der Kubeconfig des Clusters einrichten; die Anmeldung läuft über das OIDC-Plugin kubelogin. Einen Namespace anlegen, zum Beispiel
nova-iam. Liegt das Image in einer privaten Registry, zusätzlich ein Image-Pull-Secret anlegen. - Image bereitstellen. Das Image aus
deploy/Dockerfilebauen, in die Registry laden und indeployment.yamleintragen. Jede neue Version bekommt ein neues Tag: Ein Tag, das ein Knoten bereits geladen hat, lädt er nicht erneut. - Secret anlegen. Nova und PostgreSQL lesen ihre Umgebung aus dem Secret
nova-secrets, Vorlagesecret.example.yaml:POSTGRES_DB,POSTGRES_USER,POSTGRES_PASSWORD,DB_NAME,DB_USER,DB_PASSWORD(gleichPOSTGRES_PASSWORD),SECRET_KEYundNOVA_ENCRYPTION_KEY. Weitere Variablen wieSESSION_COOKIE_SECURE=1oderNOVA_SMTP_*kommen als zusätzliche Schlüssel hinzu. Die echten Werte gehören nicht in versionierte Dateien. - Für den Produktivbetrieb anpassen. Die Vorlage ist für eine Demo ausgelegt: In
deployment.yamlRUN_DUMMIESauf"0"setzen unddummies-expose.yamlnicht anwenden.replicas: 1und die StrategieRecreatebleiben – so laufen nie zwei Instanzen gleichzeitig. - Anwenden.bash
kubectl -n nova-iam apply -f deploy/kyma/postgres.yaml kubectl -n nova-iam apply -f deploy/kyma/deployment.yaml kubectl -n nova-iam apply -f deploy/kyma/apirule.yaml kubectl -n nova-iam rollout status deploy/nova-iam
Der erste Start
Beim Start legt Nova das Datenbankschema an und bringt es bei jedem weiteren Start auf den aktuellen Stand. Beim ersten Start schreibt Nova außerdem Grunddaten, darunter:
- ein Administratorkonto mit voreingestelltem Kennwort, das Administratoren gleich nach der ersten Anmeldung ändern sollten,
- die Berechtigungen „Admin“, „Manager“, „Security“ und „SoD Reviewer“,
- die voreingestellten Hintergrund-Jobs, siehe Überwachung und Jobs,
- zwei Beispiel-Zielsysteme, die auf lokale Testdienste zeigen: „SCIM Dummy Target“ und „LDAP Directory“.
Danach binden Administratoren unter „Systeme“ die eigenen Zielsysteme an, siehe Zielsysteme – Überblick. Wie Updates und Sicherungen laufen, beschreibt Updates und Sicherung.