diff --git a/public/docs-static/img/selfhosted/quickstart/create-user.png b/public/docs-static/img/selfhosted/quickstart/create-user.png new file mode 100644 index 00000000..aec1caa6 Binary files /dev/null and b/public/docs-static/img/selfhosted/quickstart/create-user.png differ diff --git a/public/docs-static/img/selfhosted/quickstart/setup.png b/public/docs-static/img/selfhosted/quickstart/setup.png new file mode 100644 index 00000000..875c11da Binary files /dev/null and b/public/docs-static/img/selfhosted/quickstart/setup.png differ diff --git a/src/pages/selfhosted/identity-providers/local.mdx b/src/pages/selfhosted/identity-providers/local.mdx index 4e35ddef..e59bb61f 100644 --- a/src/pages/selfhosted/identity-providers/local.mdx +++ b/src/pages/selfhosted/identity-providers/local.mdx @@ -8,7 +8,7 @@ With local user management, you can: - **Create local users** directly from the NetBird Dashboard - **Add external identity providers** (Google, Microsoft, Okta, etc.) through the Dashboard UI -- **Configure multiple IdPs** simultaneously—users see all providers as login options +- **Configure multiple IdPs** simultaneously, users see all providers as login options - **Simplify your deployment** with fewer containers and reduced resource requirements - **Get started faster** with no additional IdP setup required @@ -18,17 +18,6 @@ Local user management is powered by an embedded [Dex](https://dexidp.io/) server [Get Started →](/selfhosted/selfhosted-quickstart) -## Overview - -The Management service provides: - -- **Local user management** - Create users with email/password authentication directly in NetBird -- **No external IdP required** - Works out of the box, no Zitadel, Keycloak, or other IdP needed -- **External identity provider support** - Optionally connect one or more OIDC-compatible providers (Google, Microsoft, Okta, etc.) -- **Multiple IdP support** - Configure multiple external identity providers simultaneously -- **Device authentication** - CLI authentication via device authorization flow -- **Secure storage** - AES-256-GCM encryption for sensitive user data at rest - ## When to Use Local Users Local user management is ideal for: @@ -48,31 +37,11 @@ Consider a [standalone external IdP](/selfhosted/selfhosted-guide#step-3-configu - Integration with existing enterprise SSO infrastructure - Specific IdP features not available via OIDC connectors -## Architecture - -With local user management enabled, the architecture is simplified: - -``` - NetBird Management -┌─────────────────┐ ┌─────────────────┐ ┌─────────────┐ -│ Management │ │ Embedded Dex │ │ Dashboard │ -│ Service │◄─┤ IdP Server │◄─┤ API │ -└─────────────────┘ └─────────────────┘ └─────────────┘ - │ │ - ▼ ▼ -┌─────────────────────────────────────────────────────────┐ -│ SQLite/Postgres Database │ -│ (Users, Accounts, IdP Connectors) │ -└─────────────────────────────────────────────────────────┘ -``` - -Compare this to the external IdP architecture which requires separate containers for the IdP and its database. - ## Configuration ### Enabling Embedded IdP -The embedded IdP is enabled by default when using the new `getting-started.sh` quickstart script. For manual configuration, update your `management.json`: +The embedded IdP is enabled by default when using the new [`getting-started.sh`](/selfhosted/selfhosted-quickstart) quickstart script. For manual configuration, update your `management.json`: ```json { diff --git a/src/pages/selfhosted/selfhosted-quickstart.mdx b/src/pages/selfhosted/selfhosted-quickstart.mdx index 41e54e7a..801388b9 100644 --- a/src/pages/selfhosted/selfhosted-quickstart.mdx +++ b/src/pages/selfhosted/selfhosted-quickstart.mdx @@ -1,17 +1,12 @@ # Self-hosting quickstart guide (5 min) -NetBird is open-source and can be self-hosted on your servers. +NetBird is open source and can be self-hosted on your servers. It relies on components developed by NetBird Authors [Management Service](https://github.com/netbirdio/netbird/tree/main/management), [Management UI Dashboard](https://github.com/netbirdio/dashboard), [Signal Service](https://github.com/netbirdio/netbird/tree/main/signal), and a 3rd party open-source STUN/TURN service [Coturn](https://github.com/coturn/coturn). If you would like to learn more about the architecture please refer to the [Architecture section](/about-netbird/how-netbird-works). - -It might be a good idea to try NetBird before self-hosting on your servers. -We run NetBird in the cloud, and it will take a few clicks to get started with our managed version. [Check it out!](https://netbird.io/pricing) - - ## Quick self-hosting @@ -50,10 +45,41 @@ bash getting-started.sh Replace `netbird.example.com` with your domain name. +An example output of the script: + +```bash +root@selfhosted-1:~/netbird# bash getting-started.sh +Rendering initial files... + +Starting NetBird services + +WARN[0000] No services to build +[+] up 9/9 + ✔ Network netbird-selfhosted-3_netbird Created 0.1s + ✔ Volume netbird-selfhosted-3_netbird_caddy_data Created 0.0s + ✔ Volume netbird-selfhosted-3_netbird_management Created 0.0s + ✔ Container netbird-caddy Created 0.2s + ✔ Container netbird-dashboard Created 0.2s + ✔ Container netbird-management Created 0.2s + ✔ Container netbird-relay Created 0.2s + ✔ Container netbird-coturn Created 0.2s + ✔ Container netbird-signal Created 0.2s +Waiting for Management server to become ready . . done + +Done! + +You can access the NetBird dashboard at https://netbird.example.com +Follow the onboarding steps to set up your NetBird instance. +``` + ### Initial setup (Onboarding) The script deploys NetBird **without any users**. Once complete, you'll need to create your first user: +

+ NetBird setup page +

+ 1. Open your browser and navigate to `https://netbird.example.com` 2. You'll be redirected to the setup page (`/setup`) 3. Create your admin account: @@ -74,6 +100,10 @@ The `/setup` page is only accessible when no users exist. After creating the fir You can add users directly from the NetBird Dashboard: +

+ Add user +

+ 1. Navigate to **Team** → **Users** 2. Click **Create User** 3. Enter the user's email and name