Move docs to root

This commit is contained in:
braginini
2023-05-23 21:34:03 +02:00
parent 8d913a349d
commit 04ea9c4991
32 changed files with 100 additions and 104 deletions

View File

@@ -26,11 +26,7 @@ const nextConfig = {
return [
{
source: '/',
destination: '/docs/introduction',
},
{
source: '/docs',
destination: '/docs/introduction',
destination: '/introduction',
},
{
source: '/api',

View File

@@ -3,18 +3,18 @@ import { Heading } from '@/components/Heading'
const aboutNetbird = [
{
href: '/docs/about-netbird/how-netbird-works',
href: '/about-netbird/how-netbird-works',
name: 'How NetBird works',
description: 'Concepts, architecture, protocols, and more.',
},
{
href: '/docs/about-netbird/netbird-vs-traditional-vpn',
href: '/about-netbird/netbird-vs-traditional-vpn',
name: 'NetBird vs. traditional VPN',
description:
'Learn how NetBird compares to traditional VPNs and why it is better.',
},
{
href: '/docs/about-netbird/why-wireguard-with-netbird',
href: '/about-netbird/why-wireguard-with-netbird',
name: 'Why WireGuard with NetBird',
description:
'Learn why and how NetBird uses WireGuard.',

View File

@@ -10,7 +10,7 @@ import { UsersIcon } from '@/components/icons/UsersIcon'
const clients = [
{
href: '/docs/client-installation#linux',
href: '/client-installation#linux',
name: 'Linux',
description:
'Learn how to install the NetBird client on Linux devices.',
@@ -24,7 +24,7 @@ const clients = [
},
},
{
href: '/docs/client-installation#mac-os',
href: '/client-installation#mac-os',
name: 'MacOS',
description:
'Learn how to install the NetBird client on MacOS devices.',
@@ -38,7 +38,7 @@ const clients = [
},
},
{
href: '/docs/client-installation#windows',
href: '/client-installation#windows',
name: 'Windows',
description:
'Learn how to install the NetBird client on Windows devices.',
@@ -52,7 +52,7 @@ const clients = [
},
},
{
href: '/docs/client-installation#android',
href: '/client-installation#android',
name: 'Android',
description:
'Learn how to install the NetBird client on Android devices.',
@@ -63,7 +63,7 @@ const clients = [
},
},
{
href: '/docs/client-installation#ios',
href: '/client-installation#ios',
name: 'iOS',
description:
'Learn how to install the NetBird client on OS devices.',

View File

@@ -126,7 +126,7 @@ function PageLink({ label, page, previous = false }) {
function PageNavigation() {
let router = useRouter()
let allPages = router.route.startsWith('/docs') ? docsNavigation.flatMap((group) => group.links) : apiNavigation.flatMap((group) => group.links)
let allPages = !router.route.startsWith('/ipa') ? docsNavigation.flatMap((group) => group.links) : apiNavigation.flatMap((group) => group.links)
let currentPageIndex = allPages.findIndex(
(page) => page.href === router.pathname
)

View File

@@ -69,7 +69,7 @@ export const Header = forwardRef(function Header({ className }, ref) {
<nav className="hidden md:block">
<ul role="list" className="flex items-center gap-8">
<TopLevelNavItem href="https://netbird.io/">Home</TopLevelNavItem>
<TopLevelNavItem href="/docs">Docs</TopLevelNavItem>
<TopLevelNavItem href="/">Docs</TopLevelNavItem>
<TopLevelNavItem href="/api">API</TopLevelNavItem>
<TopLevelNavItem href="https://netbird.io/blog/">Blog</TopLevelNavItem>
<TopLevelNavItem href="https://github.com/netbirdio/netbird">Github</TopLevelNavItem>

View File

@@ -3,35 +3,35 @@ import { Heading } from '@/components/Heading'
const howToGuides = [
{
href: '/docs/how-to/getting-started',
href: '/how-to/getting-started',
name: 'Quickstart guide',
description: 'Start using NetBird in under 5 minutes.',
},
{
href: '/docs/how-to/manage-network-access',
href: '/how-to/manage-network-access',
name: 'Manage network access',
description:
'Learn how to use access controls to manage access to your machines.',
},
{
href: '/docs/how-to/add-users-to-your-network',
href: '/how-to/add-users-to-your-network',
name: 'Add users to your network',
description: 'learn how to add team members to your NetBird network.',
},
{
href: '/docs/how-to/routing-traffic-to-private-networks',
href: '/how-to/routing-traffic-to-private-networks',
name: 'Route traffic to private networks',
description:
'Learn how to provide access to LANs, VPS, and corporate private networks.',
},
{
href: '/docs/how-to/monitor-system-and-network-activity',
href: '/how-to/monitor-system-and-network-activity',
name: 'Log and monitor network activity',
description:
'Learn how to keep track of system and network activities in your account.',
},
{
href: '/docs/how-to/manage-dns-in-your-network',
href: '/how-to/manage-dns-in-your-network',
name: 'Manage DNS in your network',
description:
'Learn how to configure name servers in your private network.',

View File

@@ -17,54 +17,54 @@ const navigation = [
title: 'Introduction',
links: [
{ title: 'Getting started', href: '/' },
{ title: 'Installation', href: '/docs/installation' },
{ title: 'Installation', href: '/installation' },
],
},
{
title: 'Core concepts',
links: [
{ title: 'Understanding caching', href: '/docs/understanding-caching' },
{ title: 'Understanding caching', href: '/understanding-caching' },
{
title: 'Predicting user behavior',
href: '/docs/predicting-user-behavior',
href: '/predicting-user-behavior',
},
{ title: 'Basics of time-travel', href: '/docs/basics-of-time-travel' },
{ title: 'Basics of time-travel', href: '/basics-of-time-travel' },
{
title: 'Introduction to string theory',
href: '/docs/introduction-to-string-theory',
href: '/introduction-to-string-theory',
},
{ title: 'The butterfly effect', href: '/docs/the-butterfly-effect' },
{ title: 'The butterfly effect', href: '/the-butterfly-effect' },
],
},
{
title: 'Advanced guides',
links: [
{ title: 'Writing plugins', href: '/docs/writing-plugins' },
{ title: 'Neuralink integration', href: '/docs/neuralink-integration' },
{ title: 'Temporal paradoxes', href: '/docs/temporal-paradoxes' },
{ title: 'Testing', href: '/docs/testing' },
{ title: 'Compile-time caching', href: '/docs/compile-time-caching' },
{ title: 'Writing plugins', href: '/writing-plugins' },
{ title: 'Neuralink integration', href: '/neuralink-integration' },
{ title: 'Temporal paradoxes', href: '/temporal-paradoxes' },
{ title: 'Testing', href: '/testing' },
{ title: 'Compile-time caching', href: '/compile-time-caching' },
{
title: 'Predictive data generation',
href: '/docs/predictive-data-generation',
href: '/predictive-data-generation',
},
],
},
{
title: 'API reference',
links: [
{ title: 'CacheAdvance.predict()', href: '/docs/cacheadvance-predict' },
{ title: 'CacheAdvance.flush()', href: '/docs/cacheadvance-flush' },
{ title: 'CacheAdvance.revert()', href: '/docs/cacheadvance-revert' },
{ title: 'CacheAdvance.regret()', href: '/docs/cacheadvance-regret' },
{ title: 'CacheAdvance.predict()', href: '/cacheadvance-predict' },
{ title: 'CacheAdvance.flush()', href: '/cacheadvance-flush' },
{ title: 'CacheAdvance.revert()', href: '/cacheadvance-revert' },
{ title: 'CacheAdvance.regret()', href: '/cacheadvance-regret' },
],
},
{
title: 'Contributing',
links: [
{ title: 'How to contribute', href: '/docs/how-to-contribute' },
{ title: 'Architecture guide', href: '/docs/architecture-guide' },
{ title: 'Design principles', href: '/docs/design-principles' },
{ title: 'How to contribute', href: '/how-to-contribute' },
{ title: 'Architecture guide', href: '/architecture-guide' },
{ title: 'Design principles', href: '/design-principles' },
],
},
]
@@ -159,7 +159,7 @@ export function Layout({ children, title, tableOfContents }) {
</div>
<Header />
{router.route.startsWith("/ipa") && <NavigationAPI className="hidden lg:mt-10 lg:block" tableOfContents={tableOfContents} />}
{router.route.startsWith("/docs") && <NavigationDocs className="hidden lg:mt-10 lg:block" />}
{!router.route.startsWith("/ipa") && <NavigationDocs className="hidden lg:mt-10 lg:block" />}
</div>
</motion.header>
<div className="min-w-0 max-w-2xl flex-auto px-4 py-16 lg:max-w-none lg:pl-8 lg:pr-0 xl:px-5">

View File

@@ -4,9 +4,9 @@ export function Logo(props) {
let router = useRouter()
return (
<div>
{router.route.startsWith('/docs') && <img src='/docs-static/img/logo/logo-docs.svg' alt="some file" height='200'
{!router.route.startsWith('/ipa') && <img src='/docs-static/img/logo/logo-docs.svg' alt="some file" height='200'
width='180' className="dark:hidden"/>}
{router.route.startsWith('/docs') && <img src='/docs-static/img/logo/logo-docs-dark.svg' alt="some file" height='200'
{!router.route.startsWith('/ipa') && <img src='/docs-static/img/logo/logo-docs-dark.svg' alt="some file" height='200'
width='180' className="hidden dark:block"/>}
{router.route.startsWith('/ipa') && <img src='/docs-static/img/logo/logo-api.svg' alt="some file" height='200'
width='180' className="dark:hidden"/>}

View File

@@ -40,7 +40,7 @@ export function NavigationAPI({tableOfContents, className}) {
<nav className={className}>
<ul role="list">
<TopLevelNavItem href="https://netbird.io/">Home</TopLevelNavItem>
<TopLevelNavItem href="/docs">Docs</TopLevelNavItem>
<TopLevelNavItem href="/">Docs</TopLevelNavItem>
<TopLevelNavItem href="/api">API</TopLevelNavItem>
<TopLevelNavItem href="https://netbird.io/blog/">Blog</TopLevelNavItem>
<TopLevelNavItem href="https://github.com/netbirdio/netbird">Github</TopLevelNavItem>

View File

@@ -8,35 +8,35 @@ export const docsNavigation = [
{
title: 'About NetBird',
links: [
{ title: 'Why WireGuard with NetBird?', href: '/docs/about-netbird/why-wireguard-with-netbird' },
{ title: 'How NetBird works', href: '/docs/about-netbird/how-netbird-works' },
{ title: 'NetBird vs. traditional VPN', href: '/docs/about-netbird/netbird-vs-traditional-vpn' },
{ title: 'Other', href: '/docs/about-netbird/other' },
{ title: 'FAQ', href: '/docs/about-netbird/faq' },
{ title: 'Why WireGuard with NetBird?', href: '/about-netbird/why-wireguard-with-netbird' },
{ title: 'How NetBird works', href: '/about-netbird/how-netbird-works' },
{ title: 'NetBird vs. traditional VPN', href: '/about-netbird/netbird-vs-traditional-vpn' },
{ title: 'Other', href: '/about-netbird/other' },
{ title: 'FAQ', href: '/about-netbird/faq' },
],
},
{
title: 'How-to guides',
links: [
{ title: 'Getting started', href: '/docs/how-to/getting-started' },
{ title: 'Installation', href: '/docs/how-to/installation' },
{ title: 'Use setup keys for automation', href: '/docs/how-to/register-machines-using-setup-keys' },
{ title: 'Manage network access', href: '/docs/how-to/manage-network-access' },
{ title: 'Add users to your network', href: '/docs/how-to/add-users-to-your-network' },
{ title: 'Access NetBird API', href: '/docs/how-to/access-netbird-public-api' },
{ title: 'Enforce periodic authentication', href: '/docs/how-to/enforce-periodic-user-authentication' },
{ title: 'Monitor system and network activity', href: '/docs/how-to/monitor-system-and-network-activity' },
{ title: 'Route traffic to private networks', href: '/docs/how-to/routing-traffic-to-private-networks' },
{ title: 'Manage DNS in your network', href: '/docs/how-to/manage-dns-in-your-network' },
{ title: 'Examples', href: '/docs/how-to/examples' },
{ title: 'CLI', href: '/docs/how-to/cli' },
{ title: 'Getting started', href: '/how-to/getting-started' },
{ title: 'Installation', href: '/how-to/installation' },
{ title: 'Use setup keys for automation', href: '/how-to/register-machines-using-setup-keys' },
{ title: 'Manage network access', href: '/how-to/manage-network-access' },
{ title: 'Add users to your network', href: '/how-to/add-users-to-your-network' },
{ title: 'Access NetBird API', href: '/how-to/access-netbird-public-api' },
{ title: 'Enforce periodic authentication', href: '/how-to/enforce-periodic-user-authentication' },
{ title: 'Monitor system and network activity', href: '/how-to/monitor-system-and-network-activity' },
{ title: 'Route traffic to private networks', href: '/how-to/routing-traffic-to-private-networks' },
{ title: 'Manage DNS in your network', href: '/how-to/manage-dns-in-your-network' },
{ title: 'Examples', href: '/how-to/examples' },
{ title: 'CLI', href: '/how-to/cli' },
],
},
{
title: 'Self-hosting NetBird',
links: [
{ title: 'Installation guide', href: '/docs/selfhosted/selfhosted-guide' },
{ title: 'Supported IdPs', href: '/docs/selfhosted/identity-providers' },
{ title: 'Installation guide', href: '/selfhosted/selfhosted-guide' },
{ title: 'Supported IdPs', href: '/selfhosted/identity-providers' },
],
},
@@ -47,7 +47,7 @@ export function NavigationDocs({className}) {
<nav className={className}>
<ul role="list">
<TopLevelNavItem href="https://netbird.io/">Home</TopLevelNavItem>
<TopLevelNavItem href="/docs">Docs</TopLevelNavItem>
<TopLevelNavItem href="/">Docs</TopLevelNavItem>
<TopLevelNavItem href="/api">API</TopLevelNavItem>
<TopLevelNavItem href="https://netbird.io/blog/">Blog</TopLevelNavItem>
<TopLevelNavItem href="https://github.com/netbirdio/netbird">Github</TopLevelNavItem>

View File

@@ -8,7 +8,7 @@ export const title = 'FAQ'
NetBird's agent doesn't require any incoming port to be open; It negotiates the connection with the support of the signal and relay services.
### Outgoing ports
NetBird usually won't need open ports, but sometimes you or your IT team needs to secure and verify
all outgoing traffic, and that may affect how NetBird clients connect to the [control layer](/docs/about-netbird/how-netbird-works)
all outgoing traffic, and that may affect how NetBird clients connect to the [control layer](/about-netbird/how-netbird-works)
and negotiate the peer-to-peer connections.
Below is the list of NetBird hosted endpoints and ports they listen to:

View File

@@ -27,7 +27,7 @@ With NetBird clients installed and authorized on the Management service, machine
<img src="/docs-static/img/architecture/mesh.png" alt="high-level-dia" style={{boxShadow: '0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)'}}/>
</p>
While it is possible to create a full mesh network, it might be not a desirable outcome. In this case, [ACLs](/docs/how-to/manage-network-access) can be utilized to limit the access to certain machines.
While it is possible to create a full mesh network, it might be not a desirable outcome. In this case, [ACLs](/how-to/manage-network-access) can be utilized to limit the access to certain machines.
Let's now take a closer look at each of NetBird's components.
@@ -39,7 +39,7 @@ It keeps the network state, public Wireguard keys of the peers, authenticates an
The Management Service's responsibilities include:
* **Registering and authenticating new peers.** Every new machine has to register itself in the network in order to connect to other machines.
After installation, NetBird client requires login that can be done through Identity Provider (IDP) or with a [setup key](/docs/how-to/register-machines-using-setup-keys).
After installation, NetBird client requires login that can be done through Identity Provider (IDP) or with a [setup key](/how-to/register-machines-using-setup-keys).
* **Keeping the network map.** The Management service stores information about all the registered peers including Wireguard public key that was sent during the registration process.
* **Managing private IP addresses.** Each peer receives a unique private IP with which it can be identified in the network.
We use [Carrier Grade NAT](https://en.wikipedia.org/wiki/Carrier-grade_NAT) address space with an allocated address block <em>100.64.0.0/10</em>.
@@ -95,7 +95,7 @@ This is done through Signal. After a connection has been established, Signal ste
Messages that are sent over Signal are **peer-to-peer encrypted**, so Signal can't see the contents.
</Note>
NetBird Signal is very similar to the signaling servers used in [WebRTC](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Signaling_and_video_calling#the_signaling_server).
NetBird Signal is very similar to the signaling servers used in [WebRTC](https://developer.mozilla.org/en-US/Web/API/WebRTC_API/Signaling_and_video_calling#the_signaling_server).
It runs in the cloud NetBird-managed and can be self-hosted.
### Relay Service
@@ -123,7 +123,7 @@ Below is a high level, step-by-step overview of the flow of communications withi
1. Administrator creates an account at [app.netbird.io](https://app.netbird.io/).
2. The system automatically generates a new network with an allocated address block <em>100.64.0.0/10</em>.
3. The system automatically generates 2 [setup keys](/docs/how-to/register-machines-using-setup-keys) that can be used for authenticating new machines.
3. The system automatically generates 2 [setup keys](/how-to/register-machines-using-setup-keys) that can be used for authenticating new machines.
4. Administrator (or a user) installs NetBird client and runs ```netbird up``` command providing one of the setup keys.
5. NetBird client generates Wireguard private and public keys along with the initial configuration.
6. NetBird client sends a registration request to the NetBird Management service calling Login gRPC endpoint, providing setup key, Wireguard public key and additional information about the machine.

View File

@@ -23,7 +23,7 @@ To achieve this, NetBird client applications employ signalling servers to find o
These are similar to the signaling servers used in [WebRTC](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Signaling_and_video_calling#the_signaling_server)
Thanks to [NAT traversal techniques](https://en.wikipedia.org/wiki/NAT_traversal),
outlined in the [Why Wireguard with NetBird](/docs/about-netbird/why-wireguard-with-netbird) section,
outlined in the [Why Wireguard with NetBird](/about-netbird/why-wireguard-with-netbird) section,
NetBird installation doesn't require complex network and firewall configuration.
It just works, minimising the maintenance effort.

View File

@@ -21,7 +21,7 @@ The goal of the task is to get familiar with the system by setting up a self-hos
It is possible to set up multiple peers on the same machine. Find out how!
</Note>
4. Ping machines and make sure that they are reachable.
5. We might ask you to provide a generated [setup key](/docs/how-to/setup-keys) so that we could test your setup.
5. We might ask you to provide a generated [setup key](/how-to/setup-keys) so that we could test your setup.
Please reach out to us with any questions. We believe you will have some! :)

View File

@@ -5,7 +5,7 @@ To ensure a high level of security, NetBird offers a peer login expiration featu
Every new network has this feature enabled, and the expiration period is set to 24 hours by default. You can disable this feature and configure the expiration period in the account settings in the web UI https://app.netbird.io/settings.
<Note>
This feature is only applied to peers added with the [interactive SSO login feature](/docs/how-to/installation#running-net-bird-with-sso-login). Peers, added with a setup key, won't be affected.
This feature is only applied to peers added with the [interactive SSO login feature](/how-to/installation#running-net-bird-with-sso-login). Peers, added with a setup key, won't be affected.
</Note>
Expired peers will appear in the peers' view with the status `needs login`.

View File

@@ -100,7 +100,7 @@ One of the simplest ways of running NetBird client application is to use a pre-b
* **NetBird account.**
Register one at [app.netbird.io](https://app.netbird.io/).
You would need to obtain a [setup key](/docs/how-to/register-machines-using-setup-keys) to associate NetBird client with your account.
You would need to obtain a [setup key](/how-to/register-machines-using-setup-keys) to associate NetBird client with your account.
The setup key could be found in the NetBird Management dashboard under the Setup Keys tab - [https://app.netbird.io/setup-keys](https://app.netbird.io/setup-keys).

View File

@@ -291,10 +291,10 @@ Check connection status:
```
### Running NetBird with a Setup Key
In case you are activating a server peer, you can use a [setup key](/docs/how-to/register-machines-using-setup-keys) as described in the steps below.
In case you are activating a server peer, you can use a [setup key](/how-to/register-machines-using-setup-keys) as described in the steps below.
> This is especially helpful when you are running multiple server instances with infrastructure-as-code tools like ansible and terraform.
1. Login to the Management Service. You need to have a `setup key` in hand (see [setup keys](/docs/how-to/register-machines-using-setup-keys)).
1. Login to the Management Service. You need to have a `setup key` in hand (see [setup keys](/how-to/register-machines-using-setup-keys)).
For all systems:
```bash
@@ -338,13 +338,13 @@ On **Windows**:
Set the ```NB_SETUP_KEY``` environment variable and run the command.
<Note>
You can pass other settings as environment variables. See [environment variables](/docs/how-to/cli#environment-variables) for details.
You can pass other settings as environment variables. See [environment variables](/how-to/cli#environment-variables) for details.
</Note>
```bash
docker run --rm --name PEER_NAME --hostname PEER_NAME --cap-add=NET_ADMIN -d -e NB_SETUP_KEY=<SETUP KEY> -v netbird-client:/etc/netbird netbirdio/netbird:latest
```
See [Docker example](/docs/how-to/examples#net-bird-client-in-docker) for details.
See [Docker example](/how-to/examples#net-bird-client-in-docker) for details.
### Troubleshooting
1. If you are using self-hosted version and haven't specified `--management-url`, the client app will use the default URL

View File

@@ -207,10 +207,10 @@ Check connection status:
```
### Running NetBird with a Setup Key
In case you are activating a server peer, you can use a [setup key](/docs/how-to/register-machines-using-setup-keys) as described in the steps below.
In case you are activating a server peer, you can use a [setup key](/how-to/register-machines-using-setup-keys) as described in the steps below.
> This is especially helpful when you are running multiple server instances with infrastructure-as-code tools like ansible and terraform.
1. Login to the Management Service. You need to have a `setup key` in hand (see [setup keys](/docs/how-to/register-machines-using-setup-keys)).
1. Login to the Management Service. You need to have a `setup key` in hand (see [setup keys](/how-to/register-machines-using-setup-keys)).
For all systems:
```bash
@@ -254,13 +254,13 @@ On **Windows**:
Set the ```NB_SETUP_KEY``` environment variable and run the command.
<Note>
You can pass other settings as environment variables. See [Environment variables](/docs/how-to/cli#environment-variables) for details.
You can pass other settings as environment variables. See [Environment variables](/how-to/cli#environment-variables) for details.
</Note>
```bash
docker run --rm --name PEER_NAME --hostname PEER_NAME --cap-add=NET_ADMIN -d -e NB_SETUP_KEY=<SETUP KEY> -v netbird-client:/etc/netbird netbirdio/netbird:latest
```
See [Docker example](/docs/how-to/examples#net-bird-client-in-docker) for details.
See [Docker example](/how-to/examples#net-bird-client-in-docker) for details.
### Troubleshooting
1. If you are using self-hosted version and haven't specified `--management-url`, the client app will use the default URL

View File

@@ -18,7 +18,7 @@ Starting [v0.11.0](https://github.com/netbirdio/netbird/releases), NetBird autom
to each peer in a private `netbird.cloud` space that can be used to access the machines. E.g., `my-server.netbird.cloud`.
Besides accessing machines by their domain names, you can configure NetBird to use your private nameservers,
control what nameservers a specific [peer group](/docs/how-to/manage-network-access#groups) should use, and set up split DNS.
control what nameservers a specific [peer group](/how-to/manage-network-access#groups) should use, and set up split DNS.
<Note>
Nameservers feature is available in NetBird [v0.11.0](https://github.com/netbirdio/netbird/releases) or later.

View File

@@ -30,7 +30,7 @@ Some characteristics of groups:
- There is a default group called `All`.
<Note>
You can assign groups automatically with the [peer auto-grouping feature](/docs/how-to/register-machines-using-setup-keys#peer-auto-grouping).
You can assign groups automatically with the [peer auto-grouping feature](/how-to/register-machines-using-setup-keys#peer-auto-grouping).
</Note>
### The All Group
@@ -96,7 +96,7 @@ You can do it by accessing the `Peers` tab and clicking the `Groups` column of a
</p>
<Note>
You can assign groups automatically with the [peer auto-grouping feature](/docs/how-to/register-machines-using-setup-keys#peer-auto-grouping).
You can assign groups automatically with the [peer auto-grouping feature](/how-to/register-machines-using-setup-keys#peer-auto-grouping).
</Note>
### Updating Rules

View File

@@ -40,7 +40,7 @@ Setup keys are set to expire after 30 days. When expired, the setup key can't be
<img src="/docs-static/img/architecture/peer-auto-tagging-setupkey.gif" alt="high-level-dia" width="800" class="imagewrapper"/>
</p>
NetBird offers a powerful [access control feature](/docs/how-to/manage-network-access) that allows easy access management of your resources.
NetBird offers a powerful [access control feature](/how-to/manage-network-access) that allows easy access management of your resources.
In a basic scenario, you would create multiple groups of peers and create access rules to define what groups can access each other.
Adding peers to groups might become time-consuming in large networks with dozens of machines.

View File

@@ -19,7 +19,7 @@ NetBird can connect machines running anywhere in just a few clicks.
It literally takes less than 5 minutes to deploy a secure peer-to-peer VPN with NetBird. {{ className: 'lead' }}
<div className="not-prose mb-16 mt-6 flex gap-3">
<Button href="/docs/how-to/getting-started" arrow="right" children="Getting started" />
<Button href="/how-to/getting-started" arrow="right" children="Getting started" />
<Button href="https://github.com/netbirdio/netbird" variant="outline" children="Explore Github" />
</div>

View File

@@ -18,7 +18,7 @@ Always keep your token safe and reset it if you suspect it has been compromised.
## Using personal access tokens
When establishing a connection using [PATs](/docs/how-to/access-netbird-public-api), you will need your access token — you can create one in the [NetBird dashboard](https://app.netbird.io/users) under User settings. It is recommended to use [service users](/docs/how-to/access-netbird-public-api) for all organization wide flows calling the API. Here's how to add the token to the request header using cURL:
When establishing a connection using [PATs](/how-to/access-netbird-public-api), you will need your access token — you can create one in the [NetBird dashboard](https://app.netbird.io/users) under User settings. It is recommended to use [service users](/how-to/access-netbird-public-api) for all organization wide flows calling the API. Here's how to add the token to the request header using cURL:
```bash {{ title: 'Example request with personal access token' }}
curl https://api.netbird.io/api/users \
@@ -28,6 +28,6 @@ curl https://api.netbird.io/api/users \
Always keep your token safe and reset it if you suspect it has been compromised.
<div className="not-prose mb-16 mt-6 flex gap-3">
<Button href="/docs/how-to/access-netbird-public-api#creating-an-access-token" arrow="right" children="How to create tokens" />
<Button href="/how-to/access-netbird-public-api#creating-an-access-token" arrow="right" children="How to create tokens" />
</div>

View File

@@ -14,12 +14,12 @@ Use the NetBird Public API to manage users, peers, network rules and more from i
## Getting started {{ anchor: false }}
To get started, it is recommended to create a [service user](/docs/how-to/access-netbird-public-api#creating-a-service-user), that can later be used to communicate with the NetBird API.
To get started, it is recommended to create a [service user](/how-to/access-netbird-public-api#creating-a-service-user), that can later be used to communicate with the NetBird API.
To be able to send requests to our API you need to [authenticate](/api/guides/authentication) on each request. This can be done either by Bearer token from your identity provider or by creating a [personal access token](/api/guides/authentication#using-personal-access-tokens) in the NetBird dashboard.{{ className: 'lead' }}
<div className="not-prose">
<Button
href="/docs/how-to/access-netbird-public-api#creating-an-access-token"
href="/how-to/access-netbird-public-api#creating-an-access-token"
variant="text"
arrow="right"
children="Get your personal access token"

View File

@@ -10,7 +10,7 @@ There are a few Identity Provider options that you can choose to run a self-host
## Auth0
This guide is a part of the [NetBird Self-hosting Guide](/docs/selfhosted/selfhosted-guide) and explains how to integrate **self-hosted** NetBird with [Auth0](https://auth0.com/).
This guide is a part of the [NetBird Self-hosting Guide](/selfhosted/selfhosted-guide) and explains how to integrate **self-hosted** NetBird with [Auth0](https://auth0.com/).
Auth0 is a flexible, drop-in solution to add authentication and authorization services to your applications.
It is a 3rd party managed service and can't be self-hosted. Auth0 is the right choice if you don't want to manage an Identity Provider (IDP)
@@ -61,8 +61,8 @@ This Auth0 API will be used to access NetBird Management Service API.
### Step 4: Enable Interactive SSO Login (Optional)
The [Interactive SSO Login feature](/docs/how-to/installation#running-net-bird-with-sso-login) allows for machine
authorization with your Identity Provider. This feature can be used as an alternative to [setup keys](/docs/how-to/register-machines-using-setup-keys)
The [Interactive SSO Login feature](/how-to/installation#running-net-bird-with-sso-login) allows for machine
authorization with your Identity Provider. This feature can be used as an alternative to [setup keys](/how-to/register-machines-using-setup-keys)
and is optional.
You can enable it by following these steps:
@@ -95,11 +95,11 @@ You can enable it by following these steps:
### Step 4: Continue with the self-hosting guide
You can now continue with the [NetBird Self-hosting Guide](/docs/selfhosted/selfhosted-guide#step-3-configure-identity-provider).
You can now continue with the [NetBird Self-hosting Guide](/selfhosted/selfhosted-guide#step-3-configure-identity-provider).
## Keycloak
This guide is a part of the [NetBird Self-hosting Guide](/docs/selfhosted/selfhosted-guide) and explains how to integrate
This guide is a part of the [NetBird Self-hosting Guide](/selfhosted/selfhosted-guide) and explains how to integrate
**self-hosted** NetBird with [Keycloak](https://www.keycloak.org/).
Keycloak is an open source software product to allow single sign-on with Identity and Access Management aimed at modern applications and services.
@@ -115,7 +115,7 @@ The following guide is an adapted version of the original
### Expected Result
After completing this guide, you can log in to your self-hosted NetBird Dashboard and add your machines
to your network using the [Interactive SSO Login feature](/docs/how-to/getting-started#running-net-bird-with-sso-login)
to your network using the [Interactive SSO Login feature](/how-to/getting-started#running-net-bird-with-sso-login)
over Keycloak.
<p>
@@ -334,9 +334,9 @@ https://<YOUR-KEYCLOAK-HOST-AND-PORT>/realms/netbird/.well-known/openid-configur
- NETBIRD_AUTH_CLIENT_ID=`netbird-client`
- NETBIRD_AUTH_AUDIENCE=`netbird-client`
- NETBIRD_AUTH_DEVICE_AUTH_CLIENT_ID=`netbird-client`. Optional,
it enables the [Interactive SSO Login feature](/docs/how-to/getting-started#running-net-bird-with-sso-login) (Oauth 2.0 Device Authorization Flow)
it enables the [Interactive SSO Login feature](/how-to/getting-started#running-net-bird-with-sso-login) (Oauth 2.0 Device Authorization Flow)
- You can now continue with the [NetBird Self-hosting Guide](/docs/selfhosted/selfhosted-guide#step-3-configure-identity-provider).
- You can now continue with the [NetBird Self-hosting Guide](/selfhosted/selfhosted-guide#step-3-configure-identity-provider).
- Set property `IdpManagerConfig` in the `management.json` file with:
<Note>
@@ -362,7 +362,7 @@ it enables the [Interactive SSO Login feature](/docs/how-to/getting-started#runn
## Azure AD
This guide is a part of the [NetBird Self-hosting Guide](/docs/selfhosted/selfhosted-guide) and explains how to integrate **self-hosted** NetBird with [Azure AD](https://azure.microsoft.com/en-us/products/active-directory/).
This guide is a part of the [NetBird Self-hosting Guide](/selfhosted/selfhosted-guide) and explains how to integrate **self-hosted** NetBird with [Azure AD](https://azure.microsoft.com/en-us/products/active-directory/).
Azure AD is a an enterprise identity service that provides single sign-on and multifactor authentication to your applications.
It is a 3rd party managed service and can't be self-hosted.
@@ -501,7 +501,7 @@ NETBIRD_AUTH_SILENT_REDIRECT_URI="/silent-auth"
NETBIRD_AUTH_USER_ID_CLAIM="oid"
```
- You can now continue with the [NetBird Self-hosting Guide](/docs/selfhosted/selfhosted-guide#step-3-configure-identity-provider/docs/selfhosted/selfhosted-guide#step-3-configure-identity-provider).
- You can now continue with the [NetBird Self-hosting Guide](/selfhosted/selfhosted-guide#step-3-configure-identity-provider/selfhosted/selfhosted-guide#step-3-configure-identity-provider).
- Set property `IdpManagerConfig` in the `management.json` file with:
<Note>
@@ -528,7 +528,7 @@ NETBIRD_AUTH_USER_ID_CLAIM="oid"
## Zitadel
This guide is a part of the [NetBird Self-hosting Guide](/docs/selfhosted/selfhosted-guide) and explains how to integrate
This guide is a part of the [NetBird Self-hosting Guide](/selfhosted/selfhosted-guide) and explains how to integrate
**self-hosted** NetBird with [Zitadel](https://zitadel.com).
<Note>
@@ -679,11 +679,11 @@ NETBIRD_AUTH_REDIRECT_URI="/auth"
NETBIRD_AUTH_SILENT_REDIRECT_URI="/silent-auth"
```
- You can now continue with the [NetBird Self-hosting Guide](/docs/selfhosted/selfhosted-guide#step-3-configure-identity-provider).
- You can now continue with the [NetBird Self-hosting Guide](/selfhosted/selfhosted-guide#step-3-configure-identity-provider).
- Set property `IdpManagerConfig` in the `management.json` file with:
:::caution
The file management.json is created automatically. Please refer [here](/docs/selfhosted/selfhosted-guide#step-5-run-configuration-script) for more information.
The file management.json is created automatically. Please refer [here](/selfhosted/selfhosted-guide#step-5-run-configuration-script) for more information.
:::
```json

View File

@@ -6,7 +6,7 @@ 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),
a 3rd party open-source STUN/TURN service [Coturn](https://github.com/coturn/coturn), and an identity provider (available options will be listed later in this guide).
If you would like to learn more about the architecture please refer to the [Architecture section](/docs/about-netbird/how-netbird-works).
If you would like to learn more about the architecture please refer to the [Architecture section](/about-netbird/how-netbird-works).
<Note>
It might be a good idea to try NetBird before self-hosting.