Bastillion Docker (Multi-Arch)

Docker Multi-Arch Java 21 Upstream

Vollständig containerisiertes Bastillion 6 (ehemals KeyBox) als schlankes Multi-Arch Docker Image (linux/amd64 und linux/arm64) mit automatischen Upstream-Builds bei neuen GitHub-Releases.


🌟 Was ist Bastillion?

Bastillion ist eine moderne, browserbasierte SSH-Konsole und ein zentrales SSH-Schlüsselverwaltungssystem:

  • Web-SSH-Terminal: Volles xterm.js-Terminal im Webbrowser mit synchronisiertem Multi-Terminal-Broadcasting (Befehle parallel an mehrere Server gleichzeitig senden).
  • Zentrales Key-Management: Bastillion erzeugt ein eigenes sicheres Ed25519-Schlüsselpaar und verteilt den Public Key automatisch auf registrierte Hosts. Benutzer müssen keine privaten Schlüssel mehr lokal verwalten.
  • Moderne Krypto: Ab Version 6 voller Support für moderne SSH-Verfahren, Ed25519, moderne RSA-SHA2-Ciphers und SSH-Zertifikate.
  • Audit-Sicherheit: Aufzeichnung aller SSH-Sitzungen zur lückenlosen Nachvollziehbarkeit.
  • Zwei-Faktor-Authentifizierung (2FA): Integrierte 2FA via Google Authenticator, Authy oder Standard-TOTP-Apps.

🚀 Schnellstart

Mit Docker Run

docker run -d \
  --name bastillion \
  -p 8080:8080 \
  -v bastillion_data:/data \
  -e CONFIG_DIR=/data \
  -e PORT=8080 \
  -e TLS_ENABLED=false \
  -e GEN_DB_PASS=true \
  bastillion-docker:latest

Mit Docker Compose (inkl. Traefik)

Erstelle eine docker-compose.yaml:

version: "3.8"

services:
  bastillion:
    image: bastillion-docker:latest
    container_name: bastillion
    hostname: bastillion
    restart: unless-stopped
    networks:
      bastillion_net:
        ipv4_address: 172.28.0.10
    volumes:
      - ./data:/data
    environment:
      - CONFIG_DIR=/data
      - PORT=8080
      - TLS_ENABLED=false
      - GEN_DB_PASS=true
      - CLIENT_IP_HEADER=X-Forwarded-For
      - TZ=Europe/Berlin
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.bastillion-http.rule=Host(`bastillion.example.com`)"
      - "traefik.http.routers.bastillion-http.entrypoints=web"
      - "traefik.http.routers.bastillion-http.middlewares=redirect-to-https@file"
      - "traefik.http.routers.bastillion.rule=Host(`bastillion.example.com`)"
      - "traefik.http.routers.bastillion.entrypoints=websecure"
      - "traefik.http.routers.bastillion.tls=true"
      - "traefik.http.routers.bastillion.tls.certresolver=letsencrypt"
      - "traefik.http.routers.bastillion.service=bastillion-svc"
      - "traefik.http.services.bastillion-svc.loadbalancer.server.port=8080"

networks:
  bastillion_net:
    name: bastillion.dockernetwork.local
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.28.0.0/24
          gateway: 172.28.0.1
          ip_range: 172.28.0.128/25

Starte den Dienst:

docker compose up -d

🔐 Ersteinrichtung & Sicherheit

Beim ersten Start ist der Standard-Zugang aktiv:

  • Benutzer: admin
  • Passwort: changeme

Important

Sofortige Maßnahmen nach dem ersten Login:

  1. Passwort ändern unter Settings → Change Password.
  2. Zwei-Faktor-Authentifizierung (TOTP) unter Settings für den Admin-Account aktivieren.

⚙️ Wichtige Umgebungsvariablen

Variable Standard Beschreibung
CONFIG_DIR /data Zentraler Ordner für H2-Datenbank, Keystores und SSH-Schlüssel.
PORT 8080 Interner HTTP/HTTPS Listen-Port.
TLS_ENABLED false false für Betrieb hinter Reverse Proxy (Traefik/Nginx); true für direktes SSL.
GEN_DB_PASS true Erzeugt beim Erststart automatisch ein kryptografisch sicheres H2-DB-Passwort.
CLIENT_IP_HEADER X-Forwarded-For Liest die echte Client-IP aus dem Proxy-Header für Audit-Logs.
KEY_MANAGEMENT manage Modus für authorized_keys (manage, append oder off).

💾 Backup & Wiederherstellung

Da Bastillion durch CONFIG_DIR=/data alle Zustände (H2-Datenbank, SSH-Keypair, Einstellungen) an einem Ort bündelt, reicht eine einfache Dateisicherung:

# Backup des Datenordners erstellen
tar -cpzf bastillion_backup_$(date +%Y%m%d_%H%M%S).tar.gz ./data

🔄 Automatisierter Release-Watcher

Dieses Repository nutzt CI/CD Actions, um alle 6 Stunden die offizielle Loophole-LLC Bastillion Release API abzufragen.

Sobald ein neues Upstream-Tag erscheint, baut die Pipeline vollautomatisch Multi-Arch Images (linux/amd64 und linux/arm64) und pusht sie in die Container Registry.


📜 Lizenz

  • Bastillion steht unter der Prosperity Public License 3.0.0 von Loophole, LLC.
  • Das Docker-Packaging und die CI/CD-Skripte sind unter der Apache 2.0 Lizenz veröffentlicht.
S
Description
Modern web-based SSH console and key management tool (Bastillion 6) als Multi-Arch Docker Image mit automatischem Upstream-Build
Readme
46 KiB
2026-10-23 17:56:49 +00:00
Languages
Dockerfile 100%