Files
vpnstack/vpnstack.yaml
T

132 lines
3.1 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
services:
wgdashboard:
image: donaldzou/wgdashboard:latest
container_name: wgdashboard
restart: always
network_mode: bridge
ports:
- 10086:10086
- 51888:51888/udp
- 51820:51820/udp
dns:
- 1.1.1.1
- 8.8.8.8
volumes:
- wgconf:/etc/wireguard
- wgdata:/data
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
network_mode: bridge
ports:
- 443:80/tcp
environment:
- ROCKET_TLS=${VAULTWARDEN_TAILSCALE_CERTS}
- ADMIN_TOKEN=${VW_ADMIN_TOKEN}
volumes:
- vw-data:/data
duckdns:
image: lscr.io/linuxserver/duckdns:latest
container_name: duckdns
restart: unless-stopped
network_mode: bridge
environment:
- TZ=Europe/London
- SUBDOMAINS=${DUCKDNS_SUBDOMAIN}
- TOKEN=${DUCKDNS_TOKEN}
- LOG_FILE=true
volumes:
- duckdns:/config
npm:
image: jc21/nginx-proxy-manager:latest
container_name: npm
restart: unless-stopped
network_mode: bridge
ports:
- 8080:80
- 8443:443
- 81:81
environment:
- TZ=Europe/London
- DB_MYSQL_HOST=npmdb
- DB_MYSQL_PORT=3306
- DB_MYSQL_USER=npm
- DB_MYSQL_PASSWORD=npm
volumes:
- npmdata:/data
- letsencrypt:/etc/letsencrypt
depends_on:
- npmdb
npmdb:
container_name: maria_for_nginx
image: yobasystems/alpine-mariadb:latest
restart: unless-stopped
network_mode: bridge
environment:
- TZ=Europe/London
- MYSQL_ROOT_PASSWORD=npm
- MYSQL_DATABASE=npm
- MYSQL_USER=npm
- MYSQL_PASSWORD=npm
volumes:
- npmdb:/var/lib/mysql
adguardhome:
container_name: adguardhome
image: adguard/adguardhome:latest
restart: always
network_mode: bridge
ports:
- 53:53/tcp
- 53:53/udp
- 82:80/tcp
- 83:3000/tcp
volumes:
- aghconfig:/opt/adguardhome/conf
- aghwork:/opt/adguardhome/work
cap_add:
- NET_ADMIN
cloudflared:
image: cloudflare/cloudflared:latest
container_name: cloudflared
restart: unless-stopped
network_mode: bridge
command: tunnel run
environment:
- TUNNEL_TOKEN=${CLOUDFLARE_TOKEN}
volumes:
aghconfig:
driver: local
aghwork:
driver: local
wgconf:
wgdata:
duckdns:
npmdata:
letsencrypt:
npmdb:
vw-data:
# environment variables:
# NOTE: For VaultWarden create a free Tailscale account and get certs into portainer e.g.
# sudo mkdir /var/lib/docker/volumes/myvpnstack_vw-data/_data/certs
# Also, docker needs to read the tailscale cert and key so give it 644
# sudo chmod 644 /var/lib/docker/volumes/myvpnstack_vw-data/_data/certs/*
# VAULTWARDEN_TAILSCALE_CERTS={certs=/data/certs/your_machine.your_tailnet_DNS_Name.ts.net.crt,key=/data/certs/your_machine.your_tailnet_DNS_Name.ts.net.key}
# CLOUDFLARE_TOKEN=your_cloudflare_token
# DUCKDNS_TOKEN=your_duckdns_token
# DUCKDNS_SUBDOMAIN=your_duckdns_subdomain_without_duckdns.org