This repository contains the commercial/enterprise documentation for NetBox Labs products. The documentation is automatically integrated with the netboxlabs-website-dochub repository to create a unified documentation experience at https://netboxlabs.com/docs.
This repository feeds into the main NetBox Labs documentation site, but content visibility is controlled by version branches. This allows us to:
- β Write documentation before features are released
- β Keep unreleased features hidden from customers
- β Maintain stable documentation for current customers
- β Seamlessly activate new versions when ready
graph LR
A[console-docs<br/>This Repo] --> B[dochub<br/>Integration Site]
B --> C[netboxlabs.com/docs<br/>Customer-Facing]
D[netbox repo<br/>Community Docs] --> B
Key Point: Only content from specific version branches appears on the live site. Development content stays hidden until activated.
git clone https://github.com/netboxlabs/console-docs
cd console-docs
# Using Python virtual environment (recommended)
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Or using global Python (if you have permission issues)
/Users/[username]/Library/Python/3.9/bin/mkdocs serve
mkdocs serve
# Visit: http://127.0.0.1:8000
We use branch-based versioning to control what customers see on the live documentation site:
Version | Status | Branch | Customer Visibility | Purpose |
---|---|---|---|---|
v1.9 | π’ LIVE | v1.9 |
β Visible | Current customer documentation |
v1.10 | π‘ Beta | v1.10 |
β Hidden | NetBox Enterprise + Assurance features |
v1.11 | π΄ Alpha | main |
β Hidden | NetBox Enterprise + Helm features |
git checkout v1.9
# Edit documentation for current features
git add docs/path/to/file.md
git commit -m "Fix SSL certificate installation steps"
git push origin v1.9
git tag v1.9.1 # Automatically deploys to live site
git push origin v1.9.1
Result: β Changes appear immediately on https://netboxlabs.com/docs
git checkout v1.10 # (when branch exists)
# Add documentation for Assurance features
git add docs/netbox-assurance/new-feature.md
git commit -m "Add documentation for network monitoring workflows"
git push origin v1.10
# DON'T tag yet - content stays hidden until v1.10 release
Result: β Content written but not visible to customers until activated
git checkout main
# Add documentation for Helm deployment features
git add docs/netbox-enterprise/helm-installation.md
git commit -m "Add Helm deployment guide"
git push origin main
# DON'T tag yet - content stays hidden until v1.11 release
Result: β Content written but not visible to customers until activated
sequenceDiagram
participant You as Documentation Writer
participant Repo as console-docs
participant GHA as GitHub Actions
participant Dochub as netboxlabs-website-dochub
participant Live as netboxlabs.com/docs
You->>Repo: Push to version branch
You->>Repo: Create version tag (v1.9.x)
Repo->>GHA: Trigger workflow on tag
GHA->>GHA: Deploy with Mike
GHA->>Dochub: Send webhook notification
Dochub->>Live: Update live documentation site
Key Points:
- π·οΈ Only tagged versions appear on live site
- π Untagged branches remain hidden
- β‘ Tagging triggers automatic deployment
- π Dochub combines with community docs
-
Activate the version (DevOps/Maintainers):
# Edit versions.json - move v1.10 from future_versions to versions # Update mkdocs.yml - add v1.10 to available versions git commit -m "Activate v1.10 for customer access" git push origin main
-
Deploy the version:
git checkout v1.10 git tag v1.10.0 git push origin v1.10.0
-
Result: β v1.10 documentation becomes visible to customers
Same process - move from future_versions
to versions
and tag the release.
Goal: Customer reports error in v1.9 installation guide
git checkout v1.9
# Fix the error in docs/
git commit -m "Fix typo in SSL certificate steps"
git push origin v1.9
git tag v1.9.2
git push origin v1.9.2
# β
Fix goes live immediately
Goal: Engineering added monitoring feature for v1.10
git checkout v1.10 # (or create branch if it doesn't exist)
# Add docs/netbox-assurance/monitoring-alerts.md
git commit -m "Add monitoring alerts documentation"
git push origin v1.10
# β Stays hidden until v1.10 is released
Goal: Engineering working on Helm charts for v1.11
git checkout main
# Add docs/netbox-enterprise/helm-charts.md
git commit -m "Add Helm charts configuration guide"
git push origin main
# β Stays hidden until v1.11 is released
Goal: Security update applies to all versions
# Update current version first
git checkout v1.9
# Make security update
git commit -m "Add security best practices"
git tag v1.9.3
git push origin v1.9 v1.9.3
# Apply to future versions
git checkout main
git cherry-pick <commit-hash>
git push origin main
git checkout v1.10
git cherry-pick <commit-hash>
git push origin v1.10
- β Always work on the correct version branch for your content
- β Tag v1.9 changes immediately (they go live instantly)
- β Test your changes locally before committing
- β Use clear commit messages describing what changed
- β Check if your update applies to multiple versions
- β Never tag v1.10 or v1.11 branches until release is approved
- β Don't merge development features into v1.9 branch
- β Don't assume all versions need the same content
- β Don't work directly on main branch for production fixes
Ask yourself: "Should customers see this immediately?"
- YES β Work on
v1.9
branch and tag when ready - NO, it's for Assurance features β Work on
v1.10
branch (don't tag) - NO, it's for Helm features β Work on
main
branch (don't tag)
- Check which NetBox Enterprise version the feature is targeting
- Confirm the correct branch to work on
- Understand if it's customer-ready or still in development
- Ask DevOps if unsure about version targeting
main # v1.11 alpha (Helm capabilities) - HIDDEN from customers
βββ v1.10 # v1.10 beta (Assurance capabilities) - HIDDEN from customers
βββ v1.9 # v1.9 current (Live customer docs) - VISIBLE to customers
βββ feature/* # Feature branches for new content
versions.json
- Controls which versions are visible to customersmkdocs.yml
- Local development configuration.github/workflows/version-deploy.yml
- Automated deployment system
Click to expand technical workflow information
The repository uses GitHub Actions to automatically deploy documentation when version tags are pushed:
# Tagging triggers automatic deployment
git tag v1.9.1
git push origin v1.9.1
# β Triggers GitHub Actions β Deploys to live site
Version visibility is controlled by versions.json
:
{
"versions": [
{
"version": "v1.9",
"title": "v1.9 (Current)",
"default": true,
"status": "current"
}
],
"future_versions": [
{
"version": "v1.10",
"title": "v1.10 (Beta) - NetBox Enterprise with Assurance",
"status": "beta"
},
{
"version": "v1.11",
"title": "v1.11 (Alpha) - NetBox Enterprise with Helm",
"status": "alpha"
}
]
}
To make a development version visible to customers:
- Move version from
future_versions
toversions
inversions.json
- Update
mkdocs.yml
available versions list - Update
LATEST_VERSION
in GitHub Actions workflow - Tag the version branch to deploy
The repository sends webhook notifications to netboxlabs-website-dochub
when versions are deployed, triggering updates to the unified documentation site.
If you see errors like this...
ERROR - Config value 'theme': Unrecognised theme name: 'material'. The available installed themes are: mkdocs, readthedocs ERROR - Config value 'markdown_extensions': Failed to load extension 'pymdownx.tabbed'. ModuleNotFoundError: No module named 'pymdownx'
Try uninstalling mkdocs
from your package manager, (e.g. brew uninstall mkdocs
) and just using the version installed by pip
. It seems that mkdocs
doesn't like it when you've installed it using different methods.