version: '3.8' # Production Stack - Portainer Configuration # Deploy this through Portainer UI: Stacks -> Add Stack -> Web Editor # Branch: main - Uses paid SSL certificate services: app: image: merchbay_admin:latest container_name: merchbay_admin_prod restart: unless-stopped environment: - APP_ENV=production - APP_DEBUG=false - APP_URL=https://merchbay.com - DB_CONNECTION=mysql - DB_HOST=your-mysql-host - DB_PORT=3306 - DB_DATABASE=merchbay_admin - DB_USERNAME=your-mysql-user - DB_PASSWORD=your-mysql-password volumes: - app_storage:/var/www/html/storage - app_uploads:/var/www/html/public/uploads labels: - "traefik.enable=true" - "traefik.http.routers.merchbay-admin.rule=Host(`merchbay.com`)" - "traefik.http.routers.merchbay-admin.entrypoints=websecure" - "traefik.http.routers.merchbay-admin.tls=true" # Use custom TLS configuration (file provider for paid cert) # Ensure Traefik has file provider configured with your paid SSL cert - "traefik.http.services.merchbay-admin.loadbalancer.server.port=80" # HTTP to HTTPS redirect - "traefik.http.routers.merchbay-admin-http.rule=Host(`merchbay.com`)" - "traefik.http.routers.merchbay-admin-http.entrypoints=web" - "traefik.http.routers.merchbay-admin-http.middlewares=https-redirect" - "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https" networks: - traefik-public volumes: app_storage: driver: local app_uploads: driver: local networks: traefik-public: external: true