2021-09-25 19:12:05 +02:00
|
|
|
version: "3"
|
|
|
|
services:
|
|
|
|
#UI dashboard
|
|
|
|
dashboard:
|
2024-02-05 17:10:08 +01:00
|
|
|
image: netbirdio/dashboard:$NETBIRD_DASHBOARD_TAG
|
2021-09-25 19:12:05 +02:00
|
|
|
restart: unless-stopped
|
|
|
|
ports:
|
|
|
|
- 80:80
|
|
|
|
- 443:443
|
|
|
|
environment:
|
2023-04-04 00:21:40 +02:00
|
|
|
# Endpoints
|
|
|
|
- NETBIRD_MGMT_API_ENDPOINT=$NETBIRD_MGMT_API_ENDPOINT
|
|
|
|
- NETBIRD_MGMT_GRPC_API_ENDPOINT=$NETBIRD_MGMT_API_ENDPOINT
|
|
|
|
# OIDC
|
2023-10-03 19:33:42 +02:00
|
|
|
- AUTH_AUDIENCE=$NETBIRD_DASH_AUTH_AUDIENCE
|
2022-08-17 21:44:20 +02:00
|
|
|
- AUTH_CLIENT_ID=$NETBIRD_AUTH_CLIENT_ID
|
2023-06-07 16:00:04 +02:00
|
|
|
- AUTH_CLIENT_SECRET=$NETBIRD_AUTH_CLIENT_SECRET
|
2022-08-17 21:44:20 +02:00
|
|
|
- AUTH_AUTHORITY=$NETBIRD_AUTH_AUTHORITY
|
|
|
|
- USE_AUTH0=$NETBIRD_USE_AUTH0
|
|
|
|
- AUTH_SUPPORTED_SCOPES=$NETBIRD_AUTH_SUPPORTED_SCOPES
|
2022-10-12 12:25:46 +02:00
|
|
|
- AUTH_REDIRECT_URI=$NETBIRD_AUTH_REDIRECT_URI
|
|
|
|
- AUTH_SILENT_REDIRECT_URI=$NETBIRD_AUTH_SILENT_REDIRECT_URI
|
2023-04-04 15:56:02 +02:00
|
|
|
- NETBIRD_TOKEN_SOURCE=$NETBIRD_TOKEN_SOURCE
|
2023-04-04 00:21:40 +02:00
|
|
|
# SSL
|
|
|
|
- NGINX_SSL_PORT=443
|
|
|
|
# Letsencrypt
|
|
|
|
- LETSENCRYPT_DOMAIN=$NETBIRD_LETSENCRYPT_DOMAIN
|
|
|
|
- LETSENCRYPT_EMAIL=$NETBIRD_LETSENCRYPT_EMAIL
|
2021-09-25 19:12:05 +02:00
|
|
|
volumes:
|
2022-05-13 14:11:21 +02:00
|
|
|
- $LETSENCRYPT_VOLUMENAME:/etc/letsencrypt/
|
2024-06-25 13:54:09 +02:00
|
|
|
logging:
|
|
|
|
driver: "json-file"
|
|
|
|
options:
|
|
|
|
max-size: "500m"
|
|
|
|
max-file: "2"
|
2021-09-25 19:12:05 +02:00
|
|
|
# Signal
|
|
|
|
signal:
|
2023-12-17 17:43:06 +01:00
|
|
|
image: netbirdio/signal:$NETBIRD_SIGNAL_TAG
|
2021-09-25 19:12:05 +02:00
|
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
2022-05-13 21:51:41 +02:00
|
|
|
- $SIGNAL_VOLUMENAME:/var/lib/netbird
|
2021-09-25 19:12:05 +02:00
|
|
|
ports:
|
2023-09-14 15:58:28 +02:00
|
|
|
- $NETBIRD_SIGNAL_PORT:80
|
2023-02-03 21:47:20 +01:00
|
|
|
# # port and command for Let's Encrypt validation
|
2021-09-25 19:12:05 +02:00
|
|
|
# - 443:443
|
2023-04-04 00:21:40 +02:00
|
|
|
# command: ["--letsencrypt-domain", "$NETBIRD_LETSENCRYPT_DOMAIN", "--log-file", "console"]
|
2024-06-25 13:54:09 +02:00
|
|
|
logging:
|
|
|
|
driver: "json-file"
|
|
|
|
options:
|
|
|
|
max-size: "500m"
|
|
|
|
max-file: "2"
|
2024-09-08 12:06:14 +02:00
|
|
|
# Relay
|
|
|
|
relay:
|
|
|
|
image: netbirdio/relay:$NETBIRD_RELAY_TAG
|
|
|
|
restart: unless-stopped
|
|
|
|
environment:
|
|
|
|
- NB_LOG_LEVEL=info
|
|
|
|
- NB_LISTEN_ADDRESS=:$NETBIRD_RELAY_PORT
|
|
|
|
- NB_EXPOSED_ADDRESS=$NETBIRD_RELAY_DOMAIN:$NETBIRD_RELAY_PORT
|
|
|
|
# todo: change to a secure secret
|
|
|
|
- NB_AUTH_SECRET=$NETBIRD_RELAY_AUTH_SECRET
|
|
|
|
ports:
|
|
|
|
- $NETBIRD_RELAY_PORT:$NETBIRD_RELAY_PORT
|
|
|
|
logging:
|
|
|
|
driver: "json-file"
|
|
|
|
options:
|
|
|
|
max-size: "500m"
|
|
|
|
max-file: "2"
|
2023-04-04 00:21:40 +02:00
|
|
|
|
2021-09-25 19:12:05 +02:00
|
|
|
# Management
|
|
|
|
management:
|
2023-12-17 17:43:06 +01:00
|
|
|
image: netbirdio/management:$NETBIRD_MANAGEMENT_TAG
|
2021-09-25 19:12:05 +02:00
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- dashboard
|
|
|
|
volumes:
|
2022-05-13 14:11:21 +02:00
|
|
|
- $MGMT_VOLUMENAME:/var/lib/netbird
|
|
|
|
- $LETSENCRYPT_VOLUMENAME:/etc/letsencrypt:ro
|
|
|
|
- ./management.json:/etc/netbird/management.json
|
2021-09-25 19:12:05 +02:00
|
|
|
ports:
|
2022-08-05 22:41:57 +02:00
|
|
|
- $NETBIRD_MGMT_API_PORT:443 #API port
|
2023-02-03 21:47:20 +01:00
|
|
|
# # command for Let's Encrypt validation without dashboard container
|
2023-04-04 00:21:40 +02:00
|
|
|
# command: ["--letsencrypt-domain", "$NETBIRD_LETSENCRYPT_DOMAIN", "--log-file", "console"]
|
|
|
|
command: [
|
|
|
|
"--port", "443",
|
|
|
|
"--log-file", "console",
|
2024-04-09 21:00:43 +02:00
|
|
|
"--log-level", "info",
|
2023-04-04 00:21:40 +02:00
|
|
|
"--disable-anonymous-metrics=$NETBIRD_DISABLE_ANONYMOUS_METRICS",
|
|
|
|
"--single-account-mode-domain=$NETBIRD_MGMT_SINGLE_ACCOUNT_MODE_DOMAIN",
|
|
|
|
"--dns-domain=$NETBIRD_MGMT_DNS_DOMAIN"
|
|
|
|
]
|
2024-06-25 13:54:09 +02:00
|
|
|
logging:
|
|
|
|
driver: "json-file"
|
|
|
|
options:
|
|
|
|
max-size: "500m"
|
|
|
|
max-file: "2"
|
2024-08-23 16:38:57 +02:00
|
|
|
environment:
|
|
|
|
- NETBIRD_STORE_ENGINE_POSTGRES_DSN=$NETBIRD_STORE_ENGINE_POSTGRES_DSN
|
|
|
|
|
2021-09-25 19:12:05 +02:00
|
|
|
# Coturn
|
|
|
|
coturn:
|
2023-12-17 17:43:06 +01:00
|
|
|
image: coturn/coturn:$COTURN_TAG
|
2021-09-25 19:12:05 +02:00
|
|
|
restart: unless-stopped
|
2024-06-25 13:54:09 +02:00
|
|
|
#domainname: $TURN_DOMAIN # only needed when TLS is enabled
|
2021-09-25 19:12:05 +02:00
|
|
|
volumes:
|
|
|
|
- ./turnserver.conf:/etc/turnserver.conf:ro
|
|
|
|
# - ./privkey.pem:/etc/coturn/private/privkey.pem:ro
|
|
|
|
# - ./cert.pem:/etc/coturn/certs/cert.pem:ro
|
|
|
|
network_mode: host
|
2022-12-22 12:02:48 +01:00
|
|
|
command:
|
|
|
|
- -c /etc/turnserver.conf
|
2024-06-25 13:54:09 +02:00
|
|
|
logging:
|
|
|
|
driver: "json-file"
|
|
|
|
options:
|
|
|
|
max-size: "500m"
|
|
|
|
max-file: "2"
|
2021-09-25 19:12:05 +02:00
|
|
|
volumes:
|
2022-05-13 14:11:21 +02:00
|
|
|
$MGMT_VOLUMENAME:
|
2022-05-13 21:51:41 +02:00
|
|
|
$SIGNAL_VOLUMENAME:
|
2022-06-21 18:17:38 +02:00
|
|
|
$LETSENCRYPT_VOLUMENAME:
|