version: '3.8' services: littleshop: build: . image: localhost:5000/littleshop:latest container_name: littleshop restart: unless-stopped ports: - "127.0.0.1:5100:5000" # Bind only to localhost environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://+:5000 - ConnectionStrings__DefaultConnection=Data Source=/app/data/littleshop-production.db - Jwt__Key=${JWT_SECRET_KEY} - Jwt__Issuer=LittleShop-Production - Jwt__Audience=LittleShop-Production - Jwt__ExpiryInHours=24 - SilverPay__BaseUrl=${SILVERPAY_URL} - SilverPay__ApiKey=${SILVERPAY_API_KEY} - SilverPay__WebhookSecret=${SILVERPAY_WEBHOOK_SECRET} - SilverPay__DefaultWebhookUrl=${SILVERPAY_WEBHOOK_URL} - SilverPay__AllowUnsignedWebhooks=false - WebPush__VapidPublicKey=${WEBPUSH_VAPID_PUBLIC_KEY} - WebPush__VapidPrivateKey=${WEBPUSH_VAPID_PRIVATE_KEY} - WebPush__VapidSubject=${WEBPUSH_SUBJECT} - TeleBot__ApiUrl=${TELEBOT_API_URL} - TeleBot__ApiKey=${TELEBOT_API_KEY} 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.23.0.0/16