You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
2.6 KiB
YAML

# [WireGuard®](https://www.wireguard.com/) is an extremely simple yet fast and
# modern VPN that utilizes state-of-the-art cryptography. It aims to be faster,
# simpler, leaner, and more useful than IPsec, while avoiding the massive
# headache. It intends to be considerably more performant than OpenVPN.
# WireGuard is designed as a general purpose VPN for running on embedded
# interfaces and super computers alike, fit for many different circumstances.
# Initially released for the Linux kernel, it is now cross-platform (Windows,
# macOS, BSD, iOS, Android) and widely deployable. It is currently under heavy
# development, but already it might be regarded as the most secure, easiest to
# use, and simplest VPN solution in the industry.
---
version: "2.1"
services:
wireguard:
image: ghcr.io/linuxserver/wireguard
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
# for GroupID
- PUID=${PUID:-1024}
# for UserID
- PGID=${PGID:-100}
# Specify a timezone to use for example Europe/Amsterdam
- TZ=${TZ:-Europe/Amsterdam}
# External IP or domain name for docker host. Used in server mode. If set to `auto`, the container will try to determine and set the external IP automatically
- SERVERURL=wireguard.domain.com # optional
# External port for docker host. Used in server mode.
- SERVERPORT=51820 # optional
# Number of peers to create confs for. Required for server mode. Can also be a list of names: `myPC,myPhone,myTablet` (alphanumeric only)
- PEERS=1 # optional
# DNS server set in peer/client configs (can be set as `8.8.8.8`). Used in server mode. Defaults to `auto`, which uses wireguard docker host's DNS via included CoreDNS forward.
- PEERDNS=auto # optional
# Internal subnet for the wireguard and server and peers (only change if it clashes). Used in server mode.
- INTERNAL_SUBNET=10.13.13.0 # optional
# The IPs/Ranges that the peers will be able to reach using the VPN connection. If not specified the default value is: '0.0.0.0/0, ::0/0' This will cause ALL traffic to route through the VPN, if you want split tunneling, set this to only the IPs you would like to use the tunnel AND the ip of the server's WG ip, such as 10.13.13.1.
- ALLOWEDIPS=0.0.0.0/0 # optional
volumes:
# Contains all relevant configuration files.
- ${BASEDIR:-/volume1/docker}/wireguard/config:/config
# Maps host's modules folder.
- /lib/modules:/lib/modules
ports:
# wireguard port
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped