Skip to content

Commit

Permalink
Add backup and upgrade guides for self-hosted deployments (#105)
Browse files Browse the repository at this point in the history
Co-authored-by: braginini <[email protected]>
  • Loading branch information
mlsmaycon and braginini authored Oct 16, 2023
1 parent a83b640 commit 53da0fe
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 9 deletions.
39 changes: 34 additions & 5 deletions src/pages/selfhosted/selfhosted-guide.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ This can be any email address. [Let's Encrypt](https://letsencrypt.org/) will cr
</Note>

<Note>
If you want to setup netbird with your own reverse-Proxy and without using the integrated letsencrypt, follow [this step here instead](#advanced-running-netbird-behind-an-existing-reverse-proxy).
If you want to setup NetBird with your own reverse-Proxy and without using the integrated letsencrypt, follow [this step here instead](#advanced-running-netbird-behind-an-existing-reverse-proxy).
</Note>

### Step 3: Configure Identity Provider (IDP)
Expand Down Expand Up @@ -137,15 +137,15 @@ docker-compose logs coturn
docker-compose logs dashboard
```

## Advanced: Running netbird behind an existing reverse-proxy
## Advanced: Running NetBird behind an existing reverse-proxy

If you want to run netbird behind your own reverse-proxy, some additional configuration-steps have to be taken to [Step 2](#step-2--prepare-configuration-files).
If you want to run NetBird behind your own reverse-proxy, some additional configuration-steps have to be taken to [Step 2](#step-2--prepare-configuration-files).

<Note>
Not all reverse-proxies are supported as netbird uses *gRPC* for various components.
Not all reverse-proxies are supported as NetBird uses *gRPC* for various components.
</Note>

### Configuration for netbird
### Configuration for NetBird

In `setup.env`:
- Set ```NETBIRD_DOMAIN``` to your domain, e.g. `demo.netbird.io`
Expand Down Expand Up @@ -182,6 +182,35 @@ Make sure your reverse-Proxy is setup to use the HTTP2-Protocol when forwarding.
Simply replace the file `docker-compose.yml.tmpl` with the chosen version.
</Note>

## Backup
To backup your NetBird installation, you need to copy the configuration files, and the Management service databases.

The configuration files are located in the folder where you ran the installation script. To backup, copy the files to a backup location:
```bash
cd netbird/infrastructure_files/
mkdir backup
cp docker-compose.yml turnserver.conf management.json backup/
```
To save the Management service databases, you need to stop the Management service and copy the files from the store directory using a docker compose command as follows:
```bash
docker compose stop management
docker compose cp -a management:/var/lib/netbird/ backup/
docker compose start management
```

## Upgrade
To upgrade NetBird to the latest version, you need to review the [release notes](https://github.com/netbirdio/netbird/releases) for any breaking changes and follow the upgrade steps below:
1. Run the backup steps described in the [backup](#backup-net-bird) section.
2. Pull the latest NetBird docker images:
```bash
cd netbird/infrastructure_files/
docker compose pull
```
3. Restart the NetBird containers with the new images:
```bash
docker compose up -d --force-recreate
```

## Get in touch

Feel free to ping us on [Slack](https://join.slack.com/t/netbirdio/shared_invite/zt-vrahf41g-ik1v7fV8du6t0RwxSrJ96A) if you have any questions
Expand Down
44 changes: 40 additions & 4 deletions src/pages/selfhosted/selfhosted-quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,39 @@ bash getting-started-with-zitadel.sh
</Note>
Once the script execution is complete, you can access your netbird instance via the URL `https://netbird.example.com` using the credentials displayed in your terminal.

### Creating users
### Add users
If you want to add additional users, you can access Zitadel's management console via the URL `https://netbird.example.com/ui/console` with the same credentials. Follow the [Users guide](https://zitadel.com/docs/guides/manage/console/users)
from Zitadel to add additional local users or integrate Zitadel with your existing identity provider by following the guide [Configure identity providers](https://zitadel.com/docs/guides/integrate/identity-providers).

### Remove NetBird
### Backup
To backup your NetBird installation, you need to copy the configuration files, the Management service databases, and Zitadel's database.

The configuration files are located in the folder where you ran the installation script. To backup, copy the files to a backup location:
```bash
mkdir backup
cp docker-compose.yml Caddyfile zitadel.env dashboard.env turnserver.conf management.json backup/
```
To save the Management service databases, you need to stop the Management service and copy the files from the store directory using a docker compose command as follows:
```bash
docker compose stop management
docker compose cp -a management:/var/lib/netbird/ backup/
docker compose start management
```
You can follow the [Cockroach backup guide](https://www.cockroachlabs.com/docs/stable/backup) to backup Zitadel's database, which holds user information.

### Upgrade
To upgrade NetBird to the latest version, you need to review the [release notes](https://github.com/netbirdio/netbird/releases) for any breaking changes and follow the upgrade steps below:
1. Run the backup steps described in the [backup](#backup) section.
2. Pull the latest NetBird docker images:
```bash
docker compose pull management dashboard signal
```
3. Restart the NetBird containers with the new images:
```bash
docker compose up -d --force-recreate management dashboard signal
```

### Remove
To remove the NetBird installation and all related data from your server, run these commands from the folder where you installed NetBird:
```bash
# remove all NetBird-related containers and volumes (data)
Expand All @@ -68,9 +96,17 @@ docker compose down --volumes
rm -f docker-compose.yml Caddyfile zitadel.env dashboard.env machinekey/zitadel-admin-sa.token turnserver.conf management.json
```

### Troubleshooting
### Troubleshoot

- I'm trying to register a user but I didn't receive a verification code. Whats is the problem?

The NetBird quickstart script generates a user name and a password for the administrator. This should be enough to login and manage your network.
If you want to register a new user and invite them via email, you need to configure a SMTP server in Zitadel. See [this guide](https://zitadel.com/docs/guides/manage/console/instance-settings#smtp) or details.
If you want to register a new user and invite them via email, you need to configure a SMTP server in Zitadel. See [this guide](https://zitadel.com/docs/guides/manage/console/instance-settings#smtp) or details.

## Get in touch

Feel free to ping us on [Slack](https://join.slack.com/t/netbirdio/shared_invite/zt-vrahf41g-ik1v7fV8du6t0RwxSrJ96A) if you have any questions

- NetBird managed version: [https://app.netbird.io](https://app.netbird.io)
- Make sure to [star us on GitHub](https://github.com/netbirdio/netbird)
- Follow us [on Twitter](https://twitter.com/netbird)

0 comments on commit 53da0fe

Please sign in to comment.