Skip to content

Template the NetBird hostname instead of hardcoding netbird.stoganet.com #4

@koinsaari

Description

@koinsaari

Summary

netbird.stoganet.com is hardcoded in several places where the other hostnames use \${DOMAIN} or environment variables. This makes the repo less portable and harder to reuse.

Context

Most service hostnames in compose/Caddyfile are derived from \${DOMAIN} (e.g. jellyfin.\${DOMAIN}, seerr.\${DOMAIN}). The NetBird hostname is the exception — it appears as a literal in:

  • compose/Caddyfile (site block)
  • compose/netbird/config.yaml.example (exposedAddress, auth.issuer, dashboardRedirectURIs)
  • compose/netbird/dashboard.env (NETBIRD_MGMT_API_ENDPOINT, AUTH_AUTHORITY)
  • compose/setup.sh (--management-url)

Scope

  • Introduce NETBIRD_HOSTNAME (or reuse \${DOMAIN} + a netbird subdomain) consistently across all four files
  • Update the .example files to use the placeholder
  • Keep the live config working through the migration

Out of scope: any change to NetBird's runtime behavior. This is purely templating.

Acceptance criteria

  • No literal netbird.stoganet.com remains in tracked files (except possibly in docs/ prose)
  • Fresh-host bootstrap with a different domain works end to end
  • Existing deployment continues to work after pulling the change

Notes

Care needed with dashboard.env because the NetBird dashboard reads those values at container start — needs a restart of the dashboard container after the change, not just Caddy.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions