Konfiguration & Umgebungsvariablen
Fast alles stellst du bequem in der Oberfläche ein. Über Umgebungsvariablen legst du nur fest, was vor dem Start feststehen muss: Ports, Datenverzeichnis, Zertifikat, Logs und ein paar Sonderfälle.
Alle Umgebungsvariablen
Alle Variablen beginnen mit NODE64_. Ein leerer Wert zählt wie „nicht gesetzt“, es gilt dann der Standard.
| Variable | Standard | Bedeutung | Beispiel |
|---|---|---|---|
NODE64_DATA_DIR | /data | Einziges beschreibbares Verzeichnis: Datenbank, Backups, Schlüssel, Zertifikat. | /data |
NODE64_HTTP_PORT | 8080 | Port der Oberfläche und API – HTTP und HTTPS auf demselben Port. 0 = aus. | 8080 |
NODE64_HTTPS_PORT | 0 | Zusätzlicher reiner HTTPS-Port. 0 = aus. | 8443 |
NODE64_BIND_ADDR | leer (alle Interfaces) | Adresse, auf der die Oberfläche lauscht. | 0.0.0.0 |
NODE64_TLS_CERT | leer | Eigenes Zertifikat (PEM) statt des selbstsignierten. Nur zusammen mit NODE64_TLS_KEY. | /data/my/cert.pem |
NODE64_TLS_KEY | leer | Privater Schlüssel zum eigenen Zertifikat. | /data/my/key.pem |
NODE64_LOG_LEVEL | info | debug, info, warn oder error. Zur Laufzeit in der Oberfläche änderbar. | debug |
NODE64_LOG_FORMAT | text | Format der Log-Ausgabe: text oder json. | json |
NODE64_ADMIN_USER | leer | Legt den Admin beim allerersten Start an – nur solange noch kein Benutzer existiert, danach ignoriert. Nur zusammen mit NODE64_ADMIN_PASSWORD. | admin |
NODE64_ADMIN_PASSWORD | leer | Passwort dazu. Nimm wie im Setup-Assistenten mindestens 10 Zeichen. | – |
NODE64_TRUST_PROXY | false | Wertet X-Forwarded-For aus. Nur hinter deinem eigenen Reverse Proxy einschalten (1, true, yes, on). | true |
NODE64_DOCKER_HOST | unix:///var/run/docker.sock | Standard-Docker-Host für Checks vom Typ Docker-Container. Erlaubt: unix://, tcp://, http://, https://. Je Check überschreibbar. | tcp://socket-proxy:2375 |
HTTP- und HTTPS-Port dürfen nicht beide 0 und nicht gleich sein; erlaubt sind 0–65535. Zertifikat und Schlüssel sowie Admin-Benutzer und -Passwort werden nur paarweise akzeptiert. Stimmt etwas nicht, bricht Node64 den Start mit einer Meldung im Log ab.
NODE64_ADMIN_PASSWORD steht im Klartext in deiner Compose-Datei. Entferne die beiden Admin-Variablen nach dem ersten Start wieder – Node64 ignoriert sie ohnehin, sobald ein Benutzer existiert.
Beispiel
environment:
NODE64_LOG_LEVEL: info
NODE64_LOG_FORMAT: json
NODE64_HTTPS_PORT: 8443
# NODE64_ADMIN_USER: admin # nur beim allerersten Start
# NODE64_ADMIN_PASSWORD: DEIN_PASSWORT # nur beim allerersten Start
Volumes
Node64 braucht genau ein Volume: /data (bzw. was du in NODE64_DATA_DIR angibst). Alles andere im Container kann mit read_only: true schreibgeschützt laufen. Was darin liegt, zeigt die Tabelle unter Installation.
- Benanntes Volume (
node64-data:/data) – der einfachste Weg, Docker kümmert sich um die Rechte. - Ordner auf dem Host (
./data:/data) – praktisch fürs eigene Backup. Der Prozess läuft als Benutzer65532, der Ordner muss ihm also gehören:sudo chown -R 65532:65532 ./data. - Eigenes Zertifikat: Lege die Dateien für
NODE64_TLS_CERT/NODE64_TLS_KEYam besten unter/dataab oder binde sie zusätzlich schreibgeschützt ein. - Docker-Socket (optional):
/var/run/docker.sock:/var/run/docker.sock:rofür Docker-Checks, siehe unten.
Ports
Standardmäßig ist nur 8080 offen. DNS64 (53, 853) und der gemeinsame Eingang (80, 443) öffnen ihre Ports nur, solange sie gebraucht werden. Die vollständige Tabelle steht unter Installation → Ports.
- Die Ports von DNS64 und vom gemeinsamen Eingang stellst du in der Oberfläche ein, nicht per Umgebungsvariable.
- Einstellungen → Ports zeigt alle Ports der Node in einer Tabelle – Oberfläche, gemeinsamer Eingang mit PROXY64-Streams, DNS64 und Honeypot64 mit Syslog: Modul, Zweck, Protokoll, Bind-Adresse, eingestellt oder offen und ob unter Linux wirklich ein Listener lauscht (über
/proc/net, im Container in dessen Netz). Dazu Überschneidungen und Fehler der Module, etwa „address already in use“ oder „permission denied“. Was über den Eingang oder den Web-Port mitläuft (Proxy-Hosts, DoH, Cluster, MCP, Prometheus), steht als „mitgenutzt“ darunter, der Tunnel von CDN64 als ausgehende Verbindung. Filter nach Modul und Zustand; darunter Hinweise zu Ports unter 1024 und zur Docker-Weiterleitung. Eine Bindung an0.0.0.0gilt nur für IPv4, nicht für IPv6; Ports unter 1024 brauchencap_net_bind_service– root allein reicht nicht. - Ob ein Port auf dem Host frei ist, prüft auch die API:
GET /api/ports/probe?proto=tcp&port=443.
Netzwerkmodus: Bridge oder Host
| Bridge (Standard) | Host (network_mode: host) | |
|---|---|---|
| Ports | jeder Port einzeln mit ports: | Node64 öffnet direkt auf dem Host, ports: entfällt |
| Oberfläche | auf dem freigegebenen Port | auf NODE64_HTTP_PORT (8080) |
| DNS64 | funktioniert; Router für lokale Namen in den Einstellungen eintragen | empfohlen: sieht die echten Geräte-IPs und findet den Router selbst |
| PROXY64 | 80, 443, 443/udp plus je Stream eine Freigabe | empfohlen: Streams öffnen beliebige Ports ohne Extra-Freigabe |
| DynDNS, IPv6-Modus „Interface“ | nicht möglich | nötig |
| IPv6 | nur mit enable_ipv6 im Docker-Netz | wie der Host |
| ICMP-Checks | sysctls: net.ipv4.ping_group_range=0 65535 | cap_add: NET_RAW |
Faustregel: Nur Healthchecks, Benachrichtigungen und DynDNS? Dann reicht Bridge. Sobald DNS64 oder PROXY64 dazukommen, nimm das Host-Netz. Fertige Compose-Dateien für beide Fälle findest du unter Installation.
Hinter einem eigenen Reverse Proxy
Läuft vor Node64 schon ein Reverse Proxy (etwa Traefik, Caddy oder Nginx), leitest du einfach auf http://node64:8080 weiter. Damit Node64 dann die echte Adresse des Browsers sieht (etwa für Ratelimit und Audit-Log) und weiß, unter welchem Namen und ob per HTTPS er aufgerufen wurde, setzt du:
environment:
NODE64_TRUST_PROXY: "true"
Mit NODE64_TRUST_PROXY glaubt Node64 den Köpfen X-Forwarded-For, X-Forwarded-Host und X-Forwarded-Proto – Letztere braucht er hinter einem Proxy für Passkeys und die SSO-Rückleitung. Ist der Port von Node64 zusätzlich direkt erreichbar, könnte jemand diese Köpfe fälschen. Gib den Port dann nicht nach außen frei.
- Anmeldung über den Proxy: Mit Authelia oder Authentik als Forward-Auth kann der Proxy den Benutzer im Kopf
Remote-Usermitschicken. Das richtest du unter Anmeldung & Sicherheit ein; dort zählt ausschließlich die echte Verbindungsadresse des Proxys. - Ohne zusätzlichen Proxy: Node64 kann seine Oberfläche auch selbst unter einem eigenen Namen auf Port 443 ausliefern – über den gemeinsamen Eingang, mit Zertifikat aus der Zertifikatsverwaltung.
- Passkeys brauchen HTTPS mit Hostnamen und gelten nur für den Namen, unter dem sie angelegt wurden.
Docker-Host für Container-Checks
Alles zur Docker-Überwachung – auch entfernte Hosts per SSH oder TLS – steht unter Docker überwachen. Hier geht es nur um den lokalen Socket. Überwacht wird er erst, wenn du ihn unter Healthchecks → Docker mit Diese Maschine hinzufügen (lokaler Socket) hinzufügst.
Checks vom Typ Docker-Container fragen die Docker-API – standardmäßig über unix:///var/run/docker.sock. Node64 sendet dabei ausschließlich GET-Anfragen. Docker-Checks laufen immer nur lokal, nie online.
Weil der Socket trotz :ro Kontrolle über den Host erlaubt, kannst du einen docker-socket-proxy davorsetzen, der nur das Lesen von Containern erlaubt:
services:
socket-proxy:
image: tecnativa/docker-socket-proxy
restart: unless-stopped
environment:
CONTAINERS: 1
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
node:
image: ghcr.io/ipv64net/node64:latest
container_name: node64
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- node64-data:/data
environment:
NODE64_DOCKER_HOST: tcp://socket-proxy:2375
read_only: true
tmpfs:
- /tmp
volumes:
node64-data:
Den Docker-Host kannst du außerdem je Check im Feld „Docker-Host“ überschreiben. Ohne Proxy brauchst du stattdessen group_add mit der Gruppe des Sockets – siehe Installation.
Log-Level und Log-Format
- Startwert über
NODE64_LOG_LEVEL(debug,info,warn,error) undNODE64_LOG_FORMAT(textoderjson, z. B. für einen Log-Sammler). - Zur Laufzeit umschalten unter Einstellungen → Logging – global und je Bereich (Modul). Mit „Zurücksetzen nach“ fällt das Level nach der gewählten Zeit automatisch zurück, damit Debug nicht dauerhaft läuft.
- Anzeigen unter Logs in der Oberfläche (die letzten 2000 Zeilen) mit Download, oder wie gewohnt mit
docker logs node64. - Keine Geheimnisse im Log: Werte, die nach Passwort, Token oder Schlüssel aussehen, werden immer maskiert.
Per API: GET /api/logs und GET|PUT /api/logging – siehe Lokale API.
Sprache, Dark Mode und Darstellung
Die Einstellungen in der Oberfläche sind auf vier Seiten verteilt: Allgemein (Node, Benutzer, Darstellung, Zwei-Faktor, Erreichbarkeit dieser Node mit dem Zertifikat der Oberfläche, ipv64-API-Key, KI-Schnittstelle, Logging, Über), Module (je Modul Version, Status, Kurzbeschreibung, Schalter an/aus mit Rückfrage beim Ausschalten und Link zum Modul), Ports (siehe Ports) und Daten & Sicherung (Datenhaltung, Backup, Export und Import, Zurücksetzen – siehe Update & Backup).
Diese Einstellungen machst du direkt in der Oberfläche, nicht per Umgebungsvariable:
- Sprache: Deutsch oder Englisch, je Benutzer unter Einstellungen → Benutzer (dort auch Zeitzone und Passwort). Benachrichtigungen gehen in der Sprache des jeweiligen Kanals raus.
- Farbschema: hell, dunkel oder automatisch nach der Systemeinstellung deines Geräts.
- Schriftgröße: klein, normal, groß oder sehr groß unter Einstellungen → Darstellung. Gilt sofort für diesen Browser.
- Dashboard: Kacheln, Reihenfolge und Breite über Anpassen auf dem Dashboard.
- Datenhaltung: wie lange Einzelmessungen, Stundenwerte und das Audit-Log lokal aufbewahrt werden, unter Einstellungen → Daten & Sicherung – Übersicht unter Datenhaltung.
Etwas unklar, fehlt etwas oder hast du eine Frage zu Node64? Frag im offiziellen Forum v64.tech.