version: '3.8'
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", "qssh", "-c", "echo 'health check'", "localhost"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
- qssh_network
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"] profiles:
- client
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
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