Skip to content

Restructuring Phase 3 - #492

Merged
braginini merged 8 commits into
mainfrom
docs-restructure-phase-3
Nov 24, 2025
Merged

Restructuring Phase 3#492
braginini merged 8 commits into
mainfrom
docs-restructure-phase-3

Conversation

@TechHutTV

@TechHutTV TechHutTV commented Nov 22, 2025

Copy link
Copy Markdown
Collaborator

Documentation Reorganization: Restructure Content into Logical /manage/ Hierarchy

Overview

This PR implements a comprehensive reorganization of the NetBird documentation site, restructuring content from a flat /how-to/ directory into a more intuitive, hierarchical /manage/ structure. This reorganization improves content discoverability, maintains logical grouping of related topics, and ensures all internal links, images, and navigation remain functional.

Motivation

The previous documentation structure had all content in a single /how-to/ directory, making it difficult to navigate and understand relationships between topics. This reorganization groups related content into logical categories under /manage/, creating a clearer information architecture that better reflects how users interact with NetBird's features.

Major Changes

1. Content Reorganization

New Directory Structure

Content has been reorganized into the following structure:

  • /manage/peers/ - Peer management and configuration

    • Root-level peer management guides
    • access-infrastructure/ - Infrastructure access scenarios
    • site-to-site/ - Site-to-site connectivity
  • /manage/networks/ - Network configuration and management

    • Network concepts and overview
    • Domain resource access
    • homelab/ - Home network scenarios
  • /manage/network-routes/ - Network routing configuration

    • Private network routing
    • Default routes and internet traffic
    • Route access control
    • Overlapping route resolution
  • /manage/team/ - Team and user management

    • User management
    • idp-sync/ - Identity provider synchronization (Okta, Microsoft Entra ID, Google Workspace, JumpCloud, Keycloak)
    • Single sign-on (SSO) configuration
  • /manage/activity/ - Activity monitoring and logging

    • Audit events logging (index)
    • Traffic events logging
    • event-streaming/ - Event streaming integrations (Datadog, Amazon S3, Amazon Firehose, SentinelOne Data Lake, Generic HTTP)
  • /manage/dns/ - DNS configuration

  • /manage/control-center/ - Control center overview

  • /use-cases/ - Use case examples and scenarios

Files Moved

Peers (11 files):

  • add-machines-to-your-network.mdx
  • approve-peers.mdx
  • browser-client.mdx
  • register-machines-using-setup-keys.mdx
  • ssh.mdx
  • lazy-connection.mdx
  • access-infrastructure/access-internal-resources-from-autoscaled-environments.mdx
  • access-infrastructure/peer-approval-for-remote-worker-access.mdx
  • access-infrastructure/secure-remote-webserver-access.mdx
  • access-infrastructure/setup-keys-add-servers-to-network.mdx
  • site-to-site/db-workload-migration.mdx

Networks (5 files):

  • index.mdx (networks concept)
  • accessing-entire-domains-within-networks.mdx
  • accessing-restricted-domain-resources.mdx
  • routing-traffic-to-multiple-resources.mdx
  • homelab/access-home-network.mdx

Network Routes (4 files):

  • routing-traffic-to-private-networks.mdx
  • configuring-default-routes-for-internet-traffic.mdx
  • configuring-routes-with-access-control.mdx
  • resolve-overlapping-routes.mdx

Team (10 files):

  • add-users-to-your-network.mdx
  • approve-users.mdx
  • auto-offboard-users.mdx
  • single-sign-on.mdx
  • idp-sync/index.mdx
  • idp-sync/microsoft-entra-id-sync.mdx
  • idp-sync/okta-sync.mdx
  • idp-sync/google-workspace-sync.mdx
  • idp-sync/jumpcloud-sync.mdx
  • idp-sync/keycloak-sync.mdx

Activity (8 files):

  • index.mdx (audit events logging)
  • traffic-events-logging.mdx
  • event-streaming/index.mdx
  • event-streaming/datadog.mdx (renamed from stream-activity-to-datadog.mdx)
  • event-streaming/amazon-s3.mdx (renamed from stream-activity-to-amazon-s3.mdx)
  • event-streaming/amazon-firehose.mdx (renamed from stream-activity-to-amazon-firehose.mdx)
  • event-streaming/sentinelone-data-lake.mdx (renamed from stream-activity-to-sentinelone-data-lake.mdx)
  • event-streaming/generic-http.mdx (renamed from stream-activity-to-generic-http.mdx)

Other:

  • control-center.mdxmanage/control-center/index.mdx
  • manage-dns-in-your-network.mdxmanage/dns/index.mdx
  • examples.mdxuse-cases/examples.mdx
  • routing-peers-and-kubernetes.mdxuse-cases/routing-peers-and-kubernetes.mdx

Old vs New URL Map

The move touched every public-facing URL under /how-to/. The most frequently referenced paths now resolve to the following destinations (redirects in next.config.mjs guarantee backward compatibility):

Peers

  • /how-to/add-machines-to-your-network/manage/peers/add-machines-to-your-network
  • /how-to/approve-peers/manage/peers/approve-peers
  • /how-to/browser-client/manage/peers/browser-client
  • /how-to/register-machines-using-setup-keys/manage/peers/register-machines-using-setup-keys
  • /how-to/ssh/manage/peers/ssh
  • /how-to/lazy-connection/manage/peers/lazy-connection
  • /how-to/access-internal-resources-from-autoscaled-environments/manage/peers/access-infrastructure/access-internal-resources-from-autoscaled-environments
  • /how-to/peer-approval-for-remote-worker-access/manage/peers/access-infrastructure/peer-approval-for-remote-worker-access
  • /how-to/secure-remote-webserver-access/manage/peers/access-infrastructure/secure-remote-webserver-access
  • /how-to/setup-keys-add-servers-to-network/manage/peers/access-infrastructure/setup-keys-add-servers-to-network
  • /how-to/db-workload-migration/manage/peers/site-to-site/db-workload-migration

Networks

  • /how-to/networks and /how-to/networks-concept/manage/networks
  • /how-to/accessing-entire-domains-within-networks/manage/networks/accessing-entire-domains-within-networks
  • /how-to/accessing-restricted-domain-resources/manage/networks/accessing-restricted-domain-resources
  • /how-to/routing-traffic-to-multiple-resources/manage/networks/routing-traffic-to-multiple-resources
  • /how-to/access-home-network/manage/networks/homelab/access-home-network

Network Routes

  • /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/configuring-routes-with-access-control/manage/network-routes/configuring-routes-with-access-control
  • /how-to/resolve-overlapping-routes/manage/network-routes/resolve-overlapping-routes

Control Center & DNS

  • /how-to/control-center/manage/control-center
  • /how-to/manage-dns-in-your-network and /docs/how-to-guides/nameservers/manage/dns

Team

  • /how-to/add-users-to-your-network/manage/team/add-users-to-your-network
  • /how-to/approve-users/manage/team/approve-users
  • /how-to/auto-offboard-users/manage/team/auto-offboard-users
  • /how-to/single-sign-on/manage/team/single-sign-on
  • /how-to/idp-sync/manage/team/idp-sync
  • /how-to/microsoft-entra-id-sync/manage/team/idp-sync/microsoft-entra-id-sync
  • /how-to/okta-sync/manage/team/idp-sync/okta-sync
  • /how-to/google-workspace-sync/manage/team/idp-sync/google-workspace-sync
  • /how-to/jumpcloud-sync/manage/team/idp-sync/jumpcloud-sync
  • /how-to/keycloak-sync/manage/team/idp-sync/keycloak-sync

Activity & Event Streaming

  • /how-to/audit-events-logging/manage/activity
  • /how-to/traffic-events-logging/manage/activity/traffic-events-logging
  • /how-to/activity-event-streaming/manage/activity/event-streaming
  • /how-to/stream-activity-to-datadog/manage/activity/event-streaming/datadog
  • /how-to/stream-activity-to-amazon-s3/manage/activity/event-streaming/amazon-s3
  • /how-to/stream-activity-to-amazon-firehose/manage/activity/event-streaming/amazon-firehose
  • /how-to/stream-activity-to-sentinelone-data-lake/manage/activity/event-streaming/sentinelone-data-lake
  • /how-to/stream-activity-to-generic-http/manage/activity/event-streaming/generic-http

Use Cases

  • /how-to/examples/use-cases/examples
  • /how-to/routing-peers-and-kubernetes/use-cases/routing-peers-and-kubernetes

2. Image Asset Reorganization

All images referenced by moved documentation files have been reorganized to match the new content structure:

  • Images moved to /public/docs-static/img/manage/peers/ with subdirectories matching content structure
  • Images moved to /public/docs-static/img/manage/networks/ with appropriate subdirectories
  • Images moved to /public/docs-static/img/manage/network-routes/ organized by topic
  • Images moved to /public/docs-static/img/manage/team/ with subdirectories for idp-sync and single-sign-on
  • Images moved to /public/docs-static/img/manage/activity/ with subdirectories for event-streaming integrations
  • Images moved to /public/docs-static/img/manage/dns/
  • Images moved to /public/docs-static/img/manage/control-center/
  • Images moved to /public/docs-static/img/use-cases/

Total images reorganized: 200+ image files moved and organized into logical directory structures

Old → New image bases

  • /public/docs-static/img/how-to-guides/<peer-topic>/…/public/docs-static/img/manage/peers/<peer-topic>/…
  • /public/docs-static/img/how-to-guides/networks*/…/public/docs-static/img/manage/networks/<sub-topic>/…
  • /public/docs-static/img/how-to-guides/network-routes*/…/public/docs-static/img/manage/network-routes/<sub-topic>/…
  • /public/docs-static/img/how-to-guides/<idp-sync|single-sign-on>/…/public/docs-static/img/manage/team/<sub-folder>/…
  • /public/docs-static/img/how-to-guides/activity*/…/public/docs-static/img/manage/activity/<event-streaming|traffic-events>/…
  • /public/docs-static/img/how-to-guides/control-center/…/public/docs-static/img/manage/control-center/…
  • /public/docs-static/img/how-to-guides/dns*/…/public/docs-static/img/manage/dns/…
  • /public/docs-static/img/examples/…/public/docs-static/img/use-cases/examples/…

During the move, each .mdx file’s <img src> attributes were updated to match the new directory, ensuring every asset has a single authoritative location that mirrors the documentation hierarchy.

3. Link Updates

Internal Links

  • Updated all internal markdown links (568 total) to reflect new paths
  • Fixed links across 115 .mdx files
  • Updated links in components (NavigationDocs.jsx, AnnouncementBannerProvider.jsx)
  • Fixed image references (357 total) to point to new locations

External Links

  • Updated external docs.netbird.io links to point to new paths
  • Maintained backward compatibility through redirects

4. Navigation Updates

Updated src/components/NavigationDocs.jsx to reflect the new structure:

  • All peer-related navigation links updated from /how-to/ to /manage/peers/
  • All network-related links updated to /manage/networks/
  • All team-related links updated to /manage/team/
  • All activity-related links updated to /manage/activity/
  • Event streaming sub-navigation updated to reflect renamed files

5. Redirect Configuration

Added 50+ permanent redirects in next.config.mjs to ensure backward compatibility:

  • Peer-related redirects (11 redirects)
  • Network-related redirects (5 redirects)
  • Network routes redirects (4 redirects)
  • Team-related redirects (10 redirects)
  • Activity-related redirects (8 redirects)
  • DNS redirects (3 redirects)
  • Control center redirects (1 redirect)
  • Use cases redirects (5 redirects)

All old /how-to/ paths now redirect to their new /manage/ locations, ensuring existing bookmarks and external links continue to work.

6. File Renaming

Several files were renamed for consistency:

  • Event streaming files: stream-activity-to-*.mdx*.mdx (e.g., stream-activity-to-datadog.mdxdatadog.mdx)
  • Index files: Several topics now have index.mdx files for cleaner URLs
  • Image directories renamed to match file names

Technical Details

Image Path Updates

  • All image references updated from old /docs-static/img/how-to-guides/ paths to new /docs-static/img/manage/ paths
  • Image directory structure mirrors content structure for maintainability
  • Fixed 3 broken image paths in enforce-periodic-user-authentication.mdx

Link Validation

  • Comprehensive scan of all 115 .mdx files
  • Verified all 357 image references point to existing files
  • Verified all 568 internal links are valid
  • Fixed broken links discovered during reorganization

File Structure Consistency

  • Consistent naming conventions across all moved files
  • Logical subdirectory organization
  • Index files for main topics provide clean URLs

Testing

  • ✅ All image paths verified and working
  • ✅ All internal links verified and functional
  • ✅ All redirects tested and working
  • ✅ Navigation structure verified
  • ✅ No broken links or missing images

Breaking Changes

None - All old URLs redirect to new locations, maintaining full backward compatibility.

Migration Notes

For developers:

  • Old /how-to/ paths will automatically redirect to new /manage/ paths
  • All internal links have been updated
  • Navigation structure has been updated
  • No manual intervention required

Files Changed

  • 115 .mdx files - Content files moved and links updated
  • 200+ image files - Reorganized into new directory structure
  • next.config.mjs - Added 50+ redirect rules
  • src/components/NavigationDocs.jsx - Updated navigation structure
  • src/components/announcement-banner/AnnouncementBannerProvider.jsx - Updated link
  • Multiple other .mdx files - Updated cross-references

Benefits

  1. Improved Discoverability: Related content is now grouped logically
  2. Better Information Architecture: Clear hierarchy reflects user workflows
  3. Maintainability: Easier to find and update related content
  4. Scalability: Structure supports future content additions
  5. User Experience: More intuitive navigation and organization
  6. Backward Compatibility: All old links continue to work via redirects

Next Steps

  • Complete final pages in /how-to
  • Scan for any final opportunities to improve SEO

Note: This is a comprehensive reorganization that touches many files. All changes have been verified, and the site maintains full backward compatibility through redirects.

@TechHutTV
TechHutTV marked this pull request as ready for review November 24, 2025 13:38
@braginini
braginini merged commit 0080ae9 into main Nov 24, 2025
1 check passed
@braginini
braginini deleted the docs-restructure-phase-3 branch November 24, 2025 17:25
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.

2 participants