Files
ca-lose/docker-compose.prod.yml

74 lines
1.7 KiB
YAML

services:
frontend:
container_name: ca-lose-frontend
hostname: lose-verkaufen
build: ./frontend
networks:
- ca-lose-internal
restart: unless-stopped
backend:
container_name: ca-lose-backend
build: ./backend
environment:
NODE_ENV: production
DB_HOST: ca-lose-mysql
DB_USER: root
DB_PASSWORD: ${DB_PASSWORD}
DB_NAME: ca_lose
depends_on:
- database
networks:
- ca-lose-internal
restart: unless-stopped
database:
container_name: ca-lose-mysql
image: mysql:8.0
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_DATABASE: ca_lose
TZ: Europe/Berlin
volumes:
- ca-lose_mysql:/var/lib/mysql
- ./mysql-timezone.cnf:/etc/mysql/conf.d/timezone.cnf:ro
networks:
- ca-lose-internal
wireguard:
container_name: ca-lose-wireguard
image: ghcr.io/wg-easy/wg-easy
environment:
- WG_HOST=${WG_HOST}
- WG_DEFAULT_ADDRESS=10.10.0.x
- WG_DEFAULT_DNS=1.1.1.1
- WG_ALLOWED_IPS=172.25.0.0/24
- WG_PORT=51830
- PASSWORD_HASH=${WG_PASSWORD_HASH}
volumes:
- ./wireguard-data:/etc/wireguard
ports:
- "51830:51820/udp" # WireGuard extern erreichbar auf Port 51830
- "127.0.0.1:51821:51821/tcp" # Web-UI nur lokal erreichbar
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
networks:
- ca-lose-internal
restart: unless-stopped
volumes:
ca-lose_mysql:
wireguard-data:
networks:
ca-lose-internal:
driver: bridge
ipam:
config:
- subnet: 172.25.0.0/24