Files
minio-webui/docker-compose.prod.yml
T

78 lines
2.4 KiB
YAML

version: '3.9'
services:
# Redis for session management
redis:
image: redis:7-alpine
command: redis-server --appendonly yes
volumes:
- /mnt/DockerMount/minio-webui/redis:/data
networks:
- minio-webui-network
deploy:
restart_policy:
condition: any
# Combined app (backend + frontend)
app:
image: minio-webui:latest
build:
context: .
dockerfile: Dockerfile
environment:
- NODE_ENV=production
- PORT=3000
- JWT_SECRET=${JWT_SECRET}
- ADMIN_PASSWORD_HASH=${ADMIN_PASSWORD_HASH}
- SESSION_TIMEOUT=${SESSION_TIMEOUT:-3600}
- LOG_LEVEL=${LOG_LEVEL:-info}
- REDIS_HOST=redis
- REDIS_PORT=6379
# Optional: Default MinIO connection (can also be added via UI)
- DEFAULT_MINIO_ALIAS=${DEFAULT_MINIO_ALIAS:-}
- MINIO_ENDPOINT=${MINIO_ENDPOINT:-}
- MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY:-}
- MINIO_SECRET_KEY=${MINIO_SECRET_KEY:-}
# Optional: IP restriction
- ENABLE_IP_RESTRICTION=${ENABLE_IP_RESTRICTION:-false}
- ALLOWED_IPS=${ALLOWED_IPS:-}
# Optional: Email reports
- SMTP_HOST=${SMTP_HOST:-}
- SMTP_PORT=${SMTP_PORT:-587}
- SMTP_SECURE=${SMTP_SECURE:-false}
- SMTP_USER=${SMTP_USER:-}
- SMTP_PASS=${SMTP_PASS:-}
- REPORT_SENDER=${REPORT_SENDER:-}
- REPORT_RECIPIENT=${REPORT_RECIPIENT:-}
- REPORT_SCHEDULE=${REPORT_SCHEDULE:-0 0 * * 1}
volumes:
- /mnt/DockerMount/minio-webui/logs:/app/logs
- /mnt/DockerMount/minio-webui/temp:/app/temp
- /mnt/DockerMount/minio-webui/mc-config:/home/nodejs/.mc
depends_on:
- redis
deploy:
restart_policy:
condition: any
labels:
- "traefik.enable=true"
- "traefik.http.routers.minio-webui.rule=Host(`minio-webui.local.nothaft.cloud`)"
- "traefik.http.routers.minio-webui.entrypoints=https"
- "traefik.http.routers.minio-webui.tls.certresolver=dns"
- "traefik.http.services.minio-webui.loadbalancer.server.port=80"
- "traefik.docker.network=proxy"
# Homepage integration
- "homepage.group=Infrastructure"
- "homepage.name=MinIO WebUI"
- "homepage.icon=mdi-database"
- "homepage.href=https://minio-webui.local.nothaft.cloud/"
- "homepage.description=MinIO Storage Manager"
networks:
- minio-webui-network
- proxy
networks:
proxy:
external: true
minio-webui-network: