version: '3.8' services: # MY Network v2.0 Application my-network: build: context: . dockerfile: Dockerfile container_name: my-network-node restart: unless-stopped ports: - "15100:15100" - "3000:15100" # Альтернативный порт для nginx environment: # Database - DATABASE_URL=sqlite+aiosqlite:///app/data/my_network.db # Application - API_HOST=0.0.0.0 - API_PORT=15100 - DEBUG=false - ENVIRONMENT=production # Security - SECRET_KEY=${SECRET_KEY:-my-network-secret-key-change-this} - JWT_SECRET_KEY=${JWT_SECRET_KEY:-jwt-secret-change-this} # MY Network specific - MY_NETWORK_MODE=main-node - MY_NETWORK_PORT=15100 - MY_NETWORK_HOST=0.0.0.0 - BOOTSTRAP_NODE=my-public-node-3.projscale.dev:15100 # Monitoring - MONITORING_ENABLED=true - METRICS_ENABLED=true # Storage - STORAGE_PATH=/app/data/storage - LOGS_PATH=/app/logs # Cache (Redis optional) - REDIS_ENABLED=false - CACHE_ENABLED=false volumes: - ./data:/app/data - ./logs:/app/logs - ./sqlStorage:/app/sqlStorage - ./storedContent:/app/storedContent - ./bootstrap.json:/app/bootstrap.json:ro - ./.env:/app/.env:ro healthcheck: test: ["CMD", "curl", "-f", "http://localhost:15100/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s networks: - my-network profiles: - main-node # PostgreSQL (for production setups) postgres: image: postgres:15-alpine container_name: my-network-postgres restart: unless-stopped environment: - POSTGRES_USER=${POSTGRES_USER:-mynetwork} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-password} - POSTGRES_DB=${POSTGRES_DB:-mynetwork} volumes: - postgres_data:/var/lib/postgresql/data ports: - "5432:5432" networks: - my-network profiles: - postgres # Redis (for caching and sessions) redis: image: redis:7-alpine container_name: my-network-redis restart: unless-stopped command: redis-server --appendonly yes volumes: - redis_data:/data ports: - "6379:6379" networks: - my-network profiles: - redis # Nginx Reverse Proxy nginx: image: nginx:alpine container_name: my-network-nginx restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro - ./ssl:/etc/nginx/ssl:ro depends_on: - my-network networks: - my-network profiles: - nginx networks: my-network: driver: bridge volumes: postgres_data: redis_data: