From 62a66fea48dfa2846258e17b172b609ebacf0467 Mon Sep 17 00:00:00 2001 From: braginini Date: Tue, 27 Jan 2026 11:52:13 +0100 Subject: [PATCH 1/3] Add a Maintenance section --- .../maintenance/update-available.png | Bin 0 -> 23436 bytes src/components/NavigationDocs.jsx | 21 ++++-- src/pages/selfhosted/maintenance/backup.mdx | 27 +++++++ src/pages/selfhosted/maintenance/remove.mdx | 17 +++++ src/pages/selfhosted/maintenance/upgrade.mdx | 66 ++++++++++++++++++ .../selfhosted/selfhosted-quickstart.mdx | 52 +------------- src/styles/tailwind.css | 7 ++ 7 files changed, 133 insertions(+), 57 deletions(-) create mode 100644 public/docs-static/img/selfhosted/maintenance/update-available.png create mode 100644 src/pages/selfhosted/maintenance/backup.mdx create mode 100644 src/pages/selfhosted/maintenance/remove.mdx create mode 100644 src/pages/selfhosted/maintenance/upgrade.mdx diff --git a/public/docs-static/img/selfhosted/maintenance/update-available.png b/public/docs-static/img/selfhosted/maintenance/update-available.png new file mode 100644 index 0000000000000000000000000000000000000000..69bbb3b1c018aabc04c1bfb1886ffe52463f2258 GIT binary patch literal 23436 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 Gz5WlOD!cgr literal 0 HcmV?d00001 diff --git a/src/components/NavigationDocs.jsx b/src/components/NavigationDocs.jsx index 15cab78c..eeaaaf9d 100644 --- a/src/components/NavigationDocs.jsx +++ b/src/components/NavigationDocs.jsx @@ -291,10 +291,23 @@ export const docsNavigation = [ title: 'SELF-HOST NETBIRD', links: [ { title: 'Quickstart Guide', href: '/selfhosted/selfhosted-quickstart' }, - { title: 'Configuration Files', href: '/selfhosted/configuration-files' }, + { + title: 'Maintenance', + isOpen: false, + links: [ + { title: 'Configuration Files', href: '/selfhosted/configuration-files' }, + { title: 'Backup', href: '/selfhosted/maintenance/backup' }, + { title: 'Upgrade', href: '/selfhosted/maintenance/upgrade' }, + { title: 'Remove', href: '/selfhosted/maintenance/remove' }, + { title: 'Reverse Proxy', href: '/selfhosted/reverse-proxy' }, + { title: 'Management SQLite Store', href: '/selfhosted/sqlite-store' }, + { title: 'Management Postgres Store', href: '/selfhosted/postgres-store' }, + { title: 'Activity Events Postgres Store', href: '/selfhosted/activity-postgres-store' }, + ] + }, { title: 'Authentication', - isOpen: true, + isOpen: false, links: [ { title: 'Authentication and IdPs', href: '/selfhosted/identity-providers' }, { title: 'Local User Management', href: '/selfhosted/identity-providers/local' }, @@ -323,11 +336,7 @@ export const docsNavigation = [ }, ] }, - { title: 'Reverse Proxy', href: '/selfhosted/reverse-proxy' }, { title: 'Advanced Guide', href: '/selfhosted/selfhosted-guide' }, - { title: 'Management SQLite Store', href: '/selfhosted/sqlite-store' }, - { title: 'Management Postgres Store', href: '/selfhosted/postgres-store' }, - { title: 'Activity Events Postgres Store', href: '/selfhosted/activity-postgres-store' }, { title: 'Management geolocation', href: '/selfhosted/geo-support' }, { title: 'Troubleshooting', href: '/selfhosted/troubleshooting' }, { diff --git a/src/pages/selfhosted/maintenance/backup.mdx b/src/pages/selfhosted/maintenance/backup.mdx new file mode 100644 index 00000000..537c9c1f --- /dev/null +++ b/src/pages/selfhosted/maintenance/backup.mdx @@ -0,0 +1,27 @@ +## Back Up Your Self-Hosted NetBird Installation + +To back up 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](/selfhosted/selfhosted-quickstart#installation-script). To back up, copy the files to a backup location: +```bash +mkdir backup +cp docker-compose.yml Caddyfile dashboard.env management.json relay.env backup/ +``` + + +For detailed information about each configuration file and its options, see the [Configuration Files Reference](/selfhosted/configuration-files). + +To save the Management service databases, stop the Management service and copy the files from the store directory: +```bash +docker compose stop management +docker compose cp -a management:/var/lib/netbird/ backup/ +docker compose start management +``` + +## Get In Touch + +Feel free to ping us on [Slack](/slack-url) 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 X](https://x.com/netbird) diff --git a/src/pages/selfhosted/maintenance/remove.mdx b/src/pages/selfhosted/maintenance/remove.mdx new file mode 100644 index 00000000..66b1dacf --- /dev/null +++ b/src/pages/selfhosted/maintenance/remove.mdx @@ -0,0 +1,17 @@ +## Remove Your Self-Hosted NetBird Installation + +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) +docker compose down --volumes +# remove downloaded and generated config files +rm -f docker-compose.yml Caddyfile dashboard.env management.json relay.env +``` + +## Get In Touch + +Feel free to ping us on [Slack](/slack-url) 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 X](https://x.com/netbird) diff --git a/src/pages/selfhosted/maintenance/upgrade.mdx b/src/pages/selfhosted/maintenance/upgrade.mdx new file mode 100644 index 00000000..1e8d57f3 --- /dev/null +++ b/src/pages/selfhosted/maintenance/upgrade.mdx @@ -0,0 +1,66 @@ +## Upgrade Your Self-Hosted NetBird Installation + +### Check for Updates + +The NetBird Dashboard displays an update indicator at the bottom of the left navigation menu when a new version is available: + +

+ update-available +

+ +You can also check the current version programmatically via the API (requires authentication): + +```bash +curl 'https://your-netbird-domain/api/instance/version' \ + -H 'accept: application/json' \ + -H 'authorization: Bearer ' +``` + +Example response: + +```json +{ + "dashboard_available_version": "2.28.0", + "management_available_version": "0.64.1", + "management_current_version": "0.64.0", + "management_update_available": true +} +``` + +### Check Release Notes + +Before upgrading, review the release notes for any breaking changes or migration steps: + +- **Dashboard**: [https://github.com/netbirdio/dashboard/releases](https://github.com/netbirdio/dashboard/releases) +- **Management, Signal, and Relay**: [https://github.com/netbirdio/netbird/releases](https://github.com/netbirdio/netbird/releases) + + +Management, Signal, and Relay are all part of the same repository and share the same version numbers. + + +### Upgrade Steps + +To upgrade NetBird to the latest version: + +1. Run the backup steps described in the [backup](#backup) section. +2. Review the release notes (see above) for any breaking changes. +3. Pull the latest NetBird docker images: + ```bash + docker compose pull management dashboard signal relay + ``` +4. Restart the NetBird containers with the new images: + ```bash + docker compose up -d --force-recreate management dashboard signal relay + ``` + + +For upgrades from older versions (pre-v0.26.0), see the [Legacy upgrade notes](#legacy-self-hosting-with-zitadel-idp). + + +## Get In Touch + +Feel free to ping us on [Slack](/slack-url) 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 X](https://x.com/netbird) diff --git a/src/pages/selfhosted/selfhosted-quickstart.mdx b/src/pages/selfhosted/selfhosted-quickstart.mdx index 649e99b3..7f1f58f7 100644 --- a/src/pages/selfhosted/selfhosted-quickstart.mdx +++ b/src/pages/selfhosted/selfhosted-quickstart.mdx @@ -130,56 +130,6 @@ NetBird includes built-in local user management powered by an embedded +## Maintenance + +Once your NetBird instance is running, refer to these guides for ongoing maintenance: + + + --- ## Troubleshoot