name: devplace services: app: build: context: . dockerfile: Dockerfile restart: unless-stopped env_file: - .env user: "${DEVPLACE_UID:-1000}:${DEVPLACE_GID:-1000}" working_dir: /app environment: HOME: /app PYTHONDONTWRITEBYTECODE: "1" volumes: - .:/app expose: - "10500" networks: - appnet healthcheck: test: ["CMD", "curl", "-f", "http://localhost:10500/"] interval: 30s timeout: 10s retries: 3 start_period: 10s nginx: build: context: . dockerfile: nginx/Dockerfile restart: unless-stopped ports: - "${PORT:-10500}:80" environment: NGINX_CACHE_ENABLED: "${NGINX_CACHE_ENABLED:-false}" NGINX_CACHE_MAX_SIZE: "${NGINX_CACHE_MAX_SIZE:-1g}" NGINX_MAX_BODY_SIZE: "${NGINX_MAX_BODY_SIZE:-50m}" volumes: - ./devplacepy/static:/app/static:ro - ${DEVPLACE_DATA_DIR:-./data}/uploads:/data/uploads:ro - ./nginx/tunnel.d:/etc/nginx/tunnel.d depends_on: app: condition: service_healthy networks: - appnet ssh-server: build: context: . dockerfile: Dockerfile.ssh restart: unless-stopped env_file: - .env environment: DEVPLACE_TUNNEL_SSH_PORT: "4242" DEVPLACE_TUNNEL_AUTH_API_URL: "http://app:10500/api/tunnel/auth-check" DEVPLACE_TUNNEL_NGINX_TUNNEL_DIR: /etc/nginx/tunnel.d ports: - "4242:4242" volumes: - .:/app - ./nginx/tunnel.d:/etc/nginx/tunnel.d depends_on: app: condition: service_healthy networks: - appnet networks: appnet: driver: bridge