Files
serverconfig/config/docker-compose.yml

112 lines
2.9 KiB
YAML

volumes:
etc_wireguard:
etc_certs:
# save certifcate
etc_acme:
services:
backup:
image: jareware/docker-volume-backup
container_name: backup-docker-container
restart: unless-stopped
environment:
AWS_S3_BUCKET_NAME: ${S3_BUCKET}
AWS_EXTRA_ARGS: --endpoint ${ENDPOINT}
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
BACKUP_CRON_EXPRESSION: "0 0 * * *"
volumes:
- etc_wireguard:/backup/etc_wireguard:ro
- etc_certs:/backup/etc_certs:ro
- etc_acme:/backup/etc_acme:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
wg-easy:
image: ghcr.io/wg-easy/wg-easy:15
container_name: wg-easy
networks:
- network-container
volumes:
- etc_wireguard:/etc/wireguard
- /lib/modules:/lib/modules:ro
ports:
- "51820:51820/udp"
- "51821:51821/tcp"
labels:
- "docker-volume-backup.stop-during-backup=true"
restart: unless-stopped
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
- net.ipv6.conf.all.disable_ipv6=0
- net.ipv6.conf.all.forwarding=1
- net.ipv6.conf.default.forwarding=1
environment:
- VIRTUAL_HOST=${WG_HOSTNAME_VPN}
- LETSENCRYPT_HOST=${WG_HOSTNAME_VPN}
- LETSENCRYPT_EMAIL=${EMAIL}
- VIRTUAL_PORT=51821
depends_on:
- nginx-proxy
acme-companion:
image: nginxproxy/acme-companion
container_name: acme-companion
restart: unless-stopped
environment:
- DEFAULT_EMAIL=${EMAIL}
- NGINX_PROXY_CONTAINER=nginx-proxy
depends_on:
- nginx-proxy
labels:
- "docker-volume-backup.stop-during-backup=true"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- etc_certs:/etc/nginx/certs
- /etc/nginx/vhost.d
- ./default_html:/usr/share/nginx/html
- etc_acme:/etc/acme.sh
networks:
- network-container
nginx-proxy:
image: nginxproxy/nginx-proxy:alpine
container_name: nginx-proxy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
labels:
- "docker-volume-backup.stop-during-backup=true"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- etc_certs:/etc/nginx/certs
- /etc/nginx/vhost.d
- ./default_html:/usr/share/nginx/html
networks:
- network-container
# synapse:
# image: matrixdotorg/synapse:latest
# container_name: synapse
# restart: unless-stopped
# networks:
# - network-container
# volumes:
# - ./data:/data
# environment:
# - SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
# - VIRTUAL_HOST=notify.guezoloic.com
# - LETSENCRYPT_HOST=notify.guezoloic.com
# - LETSENCRYPT_EMAIL=${EMAIL}
# - VIRTUAL_PORT=8008
# expose:
# - "8008"
networks:
network-container:
external: false