qssh 0.4.0

Post-quantum secure shell with NIST PQC algorithms (Falcon, SPHINCS+, ML-KEM), configurable security tiers, and quantum-resistant protocol design
Documentation
services:
  qsshd:
    build: .
    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

  # Client example (for testing)
  qssh-client:
    build: .
    container_name: qssh-client
    depends_on:
      - qsshd
    volumes:
      - qssh_client_keys:/home/qssh/.qssh
    environment:
      - QSSH_LOG_LEVEL=info
    networks:
      - qssh_network
    entrypoint: ["/bin/bash"]
    command: ["-c", "sleep infinity"]  # Keep container running for manual testing
    profiles:
      - client  # Only start with --profile client

  # QKD simulator (optional, for quantum key distribution testing)
  qkd-simulator:
    image: alpine:latest
    container_name: qkd-simulator
    ports:
      - "127.0.0.1:8443:8443"
    command: >
      sh -c "
        echo 'QKD Simulator running on port 8443';
        echo 'This simulates a quantum key distribution endpoint';
        nc -l -p 8443
      "
    networks:
      - qssh_network
    profiles:
      - qkd  # Only start with --profile qkd

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

volumes:
  qssh_etc:
    driver: local
  qssh_home:
    driver: local
  qssh_client_keys:
    driver: local
  qssh_logs:
    driver: local