Skip to content

Add manual self-hosting and reverse proxy guides - #890 - #891

Draft
PizzaLovingNerd wants to merge 2 commits into
netbirdio:mainfrom
PizzaLovingNerd:manual-self-hosting
Draft

Add manual self-hosting and reverse proxy guides - #890#891
PizzaLovingNerd wants to merge 2 commits into
netbirdio:mainfrom
PizzaLovingNerd:manual-self-hosting

Conversation

@PizzaLovingNerd

@PizzaLovingNerd PizzaLovingNerd commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR adds a complete manual self-hosting path for NetBird and reorganizes the reverse proxy documentation into focused, maintainable guides.

  • Document the recommended combined-server deployment with the embedded identity provider, SQLite, and Traefik.
  • Preserve a dedicated legacy multi-container guide for recovery, maintenance, and migration scenarios.
  • Add separate Traefik, Nginx, Caddy, and Nginx Proxy Manager guides for both server layouts.

What changed

  • Added deployment planning guidance that explains when to introduce an external identity provider, PostgreSQL, an existing reverse proxy, external Signal or Relay services, observability, or high availability.
  • Added an end-to-end combined-container procedure covering DNS and Docker checks, configuration generation, Docker Compose, startup validation, public endpoint verification, and initial owner creation.
  • Added a manual legacy multi-container procedure with explicit architecture, port, trusted-proxy, backend startup, and migration guidance.
  • Replaced the monolithic external reverse proxy page with a concise selection and routing reference, while keeping its existing URL as the reverse proxy landing page.
  • Added proxy-specific configuration, verification, and troubleshooting for:
    • Traefik
    • Nginx
    • Caddy
    • Nginx Proxy Manager
  • Documented security and protocol requirements, including private backend exposure, trusted proxy CIDRs, HTTP/2 and h2c routing, WebSocket upgrades, long-lived connections, and direct UDP 3478 access for STUN.
  • Added the new pages to the documentation sidebar and updated affected self-hosting and migration links.

Why

The existing documentation did not provide one clear, end-to-end manual installation path, and the external reverse proxy page mixed multiple proxies and two NetBird server architectures in one long document.

These changes make the current combined-server architecture the clear default for new deployments, keep legacy instructions available where they are still operationally useful, and give each supported reverse proxy enough space for complete examples and targeted troubleshooting.

Validation

  • npm run lint:mdx
  • npm run build

The production build generated all new manual setup and reverse proxy routes successfully.

Review notes

  • The legacy multi-container content is intentionally retained for existing installations and use-cases where multi-container is preferred, but the documentation directs new deployments to the combined server.
  • The /selfhosted/external-reverse-proxy URL remains in place as a landing page, reducing disruption to existing links while moving detailed configurations into dedicated pages.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Add deployment planning, combined and legacy layouts, and tested reverse proxy guides for Traefik, Nginx, Caddy, and Nginx Proxy Manager.
@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

@PizzaLovingNerd is attempting to deploy a commit to the NetBird GmbH Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f8e72905-55f6-4b0d-8094-e65a65fb3029

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant