Von null an: Debian, Docker und Node64

Du hast noch keinen Docker-Host? Diese Anleitung führt dich vom leeren Server oder der leeren Proxmox-VM bis zur ersten Anmeldung in Node64 – Schritt für Schritt, mit kopierfertigen Befehlen. Wer Docker schon laufen hat, springt direkt zur Installation.

Der Weg in fünf Schritten

  1. Entscheiden, wo Node64 läuft – eigener Rechner, Proxmox-VM oder LXC.
  2. Debian 13 installieren und vorbereiten.
  3. Docker aus dem offiziellen Repository installieren.
  4. Node64 mit docker compose starten.
  5. Im Browser anmelden und die ersten Module einschalten.

Dauer: etwa 20 Minuten. Du brauchst Zugang per SSH oder Konsole und Rechte für sudo.

Wo läuft Node64? Rechner, VM oder LXC

Node64 braucht wenig: 1–2 CPU-Kerne, 1 GB Arbeitsspeicher und 8–16 GB Platte reichen für Healthchecks, DNS64, PROXY64 und DynDNS. Wichtig ist eine feste IP-Adresse im Heimnetz – am einfachsten als DHCP-Reservierung im Router.

WoBewertungHinweise
Eigener Rechner, Mini-PCsehr gutDebian direkt installieren, danach wie unten.
Proxmox-VMempfohlenDocker läuft wie auf echter Hardware, Host-Netz und Port 53 ohne Sonderrechte, UDP-Puffer in der VM einstellbar. Als Gast Debian 13 mit qemu-guest-agent.
Proxmox-LXC (unprivilegiert)gehtDocker im Container braucht die Funktionen nesting und keyctl. Die UDP-Puffer (net.core.*) lassen sich im LXC nicht setzen – das machst du auf dem Proxmox-Host. Bei Updates von Proxmox gelegentlich Eigenheiten mit Docker.
Proxmox-LXC (privilegiert)nicht empfohlenFunktioniert, isoliert aber deutlich schlechter vom Host.
NAS (Synology, Unraid, QNAP …)gutDocker bzw. Container Manager bringt der Hersteller mit – weiter bei der Installation. Unraid mit br0 gibt dem Container eine eigene LAN-Adresse.

Für einen LXC schaltest du die beiden Funktionen auf dem Proxmox-Host ein (101 ist die ID deines Containers) und startest ihn neu:

bash (Proxmox-Host)
pct set 101 --features nesting=1,keyctl=1
pct reboot 101

Debian 13 vorbereiten

Installiere Debian 13 („trixie“) als Minimalsystem – ohne Desktop, mit SSH-Server. Danach als Benutzer mit sudo:

bash
sudo apt update && sudo apt full-upgrade -y
sudo apt install -y ca-certificates curl
sudo timedatectl set-timezone Europe/Berlin

Die richtige Uhrzeit ist wichtig: Zertifikate und Anmeldungen prüfen die Zeit. Debian stellt sie per NTP von selbst.

Docker installieren (offizielles Repository)

Nimm Docker aus dem Repository von Docker selbst, nicht das ältere Paket docker.io aus Debian. So bekommst du aktuelle Versionen und docker compose gleich dazu:

bash
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run --rm hello-world

Erscheint „Hello from Docker!“, läuft alles. Die Befehle unten nutzen sudo. Wer das nicht will, nimmt seinen Benutzer in die Gruppe docker auf (sudo usermod -aG docker $USER, danach neu anmelden) – das ist aber gleichbedeutend mit Root-Rechten.

UDP-Puffer für schnelle Verbindungen

Der CDN64-Tunnel und DNS über QUIC laufen per UDP. Linux hat dafür kleine Standardpuffer, die bei schnellen Anschlüssen bremsen. Größere Werte dauerhaft setzen (in einer VM oder auf dem Rechner selbst; beim LXC auf dem Proxmox-Host):

bash
printf 'net.core.rmem_max = 7500000\nnet.core.wmem_max = 7500000\n' | sudo tee /etc/sysctl.d/90-node64.conf
sudo sysctl --system

Node64 starten

Lege einen Ordner an und darin die Datei compose.yaml:

bash
sudo mkdir -p /opt/node64 && cd /opt/node64
sudo nano compose.yaml

Für den Einstieg empfehlen wir das Host-Netz: DNS64 sieht dann die echten Adressen deiner Geräte, und PROXY64 kann Ports ohne einzelne Freigaben öffnen.

compose.yaml
services:
  node:
    image: ghcr.io/ipv64net/node64:latest
    container_name: node64
    restart: unless-stopped
    network_mode: host        # Oberfläche auf Port 8080
    volumes:
      - node64-data:/data     # Datenbank, Schlüssel, Zertifikate
    environment:
      NODE64_LOG_LEVEL: info
    read_only: true
    tmpfs:
      - /tmp
    cap_add:
      - NET_RAW               # Ping-Checks
volumes:
  node64-data:
bash
sudo docker compose up -d
sudo docker ps --filter name=node64

Nach kurzer Zeit steht bei docker ps (healthy). Andere Varianten:

  • Bridge-Netz (Standard von Docker): Jeden Port gibst du mit ports: frei – Vorlagen unter Installation mit docker compose.
  • Macvlan oder IPvlan (z. B. Unraid br0): Der Container bekommt eine eigene LAN-Adresse und braucht keine Portfreigaben (Ports).
  • Docker-Container mit Monitor64 überwachen oder Docker-Labels nutzen: Dafür bekommt Node64 zusätzlich den Docker-Socket – siehe Variante mit Docker-Socket.

Erste Anmeldung

  1. Öffne http://<IP-des-Servers>:8080 im Browser.
  2. Der Setup-Assistent fragt Sprache, Admin-Konto (Passwort mindestens 10 Zeichen), Zeitzone sowie Name und Standort der Node ab.
  3. Danach bist du angemeldet. Unter Einstellungen → Module schaltest du ein, was du brauchst – weiter geht es mit den ersten Schritten.

Typische Stolpersteine

ProblemLösung
DNS64 startet nicht, Port 53 belegtAuf vielen Systemen hält systemd-resolved Port 53 – siehe Port 53 ist belegt. Ein frisches Debian 13 ohne Desktop ist davon meist nicht betroffen.
Oberfläche aus dem Netz nicht erreichbarEine Firewall auf dem Server (ufw, nftables) oder in Proxmox blockt. Freigeben: 8080/tcp, für DNS64 53/udp und 53/tcp, für PROXY64 80/tcp, 443/tcp und 443/udp.
Docker im LXC: „operation not permitted“Die Funktionen nesting und keyctl fehlen (siehe oben), danach den LXC neu starten.
Checks über IPv6 schlagen fehlIm Bridge-Netz hat ein Container standardmäßig kein IPv6 – siehe IPv6 im Container. Im Host-Netz nutzt Node64 das IPv6 des Servers.
Von außen erreichbar machenMit dem CDN64-Tunnel brauchst du keine Portfreigabe im Router. Sonst Router-Freigabe für 80 und 443 auf die feste IP des Servers.
Langsamer Tunnel bei schnellem AnschlussUDP-Puffer setzen (siehe oben); der CDN64-Selbsttest zeigt einen Hinweis, wenn sie zu klein sind.
Platte läuft vollAlte Images aufräumen: sudo docker image prune. Die Daten von Node64 liegen im Volume und bleiben erhalten.

Updates und Sicherungen beschreibt Update & Backup, weitere Fehlerbilder die FAQ.

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