services: shellmate: build: . ports: - "22:22" - "8080:8080" environment: - SHELLMATE_SSH_PORT=22 - SHELLMATE_REDIS_URL=redis://redis:6379 - SHELLMATE_DATABASE_URL=postgresql://shellmate:shellmate@postgres:5432/shellmate - STOCKFISH_PATH=/usr/games/stockfish volumes: - ssh_keys:/etc/shellmate depends_on: - redis - postgres restart: unless-stopped healthcheck: test: ["CMD", "nc", "-z", "localhost", "22"] interval: 30s timeout: 10s retries: 3 redis: image: redis:7-alpine volumes: - redis_data:/data restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 postgres: image: postgres:16-alpine environment: - POSTGRES_USER=shellmate - POSTGRES_PASSWORD=shellmate - POSTGRES_DB=shellmate volumes: - postgres_data:/var/lib/postgresql/data restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U shellmate"] interval: 10s timeout: 5s retries: 5 volumes: redis_data: postgres_data: ssh_keys: