qssh 0.4.4

Post-quantum secure shell with NIST PQC algorithms (Falcon, SPHINCS+, ML-KEM), configurable security tiers, and quantum-resistant protocol design
Documentation
services:
  # ── qsshd server ────────────────────────────────────────────────
  qsshd:
    build:
      context: .
      args:
        FEATURES: "sftp,hybrid-kex"
    container_name: qsshd-server
    ports:
      - "0.0.0.0:22222:22222"
    volumes:
      - qssh_etc:/etc/qssh
      - qssh_home:/home
      - qssh_logs:/var/log/qssh
    environment:
      - QSSH_LOG_LEVEL=info
      - QSSH_MAX_CONNECTIONS=100
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "bash -c 'echo > /dev/tcp/localhost/22222' 2>/dev/null"]
      interval: 30s
      timeout: 3s
      retries: 3
      start_period: 10s
    networks:
      qssh_network:
        ipv4_address: 172.21.0.10

  # ── qsshd hardened (T3+ only, quantum-native frames) ───────────
  qsshd-hardened:
    build:
      context: .
      args:
        FEATURES: "sftp,quantum-native"
    container_name: qsshd-hardened
    ports:
      - "0.0.0.0:22223:22222"
    volumes:
      - qssh_hardened_etc:/etc/qssh
      - qssh_hardened_home:/home
      - qssh_hardened_logs:/var/log/qssh
    environment:
      - QSSH_LOG_LEVEL=info
    restart: unless-stopped
    networks:
      qssh_network:
        ipv4_address: 172.21.0.11
    profiles:
      - hardened

  # ── Client (for testing) ────────────────────────────────────────
  qssh-client:
    build: .
    container_name: qssh-client
    depends_on:
      qsshd:
        condition: service_healthy
    volumes:
      - qssh_client_keys:/home/qssh/.qssh
    environment:
      - QSSH_LOG_LEVEL=debug
    networks:
      - qssh_network
    entrypoint: ["/bin/bash"]
    command: ["-c", "sleep infinity"]
    profiles:
      - client

  # ── PQTG (Post-Quantum Transport Gateway) ──────────────────────
  # Provides QKD key delivery via ETSI GS QKD 014
  pqtg:
    image: paraxiom/coherence-shield:latest
    container_name: pqtg-gateway
    ports:
      - "127.0.0.1:8443:8443"
    environment:
      - PQTG_MODE=simulator
      - PQTG_KEY_RATE=1000
    networks:
      qssh_network:
        ipv4_address: 172.21.0.20
    profiles:
      - qkd

  # ── Coherence Shield (AI attestation proxy) ─────────────────────
  coherence-shield:
    image: paraxiom/coherence-shield:latest
    container_name: coherence-shield
    ports:
      - "127.0.0.1:3080:3080"
    volumes:
      - shield_keys:/root/.coherence-shield/keys
      - shield_audit:/root/.coherence-shield
    networks:
      qssh_network:
        ipv4_address: 172.21.0.30
    profiles:
      - shield

networks:
  qssh_network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.21.0.0/16

volumes:
  qssh_etc:
  qssh_home:
  qssh_logs:
  qssh_client_keys:
  qssh_hardened_etc:
  qssh_hardened_home:
  qssh_hardened_logs:
  shield_keys:
  shield_audit: