this post was submitted on 12 Mar 2026
28 points (96.7% liked)

Selfhosted

59940 readers
186 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam.

  3. Posts here are to be centered around self-hosting. Please ensure it is clear in your post how it relates to self-hosting.

  4. Don't duplicate the full text of your blog or git here. Just post the link for folks to click.

  5. Submission headline should match the article title.

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 3 years ago
MODERATORS
 

Hey Everyone, I'm currently wanting to switch from Headscale to Netbird. It looks like Netbird is much easier to self host now except I can't get it working with my current Traefik v3.6 config. Here is my config.yaml file for the routers and headers. Any ideas?

Everything loads up fine (from the logs) however I can't go to the domain address. I have a CNAME record in cloudflare not proxied. The documentation says to set an A record of "netbird.mydomain.com" however wouldn't that defeat the purpose of the reverse proxy? I have an A record setup already pointing to my public ip and everything gets sent to my traefik reverse proxy.

` ###http:

routers:

netbird-dashboard:
  rule: Host(`netbird.mydomain.com`)
  entryPoints:
    - https
  tls: {} 
  service: dashboard
  priority: 1

netbird-grpc:
  rule: >
    Host(`netbird.mydomain.com`)
    && (PathPrefix(`/signalexchange.SignalExchange/`)
    || PathPrefix(`/management.ManagementService/`))
  entryPoints:
    - https
  tls: {} 
  service: netbird-server-h2c
  priority: 100

  netbird-backend:
  rule: >
    Host(`netbird.mydomain.com`)
    && (PathPrefix(`/relay`)
    || PathPrefix(`/ws-proxy/`)
    || PathPrefix(`/api`)
    || PathPrefix(`/oauth2`))
  entryPoints:
    - https
  tls: {} 
  service: netbird-server
  priority: 100

services:

 dashboard:
  loadBalancer:
    servers:
      - url: "http://netbird/"

 netbird-server:
  loadBalancer:
    servers:
      - url: "http://netbird/"

netbird-server-h2c:
  loadBalancer:
    servers:
      - url: "h2c://netbird:80"

___`

you are viewing a single comment's thread
view the rest of the comments
[–] Tinkerer@lemmy.ca 5 points 3 months ago* (last edited 3 months ago)

Ok looks like I figured it out, turns out Netbird doesn't like wildcard certificates, I spun up a quick NPM reverse proxy in docker and everything is now working fine using a certificate for netbird.mydomain.com instead of a wildcard cert like *.mydomain.com