50 lines
1.6 KiB
YAML
50 lines
1.6 KiB
YAML
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
|