diff --git a/public/docs-static/img/getting-started/01_netbird-sso.jpeg b/public/docs-static/img/getting-started/01_netbird-sso.jpeg new file mode 100644 index 00000000..6a831623 Binary files /dev/null and b/public/docs-static/img/getting-started/01_netbird-sso.jpeg differ diff --git a/public/docs-static/img/getting-started/02_p2p-network.jpeg b/public/docs-static/img/getting-started/02_p2p-network.jpeg new file mode 100644 index 00000000..f0d763fb Binary files /dev/null and b/public/docs-static/img/getting-started/02_p2p-network.jpeg differ diff --git a/public/docs-static/img/getting-started/03_download-netbird.jpeg b/public/docs-static/img/getting-started/03_download-netbird.jpeg new file mode 100644 index 00000000..f21aad87 Binary files /dev/null and b/public/docs-static/img/getting-started/03_download-netbird.jpeg differ diff --git a/public/docs-static/img/getting-started/04_connect-client.jpeg b/public/docs-static/img/getting-started/04_connect-client.jpeg new file mode 100644 index 00000000..3b673c73 Binary files /dev/null and b/public/docs-static/img/getting-started/04_connect-client.jpeg differ diff --git a/public/docs-static/img/getting-started/05_headless-installed.jpeg b/public/docs-static/img/getting-started/05_headless-installed.jpeg new file mode 100644 index 00000000..80cde4c5 Binary files /dev/null and b/public/docs-static/img/getting-started/05_headless-installed.jpeg differ diff --git a/public/docs-static/img/getting-started/06_headless-install-connected.jpeg b/public/docs-static/img/getting-started/06_headless-install-connected.jpeg new file mode 100644 index 00000000..ec6cdf7d Binary files /dev/null and b/public/docs-static/img/getting-started/06_headless-install-connected.jpeg differ diff --git a/public/docs-static/img/getting-started/07_ping-test.jpeg b/public/docs-static/img/getting-started/07_ping-test.jpeg new file mode 100644 index 00000000..b934af2d Binary files /dev/null and b/public/docs-static/img/getting-started/07_ping-test.jpeg differ diff --git a/public/docs-static/img/getting-started/08_policy-disabled-example.jpeg b/public/docs-static/img/getting-started/08_policy-disabled-example.jpeg new file mode 100644 index 00000000..18c8569d Binary files /dev/null and b/public/docs-static/img/getting-started/08_policy-disabled-example.jpeg differ diff --git a/public/docs-static/img/getting-started/09_policy-example.jpeg b/public/docs-static/img/getting-started/09_policy-example.jpeg new file mode 100644 index 00000000..b166903e Binary files /dev/null and b/public/docs-static/img/getting-started/09_policy-example.jpeg differ diff --git a/public/docs-static/img/getting-started/10_remote-access-onboarding.jpeg b/public/docs-static/img/getting-started/10_remote-access-onboarding.jpeg new file mode 100644 index 00000000..ac0c780a Binary files /dev/null and b/public/docs-static/img/getting-started/10_remote-access-onboarding.jpeg differ diff --git a/public/docs-static/img/getting-started/11_entire-subnet.jpeg b/public/docs-static/img/getting-started/11_entire-subnet.jpeg new file mode 100644 index 00000000..10f830e5 Binary files /dev/null and b/public/docs-static/img/getting-started/11_entire-subnet.jpeg differ diff --git a/public/docs-static/img/getting-started/12_add-routing-peer.jpeg b/public/docs-static/img/getting-started/12_add-routing-peer.jpeg new file mode 100644 index 00000000..4b2da162 Binary files /dev/null and b/public/docs-static/img/getting-started/12_add-routing-peer.jpeg differ diff --git a/public/docs-static/img/getting-started/12_routing-peer-added.jpeg b/public/docs-static/img/getting-started/12_routing-peer-added.jpeg new file mode 100644 index 00000000..711eee23 Binary files /dev/null and b/public/docs-static/img/getting-started/12_routing-peer-added.jpeg differ diff --git a/public/docs-static/img/getting-started/13_switching-network.jpeg b/public/docs-static/img/getting-started/13_switching-network.jpeg new file mode 100644 index 00000000..4d8a7afa Binary files /dev/null and b/public/docs-static/img/getting-started/13_switching-network.jpeg differ diff --git a/public/docs-static/img/getting-started/14_it-worked.jpeg b/public/docs-static/img/getting-started/14_it-worked.jpeg new file mode 100644 index 00000000..d796404d Binary files /dev/null and b/public/docs-static/img/getting-started/14_it-worked.jpeg differ diff --git a/public/docs-static/img/getting-started/16_onboarding-policies.jpeg b/public/docs-static/img/getting-started/16_onboarding-policies.jpeg new file mode 100644 index 00000000..6dcac3ef Binary files /dev/null and b/public/docs-static/img/getting-started/16_onboarding-policies.jpeg differ diff --git a/src/pages/how-to/getting-started.mdx b/src/pages/how-to/getting-started.mdx index 54aac320..52b13c7d 100644 --- a/src/pages/how-to/getting-started.mdx +++ b/src/pages/how-to/getting-started.mdx @@ -4,122 +4,188 @@ export const title = 'Getting Started' ## Quickstart Guide +Welcome to NetBird! This guide will walk you through our new onboarding process to create your account, connect your first devices, +and build a secure peer-to-peer overlay network in less than ten minutes. +
- +
-This guide describes how to quickly get started with NetBird and create a secure private network with two connected machines. -For this tutorial we will use a Macbook and an EC2 node running Linux on AWS. +## Create Your Account -## Install NetBird client +First, let's create your NetBird account. -The NetBird client works on almost any platform, including Windows, macOS, Linux, iOS, Android, Docker, routers, and even serverless environments. -To get started, install NetBird on your laptop by following the instructions on the [installation page](https://app.netbird.io/install): +![NetBird IdP SSO and MFA](/docs-static/img/getting-started/01_netbird-sso.jpeg) -

- login-to-netbird -

-

- login-to-netbird -

+1. Navigate to [netbird.io](https://netbird.io/) and click Get Started in the top-right corner. Or simply click [here](https://app.netbird.io/). +2. You’ll be redirected to the sign-in page, where NetBird uses your identity provider (IdP) for secure authentication. +It supports any OIDC-compliant provider, including social logins like Gmail and GitHub for personal use. +3. Follow the authentication steps for your chosen provider. If you have multi-factor authentication (MFA) enabled on your IdP account, +it will work automatically. -## Connect Your Laptop -NetBird comes with a Desktop UI application that can be found in the systray. If it hasn't automatically started, look -for `NetBird` in the application list, run it, and click `Connect`: +Upon your first login, you'll be greeted by a short onboarding survey. This helps us tailor your experience. -

- login-to-netbird -

+## Peer-to-Peer Network +One way of using NetBird is to create a peer-to-peer network, where you run the NetBird client on your devices to connect them directly. +![Onboarding Method Selection](/docs-static/img/getting-started/02_p2p-network.jpeg) - - Alternatively, you can run the `netbird up` command in the terminal. - +The onboarding process will now guide you to connect your first device, also known as a peer. +For this guide, we'll select Peer-to-Peer Network. If you’re selecting the Remote Network Access option, you can see that process [here](http://localhost:3000/how-to/getting-started#remote-network-access). -At this point a browser window pops up starting an interactive SSO login session that will register your laptop. -You will be prompt to sign up and confirm your device registration: +### Install Your First Peer -

- login-to-netbird -

+![Download NetBird](/docs-static/img/getting-started/03_download-netbird.jpeg) -The NetBird systray icon will turn orange indicating that your laptop was registered in the network: +1. On the "Let's get your first device online" screen, click the Install NetBird button. +2. An [installation modal](https://app.netbird.io/install) will appear. Select your operating system (e.g., macOS, Windows, Linux). For this example, we're installing it on a macOS machine. +3. Download the installer and run it. Follow the on-screen prompts to complete the installation. -

- login-to-netbird -

+### Connect Your First Peer +With the client installed, you now need to connect it to your network. -## Confirm the Laptop Registration +![Connect NetBird Client](/docs-static/img/getting-started/04_connect-client.jpeg) -After the registration is complete, proceed to the [NetBird dashboard](https://app.netbird.io) to confirm that your -laptop is in the network. You will see it in the `Peers` view: +1. After installation, find the NetBird icon in your system tray or menu bar. +2. Click the icon and select **Connect**. +3. This will open a new browser tab, prompting you to authorize the new device. Authenticate using the same IdP you used to sign up. +4. Once authorized, you will see a "Login successful" message. The onboarding UI will update to show that your first peer is connected, displaying its name and assigned NetBird IP address. -

- login-to-netbird +### Add a Second Peer (Headless Linux Server) +Next, let's add a second, headless peer, like a Linux server or a Raspberry Pi. For devices without a graphical interface, we use a [Setup Key](https://docs.netbird.io/how-to/register-machines-using-setup-keys). -

+![Install NetBird Headless](/docs-static/img/getting-started/05_headless-installed.jpeg) -## Install NetBird on the EC2 Node +1. In the web UI, the onboarding flow will now prompt you to "bring in your second device." Click the link that says Install with a setup key. +2. A pop-up will explain that a one-off setup key will be created, which you can also learn more about here. Click Continue.. +3. The onboarding UI will now provide two commands to run on your Linux server: -Let's install NetBird on the server. In the `Peers` view, click `Add Peer` and choose Linux: +* **Install NetBird**: A curl command to download and run the installation script. +* **Run NetBird**: A [netbird up command](https://docs.netbird.io/how-to/cli) that includes your unique setup key. -

- login-to-netbird -

+4. SSH into your Linux server and run the commands: -Copy the installation script and paste in the terminal of your EC2 node: +First, copy the curl command, paste it into your server's terminal, and press **Enter**. You may be prompted for your sudo password. ```bash curl -fsSL https://pkgs.netbird.io/install.sh | sh ``` -## Connect the EC2 Node +Next, copy the netbird up --setup-key ... command and paste it into the terminal. + +```bash +netbird up --setup-key +``` -In the previous steps you used the interactive SSO login flow to register a user device. This flow is a convenient way to -register devices with a user interface. However, for servers or containers that don't have a user interface, -you can use a [setup key](/how-to/register-machines-using-setup-keys) to register them. +After running the second command, the terminal will confirm Connected. Your headless device is now part of your NetBird network. -To create a setup key, go to the `Setup Keys` section, click `Create Setup Key`, name your key, and click `Create`: +![Headless install connected](/docs-static/img/getting-started/06_headless-install-connected.jpeg) -

- login-to-netbird -

+### Verify the Connection +The onboarding UI will now display both of your connected peers. The onboarding wizard provides a simple way to test that they can communicate directly. -

- login-to-netbird -

+![Testing ping on NetBird](/docs-static/img/getting-started/07_ping-test.jpeg) -Copy the newly created setup key and use it with the `netbird up --setup-key ` command to connect your EC2 node to the network. -Run this command in the terminal of your EC2 node: +1. Copy the provided ping command from the onboarding UI. This command uses the NetBird IP address of your second peer (the Ubuntu server). +2. Open a terminal on your first peer and paste the command. Replace the example below with the NetBird IP for your machine. ```bash -netbird up --setup-key PASTE_YOUR_KEY_HERE +ping 100.74.76.17 ``` -## Validate the Connection +3. You should see successful ping replies, confirming that the two devices are connected over the NetBird network. Click It works! - Continue in the onboarding UI. + +### Understanding Access Control +The final onboarding step introduces NetBird's powerful Access Control policies. + +![NetBird policy disabled](/docs-static/img/getting-started/08_policy-disabled-example.jpeg) +1. By default, a policy is active that allows connections between all your devices. This is why the ping command in the previous step worked. +2. The wizard demonstrates this by allowing you to toggle the policy. If you disable the "Default Policy," the ping between your devices will immediately fail with a "Request timeout" error. +3. Re-enabling the policy instantly restores the connection. This gives you a basic understanding of how you can control traffic within your network. You can learn much more about policies [here](/how-to/manage-network-access). +4. Click Continue to finish. + +![Policy Example](/docs-static/img/getting-started/09_policy-example.jpeg) +In the policy example above, we allowed _IT Admins_ port specific access to peers under the _AWS Servers_ group. Policies are a key building block to access in NetBird. You can learn more about the power of policies [here](https://docs.netbird.io/how-to/manage-network-access). + + + If you manage users and groups with your identity provider, you can provision and sync them with NetBird. Learn more [here](https://docs.netbird.io/how-to/idp-sync) including the supported platforms. + + +## Remote Network Access +The second way to use NetBird is for remote network access by running NetBird on a single machine within your private network. +This machine acts as a routing peer, routing traffic to internal resources that don't have the NetBird client installed. + +The onboarding process will now guide you to build our first network resource. +For this guide, we'll select Remote Network Access. + +![NetBird Onboarding](/docs-static/img/getting-started/10_remote-access-onboarding.jpeg) + +### Define Your Network Resource +Next, you'll define the private network you want your users to be able to access. +1. The onboarding UI will prompt you to "Add your first resource." There are a few options here, but the easiest way to get started is with full access to an entire Network. Select the Entire Subnet option. +2. Enter the CIDR range of your private network. For example, `10.0.0.0/32`. +3. Click Create Resource. A "Network" will be created in your dashboard to contain this resource and its access rules. -Return to the `Peers` view in the NetBird dashboard. You should see two machines in the list: +![NetBird Subnet Setup](/docs-static/img/getting-started/11_entire-subnet.jpeg) -

- login-to-netbird -

+### Add and Configure a Routing Peer +A [routing peer](https://docs.netbird.io/how-to/routing-traffic-to-private-networks) is a NetBird peer that lives inside your private network and acts as a gateway, forwarding traffic between your remote users and the internal resources. -To test the connection ping the machines from each other: +![Adding a routing peer](/docs-static/img/getting-started/12_add-routing-peer.jpeg) + +1. The dashboard will now prompt you to "Add a routing peer." First, click Generate Setup Key. This creates a one-time key used to enroll the gateway machine into your NetBird account. +2. Next, click Install Routing Peer. Select the operating system of your gateway machine (the video uses Linux). +3. The installation modal will provide two commands: a curl script to install the NetBird agent and a netbird up command that includes your setup key. +4. SSH into your gateway machine (which must be inside the 10.0.0.0/24 subnet) and run the commands: +5. SSH into your Linux server and run the commands: + +```bash +curl -fsSL https://pkgs.netbird.io/install.sh | sh +``` + +Next, copy the netbird up --setup-key ... command and paste it into the terminal. -On your laptop: ```bash -ping ec2-demo-node.netbird.cloud - ``` +netbird up --setup-key +``` + +After running the second command, the terminal will confirm Connected. Your headless device is now part of your NetBird network. + +### Connect a Client Device +Now, set up the device you will use to connect to your private network. +1. Back in the web UI, the wizard will prompt you to "Time to add your client device." Click Install NetBird. +2. Download and run the installer for your client machine's OS (e.g., macOS). +3. Once installed, find the NetBird icon in your system tray or menu bar, click it, and select Connect. +4. Authorize this new device in the browser tab that opens. + +### Test the Connection +With both the routing peer and your client device online, you can now test your connection to the private network. To properly test connectivity you should move the client device to a different network, for example, connecting the device using your phone's hotspot. + +![Switching Network](/docs-static/img/getting-started/13_switching-network.jpeg) + +1. Open a terminal on your client device and run the test command (e.g., `ping 10.0.0.100`). Due note, the IP you ping needs to be a device on the same network that the routing peer is installed on. +2. You should see successful replies, confirming that your client device can reach internal resources through the routing peer. +3. Click It works! - Continue in the UI. + +### Understanding Your Access Policy +The final step of the onboarding wizard explains the access rule that was automatically created for you. + +![Testing Worked](/docs-static/img/getting-started/14_it-worked.jpeg) + +1. A policy, named "Users to My Subnet," is enabled by default. This policy allows all authenticated users to access the resources within the subnet you define. +2. To demonstrate this, you can toggle this policy off. When disabled, the ping from your client device will begin to fail with a "Request timeout" error, showing that the connection is now blocked. +3. Re-enabling the policy will immediately restore access. +4. Click Continue to complete the setup. -On the EC2 node: - ```bash -ping mikhails-macbook-pro.netbird.cloud - ``` -Done! You now have a secure peer-to-peer WireGuard connection between two machines. +![Understanding Your Access Policy](/docs-static/img/getting-started/16_onboarding-policies.jpeg) -## Next Steps +Click Go to Dashboard to access the main NetBird admin panel. From here, you can: -Try creating a [network access policy](/how-to/manage-network-access) to control the traffic between the two machines. +* [Peers](https://docs.netbird.io/how-to/add-machines-to-your-network): View and manage all connected devices and their properties. +* [Setup Keys](https://docs.netbird.io/how-to/register-machines-using-setup-keys): Create and manage keys for adding new headless or ephemeral devices. +* [Access Control](https://docs.netbird.io/how-to/manage-network-access): Define granular firewall rules to control which peers can access what. +* [Team](https://docs.netbird.io/how-to/add-users-to-your-network): Manage users and create groups for easier policy management. +You are now ready to explore the full capabilities of NetBird. ## Support Us diff --git a/src/pages/how-to/installation/synology.mdx b/src/pages/how-to/installation/synology.mdx index 306ecc1d..55c49613 100644 --- a/src/pages/how-to/installation/synology.mdx +++ b/src/pages/how-to/installation/synology.mdx @@ -4,7 +4,7 @@ import {Note} from "@/components/mdx"; The NetBird client (agent) allows a peer to join a pre-existing NetBird deployment. If a NetBird deployment is not yet available, there are both managed and [self-hosted](https://docs.netbird.io/selfhosted/selfhosted-quickstart) options available. -## Installation Steps +## Installation Installing a NetBird Peer on Synology will require a few additional steps compared to a typical Linux install despite using the same single line command to get everything going. @@ -51,32 +51,7 @@ fi ``` 4. If you’d like to see the logs for this task, select the task you create and click on Settings. Check the box that says Save output results, select a save location, and click OK. Now, if you select the task and **Action > View Result**, you’ll see any error logs and status. -## Running NetBird with SSO Login -### Desktop UI Application -If you installed the Desktop UI client, you can launch it and click on Connect. -> It will open your browser, and you will be prompt for email and password. Follow the instructions. - -

- high-level-dia -

- -### CLI -Alternatively, you could use command line. Simply run - ```bash - netbird up - ``` -> It will open your browser, and you will be prompt for email and password. Follow the instructions. - -

- high-level-dia -

- -Check connection status: -```bash - netbird status -``` - -## Running NetBird with a Setup Key +## Running with a Setup Key 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. @@ -115,3 +90,45 @@ chmod +x install.sh ./install.sh --update netbird up ``` + +## Uninstallation +The most straightforward method is to use NetBird's built-in uninstall command. You'll need to connect to your Synology NAS via SSH to execute these commands. + +1. SSH into your Synology NAS: If you haven't already, enable SSH in your Synology's Control Panel under Terminal & SNMP. Then, use an SSH client to connect to your NAS. Switch to the root user: +```bash +sudo -i +``` +2. Run the uninstall command: Once connected, execute the following command: +```bash +netbird service uninstall +``` +3. Remove NetBird binary and configuration files. + +/etc/netbird: This directory contains the NetBird configuration files. +/usr/local/bin/netbird: The installation script placed the NetBird binary here. +/var/lib/netbird: This directory contains data related to the NetBird service. + +You can use the rm command to delete these files and directories: +```bash +rm -rf /etc/netbird +rm /usr/local/bin/netbird +rm -rf /var/lib/netbird +``` +**Important:** Be very careful when using the `rm -rf` command, as it will permanently delete the specified files and directories. Double-check the paths before executing the command. + +4. Remove the Peer from the NetBird UI. + +For a complete cleanup, you should also remove the Synology NAS as a peer from your NetBird account. Log in to the NetBird web UI. Navigate to the Peers section. Find the peer corresponding to your Synology NAS and delete it. + +## Video Walkthrough + +
+ +
+ +## Support Us + +- Star us on [GitHub](https://github.com/netbirdio/netbird) +- Follow us [on X](https://x.com/netbird) +- Join our [Slack Channel](/slack-url) +- NetBird release page on GitHub: [releases](https://github.com/netbirdio/netbird/releases/latest)