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.

VariableStandardBedeutungBeispiel
NODE64_DATA_DIR/dataEinziges beschreibbares Verzeichnis: Datenbank, Backups, Schlüssel, Zertifikat./data
NODE64_HTTP_PORT8080Port der Oberfläche und API – HTTP und HTTPS auf demselben Port. 0 = aus.8080
NODE64_HTTPS_PORT0Zusätzlicher reiner HTTPS-Port. 0 = aus.8443
NODE64_BIND_ADDRleer (alle Interfaces)Adresse, auf der die Oberfläche lauscht.0.0.0.0
NODE64_TLS_CERTleerEigenes Zertifikat (PEM) statt des selbstsignierten. Nur zusammen mit NODE64_TLS_KEY./data/my/cert.pem
NODE64_TLS_KEYleerPrivater Schlüssel zum eigenen Zertifikat./data/my/key.pem
NODE64_LOG_LEVELinfodebug, info, warn oder error. Zur Laufzeit in der Oberfläche änderbar.debug
NODE64_LOG_FORMATtextFormat der Log-Ausgabe: text oder json.json
NODE64_ADMIN_USERleerLegt den Admin beim allerersten Start an – nur solange noch kein Benutzer existiert, danach ignoriert. Nur zusammen mit NODE64_ADMIN_PASSWORD.admin
NODE64_ADMIN_PASSWORDleerPasswort dazu. Nimm wie im Setup-Assistenten mindestens 10 Zeichen.–
NODE64_TRUST_PROXYfalseWertet X-Forwarded-For aus. Nur hinter deinem eigenen Reverse Proxy einschalten (1, true, yes, on).true
NODE64_DOCKER_HOSTunix:///var/run/docker.sockStandard-Docker-Host für Checks vom Typ Docker-Container. Erlaubt: unix://, tcp://, http://, https://. Je Check überschreibbar.tcp://socket-proxy:2375
Prüfregeln beim Start

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

compose.yaml
    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 Benutzer 65532, 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_KEY am besten unter /data ab oder binde sie zusätzlich schreibgeschützt ein.
  • Docker-Socket (optional): /var/run/docker.sock:/var/run/docker.sock:ro fü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 an 0.0.0.0 gilt nur für IPv4, nicht für IPv6; Ports unter 1024 brauchen cap_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)
Portsjeder Port einzeln mit ports:Node64 öffnet direkt auf dem Host, ports: entfällt
Oberflächeauf dem freigegebenen Portauf NODE64_HTTP_PORT (8080)
DNS64funktioniert; Router für lokale Namen in den Einstellungen eintragenempfohlen: sieht die echten Geräte-IPs und findet den Router selbst
PROXY6480, 443, 443/udp plus je Stream eine Freigabeempfohlen: Streams öffnen beliebige Ports ohne Extra-Freigabe
DynDNS, IPv6-Modus „Interface“nicht möglichnötig
IPv6nur mit enable_ipv6 im Docker-Netzwie der Host
ICMP-Checkssysctls: net.ipv4.ping_group_range=0 65535cap_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:

compose.yaml
    environment:
      NODE64_TRUST_PROXY: "true"
Nur hinter deinem eigenen Proxy

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-User mitschicken. 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:

compose.yaml
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) und NODE64_LOG_FORMAT (text oder json, 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.

Fragen zu Node64?
Für alle Fragen zum Produkt gibt es das offizielle Forum: Einrichtung, Fehlersuche, Ideen und Austausch mit der Community und dem ipv64.net-Team.
Zum Forum v64.tech