version: '3.8' services: littleshop-admin: image: localhost:5000/littleshop:latest container_name: littleshop-admin restart: unless-stopped ports: - "127.0.0.1:5100:5000" environment: - ASPNETCORE_ENVIRONMENT=Production - ASPNETCORE_URLS=http://+:5000 - DOTNET_ENVIRONMENT=Production - DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=0 - DOTNET_RUNNING_IN_CONTAINER=true - DOTNET_USE_POLLING_FILE_WATCHER=true - ASPNETCORE_FORWARDEDHEADERS_ENABLED=true # JWT Configuration (from .env - NO defaults) - Jwt__Key=${JWT_SECRET_KEY} - Jwt__Issuer=LittleShop-Production - Jwt__Audience=LittleShop-Production - Jwt__ExpiryInHours=24 # SilverPay Integration (from .env - NO defaults) - SilverPay__BaseUrl=${SILVERPAY_URL} - SilverPay__ApiKey=${SILVERPAY_API_KEY} - SilverPay__WebhookSecret=${SILVERPAY_WEBHOOK_SECRET} - SilverPay__DefaultWebhookUrl=${SILVERPAY_WEBHOOK_URL} - SilverPay__AllowUnsignedWebhooks=false # Database Configuration - ConnectionStrings__DefaultConnection=Data Source=/app/data/littleshop-production.db volumes: - littleshop_data:/app/data - littleshop_uploads:/app/wwwroot/uploads - littleshop_logs:/app/logs networks: - littleshop-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5000/api/catalog/products"] interval: 30s timeout: 10s retries: 3 start_period: 60s logging: driver: "json-file" options: max-size: "10m" max-file: "3" volumes: littleshop_data: driver: local littleshop_uploads: driver: local littleshop_logs: driver: local networks: littleshop-network: driver: bridge ipam: config: - subnet: 172.21.0.0/16