Files
AdamuSw/deploy/all-in-one/docker-compose.prod.yml
2026-07-14 19:00:35 +03:00

46 lines
1.5 KiB
YAML

services:
openmu-startup:
restart: "unless-stopped"
environment:
ASPNETCORE_ENVIRONMENT: Production
database:
restart: "unless-stopped"
nginx-80:
restart: "unless-stopped"
environment:
DOMAIN_NAME: ${DOMAIN_NAME}
volumes:
- ./nginx/nginx.prod80.conf:/etc/nginx/nginx.conf:ro
- ./.htpasswd:/etc/nginx/.htpasswd
- ./certbot/www:/var/www/certbot/:ro
- ./nginx/templates/nginx.server_name.conf.template:/etc/nginx/templates/nginx.server_name.conf.template:ro
# We add another nginx here, just for HTTPs.
# The reason is, that it's not starting when we combine port 80 and 443 until
# the certificates are created.
# So, when running the certbot the first time, we need to be able to access
# the port 80 - and we solve this by separating the server configs.
nginx-443:
image: nginx:alpine
container_name: nginx-443
restart: "unless-stopped"
environment:
DOMAIN_NAME: ${DOMAIN_NAME}
ports:
- "443:443"
volumes:
- ./nginx/nginx.prod443.conf:/etc/nginx/nginx.conf:ro
- ./.htpasswd:/etc/nginx/.htpasswd
- ./certbot/conf/:/etc/nginx/ssl/:ro
- ./nginx/templates/nginx.server_name.conf.template:/etc/nginx/templates/nginx.server_name.conf.template:ro
- ./nginx/templates/nginx.prod.certificates.conf.template:/etc/nginx/templates/nginx.prod.certificates.conf.template:ro
depends_on:
- openmu-startup
certbot:
image: certbot/certbot:latest
volumes:
- ./certbot/www/:/var/www/certbot/:rw
- ./certbot/conf/:/etc/letsencrypt/:rw