From f642ee041837ab36a8ef69a41963463886457e28 Mon Sep 17 00:00:00 2001 From: redbeardymcgee Date: Sat, 14 Dec 2024 20:55:00 -0600 Subject: [PATCH] feat(netbird): add netbird Good base templates. Need to churn through config docs for management.json, coturn and the env vars. --- quadlets/netbird/netbird-coturn.container | 21 +++++++++++++++++ quadlets/netbird/netbird-letsencrypt.volume | 3 +++ quadlets/netbird/netbird-management.container | 23 +++++++++++++++++++ quadlets/netbird/netbird-management.volume | 3 +++ quadlets/netbird/netbird-relay.container | 23 +++++++++++++++++++ quadlets/netbird/netbird-signal.container | 19 +++++++++++++++ quadlets/netbird/netbird-signal.volume | 3 +++ quadlets/netbird/netbird.container | 22 ++++++++++++++++++ quadlets/netbird/netbird.env | 18 +++++++++++++++ 9 files changed, 135 insertions(+) create mode 100644 quadlets/netbird/netbird-coturn.container create mode 100644 quadlets/netbird/netbird-letsencrypt.volume create mode 100644 quadlets/netbird/netbird-management.container create mode 100644 quadlets/netbird/netbird-management.volume create mode 100644 quadlets/netbird/netbird-relay.container create mode 100644 quadlets/netbird/netbird-signal.container create mode 100644 quadlets/netbird/netbird-signal.volume create mode 100644 quadlets/netbird/netbird.container create mode 100644 quadlets/netbird/netbird.env diff --git a/quadlets/netbird/netbird-coturn.container b/quadlets/netbird/netbird-coturn.container new file mode 100644 index 0000000..01ba87f --- /dev/null +++ b/quadlets/netbird/netbird-coturn.container @@ -0,0 +1,21 @@ +[Unit] +Description=Netbird coturn + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target + +[Container] +Image=docker.io/coturn/coturn +ContainerName=netbird-coturn + +HostName=netbird-coturn + +Volume=./turnserver.conf:/etc/turnserver.conf + +Environment=NETBIRD_STORE_ENGINE_POSTGRES_DSN= + +Exec=-c /etc/turnserver.conf diff --git a/quadlets/netbird/netbird-letsencrypt.volume b/quadlets/netbird/netbird-letsencrypt.volume new file mode 100644 index 0000000..27e04df --- /dev/null +++ b/quadlets/netbird/netbird-letsencrypt.volume @@ -0,0 +1,3 @@ +[Volume] +VolumeName=netbird-letsencrypt + diff --git a/quadlets/netbird/netbird-management.container b/quadlets/netbird/netbird-management.container new file mode 100644 index 0000000..d2684fd --- /dev/null +++ b/quadlets/netbird/netbird-management.container @@ -0,0 +1,23 @@ +[Unit] +Description=Netbird management + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target + +[Container] +Image=docker.io/netbirdio/management +ContainerName=netbird-management + +HostName=netbird-management + +Volume=netbird-management:/var/lib/netbird +Volume=netbird-letsencrypt:/etc/letsencrypt +Volume=./management.json:/etc/netbird/management.json + +Environment=NETBIRD_STORE_ENGINE_POSTGRES_DSN= + +Exec=--port 443 --log-file console --log-level info --disable-anonymous-metrics="$NETBIRD_DISABLE_ANONYMOUS_METRICS" --single-account-mode-domain="$NETBIRD_MGMT_SINGLE_ACCOUNT_MODE_DOMAIN" --dns-domain="$NETBIRD_MGMT_DNS_DOMAIN" diff --git a/quadlets/netbird/netbird-management.volume b/quadlets/netbird/netbird-management.volume new file mode 100644 index 0000000..79f206d --- /dev/null +++ b/quadlets/netbird/netbird-management.volume @@ -0,0 +1,3 @@ +[Volume] +VolumeName=netbird-management + diff --git a/quadlets/netbird/netbird-relay.container b/quadlets/netbird/netbird-relay.container new file mode 100644 index 0000000..c2f8769 --- /dev/null +++ b/quadlets/netbird/netbird-relay.container @@ -0,0 +1,23 @@ +[Unit] +Description=Netbird relay + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target + +[Container] +Image=docker.io/netbirdio/relay +ContainerName=netbird-relay + +HostName=netbird-relay + +Volume=netbird-relay:/var/lib/netbird + +Environment=NB_LOG_LEVEL= +Environment=NB_LISTEN_ADDRESS= +Environment=NB_EXPOSED_ADDRESS= +Environment=NB_AUTH_SECRET= + diff --git a/quadlets/netbird/netbird-signal.container b/quadlets/netbird/netbird-signal.container new file mode 100644 index 0000000..c805397 --- /dev/null +++ b/quadlets/netbird/netbird-signal.container @@ -0,0 +1,19 @@ +[Unit] +Description=Netbird signal + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target + +[Container] +Image=docker.io/netbirdio/signal +ContainerName=netbird-signal + +HostName=netbird-signal + +Volume=netbird-signal:/var/lib/netbird + + diff --git a/quadlets/netbird/netbird-signal.volume b/quadlets/netbird/netbird-signal.volume new file mode 100644 index 0000000..16aa07c --- /dev/null +++ b/quadlets/netbird/netbird-signal.volume @@ -0,0 +1,3 @@ +[Volume] +VolumeName=netbird-signal + diff --git a/quadlets/netbird/netbird.container b/quadlets/netbird/netbird.container new file mode 100644 index 0000000..28610d2 --- /dev/null +++ b/quadlets/netbird/netbird.container @@ -0,0 +1,22 @@ +[Unit] +Description=Netbird dashboard +Wants=netbird-signal.service +Wants=netbird-relay.service +Wants=netbird-management.service +Wants=netbird-coturn.service + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target + +[Container] +Image=docker.io/netbirdio/dashboard +ContainerName=netbird-dashboard + +HostName=netbird-dashboard + +Volume=netbird-letsencrypt:/etc/letsencrypt + diff --git a/quadlets/netbird/netbird.env b/quadlets/netbird/netbird.env new file mode 100644 index 0000000..6c260cd --- /dev/null +++ b/quadlets/netbird/netbird.env @@ -0,0 +1,18 @@ +# Endpoints +NETBIRD_MGMT_API_ENDPOINT= +NETBIRD_MGMT_GRPC_API_ENDPOINT= +# OIDC +AUTH_AUDIENCE= +AUTH_CLIENT_ID= +AUTH_CLIENT_SECRET= +AUTH_AUTHORITY= +USE_AUTH0= +AUTH_SUPPORTED_SCOPES= +AUTH_REDIRECT_URI= +AUTH_SILENT_REDIRECT_URI= +NETBIRD_TOKEN_SOURCE= +# SSL +NGINX_SSL_PORT=443 +# Letsencrypt +LETSENCRYPT_DOMAIN= +LETSENCRYPT_EMAIL=