services: app: image: crew_admin:latest container_name: crew_admin_app restart: unless-stopped environment: - APP_ENV=${APP_ENV:-production} - APP_DEBUG=${APP_DEBUG:-false} - APP_URL=${APP_URL:-https://admin.crewsportswear.app} - DB_CONNECTION=mysql - DB_HOST=${DB_HOST} - DB_PORT=${DB_PORT:-3306} - DB_DATABASE=${DB_DATABASE} - DB_USERNAME=${DB_USERNAME} - DB_PASSWORD=${DB_PASSWORD} - IMAGES_DIRECTORY=${IMAGES_DIRECTORY} - PRODUCTION_PRIVATE_SERVER=${PRODUCTION_PRIVATE_SERVER} volumes: - ./storage:/var/www/html/storage - ./public/uploads:/var/www/html/public/uploads labels: - "traefik.enable=true" # Production environment (admin.crewsportswear.app) - "traefik.http.routers.crew-admin-prod.rule=Host(`admin.crewsportswear.app`)" - "traefik.http.routers.crew-admin-prod.entrypoints=websecure" - "traefik.http.routers.crew-admin-prod.tls=true" - "traefik.http.routers.crew-admin-prod.tls.certresolver=le" - "traefik.http.services.crew-admin-prod.loadbalancer.server.port=80" # HTTP to HTTPS redirect - "traefik.http.routers.crew-admin-prod-http.rule=Host(`admin.crewsportswear.app`)" - "traefik.http.routers.crew-admin-prod-http.entrypoints=web" - "traefik.http.routers.crew-admin-prod-http.middlewares=https-redirect" - "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https" networks: - traefik-public - crew-app-net - default networks: traefik-public: external: true crew-app-net: external: true default: driver: bridge