73 lines
1.8 KiB
YAML
73 lines
1.8 KiB
YAML
# Опционально: старый стек без Coolify (Caddy :9000 + lego)
|
|
# docker compose -f docker-compose.standalone.yml up -d --build
|
|
services:
|
|
web:
|
|
build: ./app
|
|
container_name: remna-web
|
|
restart: always
|
|
env_file: .env
|
|
environment:
|
|
DATABASE_PATH: /data/app.db
|
|
volumes:
|
|
- web-data:/data
|
|
expose:
|
|
- "8000"
|
|
networks:
|
|
- site-network
|
|
|
|
lego:
|
|
image: goacme/lego:v4.22.2
|
|
container_name: remna-lego
|
|
env_file: .env
|
|
environment:
|
|
CF_DNS_API_TOKEN: ${CLOUDFLARE_API_TOKEN}
|
|
volumes:
|
|
- lego-certs:/letsencrypt
|
|
entrypoint: ["/bin/sh", "-c"]
|
|
command:
|
|
- |
|
|
set -e
|
|
CERT="/letsencrypt/certificates/rm.de4ima.uk.crt"
|
|
if [ ! -f "$$CERT" ]; then
|
|
/lego --path /letsencrypt --email "$$ACME_EMAIL" --domains rm.de4ima.uk --dns cloudflare --accept-tos run
|
|
else
|
|
/lego --path /letsencrypt --email "$$ACME_EMAIL" --domains rm.de4ima.uk --dns cloudflare --accept-tos renew --days 30 || true
|
|
fi
|
|
sleep infinity
|
|
networks:
|
|
- site-network
|
|
restart: unless-stopped
|
|
|
|
caddy:
|
|
image: caddy:2.9
|
|
container_name: remna-caddy
|
|
restart: always
|
|
ports:
|
|
- "0.0.0.0:9000:9000"
|
|
volumes:
|
|
- ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
|
|
- lego-certs:/certs:ro
|
|
- caddy-ssl-data:/data
|
|
- caddy-config:/config
|
|
depends_on:
|
|
- web
|
|
- lego
|
|
entrypoint: ["/bin/sh", "-c"]
|
|
command:
|
|
- |
|
|
CERT="/certs/certificates/rm.de4ima.uk.crt"
|
|
while [ ! -f "$$CERT" ]; do sleep 2; done
|
|
exec caddy run --config /etc/caddy/Caddyfile --adapter caddyfile
|
|
networks:
|
|
- site-network
|
|
|
|
networks:
|
|
site-network:
|
|
name: remna-site-network
|
|
|
|
volumes:
|
|
web-data:
|
|
lego-certs:
|
|
caddy-ssl-data:
|
|
caddy-config:
|