DefGuard
True enterprise WireGuard with MFA/2FA and SSO.
Directory Structure
- .env
- docker-compose.yml
docker-compose.yml
version: "3"
services:
db:
image: postgres:15-alpine
restart: unless-stopped
environment:
POSTGRES_DB: defguard
POSTGRES_USER: defguard
POSTGRES_PASSWORD: ${DEFGUARD_DB_PASSWORD}
volumes:
- ${VOLUME_DIR:-./.volumes}/db:/var/lib/postgresql/data
# ports:
# - "5432:5432"
# caddy: # [PROXY]
# image: caddy:2.7-alpine # [PROXY]
# restart: unless-stopped # [PROXY]
# volumes: # [PROXY]
# - ${VOLUME_DIR:-./.volumes}/caddy/data:/data # [PROXY]
# - ${VOLUME_DIR:-./.volumes}/caddy/config:/config # [PROXY]
# - ${VOLUME_DIR:-./.volumes}/caddy/Caddyfile:/etc/caddy/Caddyfile # [PROXY]
# ports: # [PROXY]
# # http # [PROXY]
# - "80:80" # [PROXY]
# # https # [PROXY]
# - "443:443" # [PROXY]
core:
image: ghcr.io/defguard/defguard:${CORE_IMAGE_TAG:-latest}
restart: unless-stopped
environment:
DEFGUARD_AUTH_SECRET: ${DEFGUARD_AUTH_SECRET}
DEFGUARD_GATEWAY_SECRET: ${DEFGUARD_GATEWAY_SECRET}
DEFGUARD_YUBIBRIDGE_SECRET: ${DEFGUARD_YUBIBRIDGE_SECRET}
DEFGUARD_SECRET_KEY: ${DEFGUARD_SECRET_KEY}
DEFGUARD_DEFAULT_ADMIN_PASSWORD: ${DEFGUARD_DEFAULT_ADMIN_PASSWORD}
DEFGUARD_DB_HOST: db
DEFGUARD_DB_PORT: 5432
DEFGUARD_DB_USER: defguard
DEFGUARD_DB_PASSWORD: ${DEFGUARD_DB_PASSWORD}
DEFGUARD_DB_NAME: defguard
DEFGUARD_URL: ${DEFGUARD_URL}
DEFGUARD_LOG_LEVEL: info
DEFGUARD_WEBAUTHN_RP_ID: ${DEFGUARD_WEBAUTHN_RP_ID}
DEFGUARD_COOKIE_INSECURE: ${DEFGUARD_COOKIE_INSECURE:-false}
# DEFGUARD_ENROLLMENT_URL: ${DEFGUARD_ENROLLMENT_URL} # [ENROLLMENT]
# DEFGUARD_PROXY_URL: https://proxy:50052 # [ENROLLMENT]
# DEFGUARD_PROXY_GRPC_CA: /ssl/defguard-ca.pem # [ENROLLMENT]
DEFGUARD_GRPC_CERT: /ssl/defguard-grpc.crt
DEFGUARD_GRPC_KEY: /ssl/defguard-grpc.key
## RSA setup guide: https://defguard.gitbook.io/defguard/community-features/setting-up-your-instance/docker-compose#openid-rsa-setup
DEFGUARD_OPENID_KEY: /keys/rsakey.pem
## LDAP setup guide: https://defguard.gitbook.io/defguard/features/ldap-synchronization-setup
# DEFGUARD_LDAP_URL: ldap://localhost:389 # [LDAP]
# DEFGUARD_LDAP_BIND_USERNAME: cn=admin,dc=example,dc=org # [LDAP]
# DEFGUARD_LDAP_BIND_PASSWORD: password # [LDAP]
ports:
# web
# - "8000:8000"
# grpc
- "50055:50055"
depends_on:
- db
volumes:
# SSL setup guide: https://defguard.gitbook.io/defguard/features/setting-up-your-instance/docker-compose#ssl-setup
- ${VOLUME_DIR:-./.volumes}/ssl:/ssl
## RSA setup guide: https://defguard.gitbook.io/defguard/community-features/setting-up-your-instance/docker-compose#openid-rsa-setup
- ${VOLUME_DIR:-./.volumes}/core/rsakey.pem:/keys/rsakey.pem
# proxy: # [ENROLLMENT]
# image: ghcr.io/defguard/defguard-proxy:${PROXY_IMAGE_TAG:-latest} # [ENROLLMENT]
# restart: unless-stopped # [ENROLLMENT]
# environment: # [ENROLLMENT]
# DEFGUARD_PROXY_GRPC_PORT: 50052 # [ENROLLMENT]
# DEFGUARD_PROXY_GRPC_CERT: /ssl/defguard-proxy-grpc.crt # [ENROLLMENT]
# DEFGUARD_PROXY_GRPC_KEY: /ssl/defguard-proxy-grpc.key # [ENROLLMENT]
# volumes: # [ENROLLMENT]
# SSL setup guide: https://defguard.gitbook.io/defguard/features/setting-up-your-instance/docker-compose#ssl-setup
# - ${VOLUME_DIR:-./.volumes}/ssl:/ssl # [ENROLLMENT]
# ports:
# # web
# - "8080:8080"
# depends_on: # [ENROLLMENT]
# - core # [ENROLLMENT]
# gateway: # [VPN]
# image: ghcr.io/defguard/gateway:${GATEWAY_IMAGE_TAG:-latest} # [VPN]
# restart: unless-stopped # [VPN]
# network_mode: "host" # [VPN]
# environment: # [VPN]
# DEFGUARD_GRPC_URL: https://localhost:50055 # [VPN]
# DEFGUARD_GRPC_CA: /ssl/defguard-ca.pem # [VPN]
# DEFGUARD_STATS_PERIOD: 30 # [VPN]
# DEFGUARD_TOKEN: ${DEFGUARD_TOKEN} # [VPN]
# volumes: # [VPN]
# SSL setup guide: https://defguard.gitbook.io/defguard/features/setting-up-your-instance/docker-compose#ssl-setup
# - ${VOLUME_DIR:-./.volumes}/ssl:/ssl # [VPN]
# cap_add: # [VPN]
# - NET_ADMIN # [VPN]Resources
Website: https://defguard.net/
Docs: https://defguard.gitbook.io/
GitHub: https://github.com/DefGuard/defguard
GitHub Container Registry: https://github.com/defguard/defguard/pkgs/container/defguard
Configuration: https://defguard.gitbook.io/defguard/admin-and-features/setting-up-your-instance/docker-compose