Skip to content

Conversation

@TechHutTV
Copy link
Collaborator

@TechHutTV TechHutTV commented Nov 27, 2025

PR: Documentation Restructure - Migrate /how-to/ to Organized Directories

Summary

This PR reorganizes the NetBird documentation by migrating pages from the flat /how-to/ directory into a structured hierarchy under /manage/, /client/, and /help/. It also reorganizes image assets to mirror the page structure and updates all internal links, navigation, and redirects.


Pages Moved

Original Location New Location
/how-to/delete-account /manage/settings/delete-account
/how-to/multi-factor-authentication /manage/settings/multi-factor-authentication
/how-to/enforce-periodic-user-authentication /manage/settings/enforce-periodic-user-authentication
/how-to/plans-and-billing /manage/settings/plans-and-billing
/how-to/access-netbird-public-api /manage/public-api
/how-to/msp-portal /manage/for-partners/msp-portal
/how-to/acronis-integration /manage/for-partners/acronis-integration
/how-to/kubernetes-operator /manage/integrations/kubernetes
/how-to/intune-netbird-integration /manage/integrations/mdm-deployment/intune-netbird-integration
/how-to/jamf-pro-netbird-integration /manage/integrations/mdm-deployment/jamf-pro-netbird-integration
/how-to/kandji-netbird-integration /manage/integrations/mdm-deployment/kandji-netbird-integration
/how-to/enable-post-quantum-cryptography /manage/integrations/enable-post-quantum-cryptography
/how-to/profiles /client/profiles
/how-to/troubleshooting-client /help/troubleshooting-client
/how-to/report-bug-issues /help/report-bug-issues

Pages Deleted

  • src/pages/how-to/netflow.mdx (orphaned, unreferenced page)

Images Reorganized

Images moved from flat directories to mirror src/pages structure:

Original Location New Location
img/architecture/ img/about-netbird/
img/groups/ img/manage/access-control/groups/
img/overview/ (split) img/manage/access-control/ and img/manage/public-api/
img/ssh/ img/manage/peers/ssh/
img/troubleshooting/ img/selfhosted/troubleshooting/
img/troubleshooting-client/ img/help/troubleshooting-client/
img/integrations/identity-providers/ img/selfhosted/identity-providers/
img/how-to-guides/profiles/ img/client/profiles/
img/how-to-guides/mfa/ img/manage/settings/mfa/
img/how-to-guides/google-play-badge.png img/get-started/mobile/
img/how-to-guides/app-store-badge.svg img/get-started/mobile/

External Images Downloaded

Downloaded from Imgur and stored locally:

  • https://imgur.com/itP1poM.pngimg/manage/peers/access-infrastructure/ssh-webserver-netbird.png
  • https://imgur.com/wBX2k3r.pngimg/manage/team/idp-sync/okta-scim-provisioning.png

Redirects Added (next.config.mjs)

// Settings
{ source: '/how-to/delete-account', destination: '/manage/settings/delete-account', permanent: true },
{ source: '/how-to/multi-factor-authentication', destination: '/manage/settings/multi-factor-authentication', permanent: true },
{ source: '/how-to/enforce-periodic-user-authentication', destination: '/manage/settings/enforce-periodic-user-authentication', permanent: true },
{ source: '/how-to/plans-and-billing', destination: '/manage/settings/plans-and-billing', permanent: true },

// Public API
{ source: '/how-to/access-netbird-public-api', destination: '/manage/public-api', permanent: true },

// For Partners
{ source: '/how-to/msp-portal', destination: '/manage/for-partners/msp-portal', permanent: true },
{ source: '/how-to/acronis-integration', destination: '/manage/for-partners/acronis-integration', permanent: true },

// Integrations
{ source: '/how-to/kubernetes-operator', destination: '/manage/integrations/kubernetes', permanent: true },
{ source: '/how-to/intune-netbird-integration', destination: '/manage/integrations/mdm-deployment/intune-netbird-integration', permanent: true },
{ source: '/how-to/jamf-pro-netbird-integration', destination: '/manage/integrations/mdm-deployment/jamf-pro-netbird-integration', permanent: true },
{ source: '/how-to/kandji-netbird-integration', destination: '/manage/integrations/mdm-deployment/kandji-netbird-integration', permanent: true },
{ source: '/how-to/enable-post-quantum-cryptography', destination: '/manage/integrations/enable-post-quantum-cryptography', permanent: true },

// Client
{ source: '/how-to/profiles', destination: '/client/profiles', permanent: true },

// Help
{ source: '/how-to/troubleshooting-client', destination: '/help/troubleshooting-client', permanent: true },
{ source: '/how-to/report-bug-issues', destination: '/help/report-bug-issues', permanent: true },

Redirect Chain Fixes

Fixed redirect destinations that were pointing to old /how-to/ paths:

  • /docs/getting-started/installation/get-started/install (was /get-started#installation)
  • /docs/overview/acls/manage/access-control/manage-network-access
  • /docs/how-to-guides/activity-monitoring/manage/activity/traffic-events-logging

Navigation Updated (NavigationDocs.jsx)

Updated all navigation links from old /how-to/ paths to new locations across all sections.


Component Updated (How-To-Guides.jsx)

Updated quick links on the introduction page:

Old Path New Path
/how-to/getting-started /get-started
/how-to/add-users-to-your-network /manage/team/add-users-to-your-network
/how-to/routing-traffic-to-private-networks /manage/network-routes/routing-traffic-to-private-networks
/how-to/configuring-default-routes-for-internet-traffic /manage/network-routes/configuring-default-routes-for-internet-traffic
/how-to/monitor-system-and-network-activity /manage/activity/traffic-events-logging
/how-to/manage-dns-in-your-network /manage/dns

MDX Files Updated (Internal Links)

Fixed all cross-page references to use new paths:

  • src/pages/ipa/introduction.mdx - Updated API token links
  • src/pages/ipa/guides/authentication.mdx - Updated PAT links
  • src/pages/manage/control-center/index.mdx - Updated MSP portal link
  • src/pages/manage/networks/index.mdx - Updated troubleshooting links
  • src/pages/manage/team/add-users-to-your-network.mdx - Updated delete account link
  • src/pages/selfhosted/self-hosted-vs-cloud-netbird.mdx - Updated MSP portal link
  • src/pages/use-cases/setup-site-to-site-access.mdx - Updated network routes link
  • src/pages/use-cases/distributed-multi-cloud-ai-argocd-microk8s-vllm.mdx - Updated K8s operator links
  • src/pages/help/report-bug-issues.mdx - Updated troubleshooting link

Image Path Updates in MDX Files

Updated all image src attributes to reference new locations:

  • about-netbird/how-netbird-works.mdx - 5 images
  • manage/access-control/manage-network-access.mdx - 11 images
  • manage/public-api/index.mdx - 5 images
  • manage/peers/ssh.mdx - 2 images
  • manage/settings/delete-account.mdx - 2 images
  • manage/settings/multi-factor-authentication.mdx - 3 images
  • selfhosted/troubleshooting.mdx - 2 images
  • selfhosted/identity-providers.mdx - 82 images
  • client/profiles.mdx - 3 images
  • get-started/cli.mdx - 1 image
  • get-started/install/mobile.mdx - 2 images
  • help/troubleshooting-client.mdx - 3 images

Final Images Directory Structure

public/docs-static/img/
├── about-netbird/          # Architecture diagrams
├── client/                 # Client feature images
│   └── profiles/
├── get-started/            # Installation images
│   └── mobile/
├── help/                   # Help/support images
│   └── troubleshooting-client/
├── manage/                 # Management UI images
│   ├── access-control/
│   │   ├── groups/
│   │   ├── posture-checks/
│   │   └── endpoint-detection-and-response/
│   ├── activity/
│   ├── dns/
│   ├── for-partners/
│   ├── integrations/
│   │   ├── kubernetes/
│   │   └── mdm-deployment/
│   ├── network-routes/
│   ├── networks/
│   ├── peers/
│   │   └── ssh/
│   ├── public-api/
│   ├── settings/
│   │   ├── mfa/
│   │   └── plans-and-billing/
│   └── team/
├── selfhosted/             # Self-hosted setup images
│   ├── identity-providers/
│   └── troubleshooting/
└── use-cases/              # Use case diagrams

[1 tool called]

Final Page Structure (src/pages/)

src/pages/
├── introduction.mdx
│
├── about-netbird/
│   ├── browser-client-architecture.mdx
│   ├── faq.mdx
│   ├── how-netbird-works.mdx
│   ├── netbird-vs-traditional-vpn.mdx
│   ├── other.mdx
│   └── why-wireguard-with-netbird.mdx
│
├── get-started/
│   ├── index.mdx
│   ├── cli.mdx
│   └── install/
│       ├── index.mdx
│       ├── docker.mdx
│       ├── linux.mdx
│       ├── macos.mdx
│       ├── mobile.mdx
│       ├── opnsense.mdx
│       ├── pfsense.mdx
│       ├── synology.mdx
│       └── windows.mdx
│
├── client/                          # ✨ NEW
│   └── profiles.mdx                 # moved from /how-to/
│
├── manage/
│   ├── access-control/
│   │   ├── index.mdx
│   │   ├── manage-network-access.mdx
│   │   ├── endpoint-detection-and-response/
│   │   │   ├── index.mdx
│   │   │   ├── crowdstrike-edr.mdx
│   │   │   ├── intune-mdm.mdx
│   │   │   └── sentinelone-edr.mdx
│   │   └── posture-checks/
│   │       ├── index.mdx
│   │       └── connecting-from-the-office.mdx
│   │
│   ├── activity/
│   │   ├── index.mdx
│   │   ├── traffic-events-logging.mdx
│   │   └── event-streaming/
│   │       ├── index.mdx
│   │       ├── amazon-firehose.mdx
│   │       ├── amazon-s3.mdx
│   │       ├── datadog.mdx
│   │       ├── generic-http.mdx
│   │       └── sentinelone-data-lake.mdx
│   │
│   ├── control-center/
│   │   └── index.mdx
│   │
│   ├── dns/
│   │   └── index.mdx
│   │
│   ├── for-partners/                # ✨ NEW
│   │   ├── acronis-integration.mdx  # moved from /how-to/
│   │   └── msp-portal.mdx           # moved from /how-to/
│   │
│   ├── integrations/                # ✨ NEW
│   │   ├── enable-post-quantum-cryptography.mdx  # moved from /how-to/
│   │   ├── kubernetes/
│   │   │   └── index.mdx            # moved from /how-to/
│   │   └── mdm-deployment/
│   │       ├── intune-netbird-integration.mdx    # moved from /how-to/
│   │       ├── jamf-pro-netbird-integration.mdx  # moved from /how-to/
│   │       └── kandji-netbird-integration.mdx    # moved from /how-to/
│   │
│   ├── network-routes/
│   │   ├── configuring-default-routes-for-internet-traffic.mdx
│   │   ├── configuring-routes-with-access-control.mdx
│   │   ├── resolve-overlapping-routes.mdx
│   │   └── routing-traffic-to-private-networks.mdx
│   │
│   ├── networks/
│   │   ├── index.mdx
│   │   ├── accessing-entire-domains-within-networks.mdx
│   │   ├── accessing-restricted-domain-resources.mdx
│   │   ├── routing-traffic-to-multiple-resources.mdx
│   │   └── homelab/
│   │       └── access-home-network.mdx
│   │
│   ├── peers/
│   │   ├── add-machines-to-your-network.mdx
│   │   ├── approve-peers.mdx
│   │   ├── browser-client.mdx
│   │   ├── lazy-connection.mdx
│   │   ├── register-machines-using-setup-keys.mdx
│   │   ├── ssh.mdx
│   │   ├── access-infrastructure/
│   │   │   ├── access-internal-resources-from-autoscaled-environments.mdx
│   │   │   ├── peer-approval-for-remote-worker-access.mdx
│   │   │   ├── secure-remote-webserver-access.mdx
│   │   │   └── setup-keys-add-servers-to-network.mdx
│   │   └── site-to-site/
│   │       └── db-workload-migration.mdx
│   │
│   ├── public-api/                  # ✨ NEW
│   │   └── index.mdx                # moved from /how-to/access-netbird-public-api
│   │
│   ├── settings/                    # ✨ NEW
│   │   ├── delete-account.mdx                      # moved from /how-to/
│   │   ├── enforce-periodic-user-authentication.mdx # moved from /how-to/
│   │   ├── multi-factor-authentication.mdx         # moved from /how-to/
│   │   └── plans-and-billing.mdx                   # moved from /how-to/
│   │
│   └── team/
│       ├── add-users-to-your-network.mdx
│       ├── approve-users.mdx
│       ├── auto-offboard-users.mdx
│       ├── single-sign-on.mdx
│       └── idp-sync/
│           ├── index.mdx
│           ├── entra-id-scim-sync.mdx
│           ├── google-workspace-sync.mdx
│           ├── jumpcloud-sync.mdx
│           ├── keycloak-sync.mdx
│           ├── microsoft-entra-id-sync.mdx
│           └── okta-sync.mdx
│
├── help/                            # ✨ NEW
│   ├── report-bug-issues.mdx        # moved from /how-to/
│   └── troubleshooting-client.mdx   # moved from /how-to/
│
├── selfhosted/
│   ├── activity-mysql-store.mdx
│   ├── activity-postgres-store.mdx
│   ├── geo-support.mdx
│   ├── identity-providers.mdx
│   ├── postgres-store.mdx
│   ├── self-hosted-vs-cloud-netbird.mdx
│   ├── selfhosted-guide.mdx
│   ├── selfhosted-quickstart.mdx
│   ├── sqlite-store.mdx
│   └── troubleshooting.mdx
│
├── use-cases/
│   ├── client-on-mikrotik-router.mdx
│   ├── distributed-multi-cloud-ai-argocd-microk8s-vllm.mdx
│   ├── examples.mdx
│   ├── netbird-on-faas.mdx
│   ├── routing-peers-and-kubernetes.mdx
│   └── setup-site-to-site-access.mdx
│
└── ipa/                             # (API reference, unchanged)
    ├── introduction.mdx
    ├── guides/
    │   ├── authentication.mdx
    │   ├── errors.mdx
    │   └── quickstart.mdx
    └── resources/
        └── [14 resource files]

New Directories Created

Directory Purpose
/client/ Client-side features (profiles)
/help/ Support & troubleshooting
/manage/for-partners/ MSP and partner integrations
/manage/integrations/ Third-party integrations (K8s, MDM, PQC)
/manage/public-api/ API access documentation
/manage/settings/ Account settings (MFA, billing, auth)

Deleted

  • /how-to/ directory (all pages migrated, netflow.mdx removed as orphaned)

Validation

  • ✅ No broken image links (717 references verified)
  • ✅ No broken internal page links
  • ✅ All redirects point to valid destinations
  • ✅ Navigation links updated and valid
  • ✅ No remaining /how-to/ references in content

@TechHutTV TechHutTV marked this pull request as ready for review November 27, 2025 17:24
@braginini braginini self-requested a review November 27, 2025 17:24
@TechHutTV TechHutTV merged commit e45bb7c into main Nov 27, 2025
1 check passed
@TechHutTV TechHutTV deleted the final-doc-restructure-brandon branch November 27, 2025 17:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants