
Homelab Server Network Diagram & Documentation for Mapping Function Topology
Homelab Server Network Diagram & Documentation for Mapping Function Topology
CTRoadmap is a local-first infrastructure Diagram & Documentation tool for your HOMELAB via nodes, services, storage, scripts, configs, URLs, and operational relationships. It is a Docker-served beta application backed by the human-readable data/atlas.json file.
CTRoadmap is documentation-only software. It does not execute commands, open SSH sessions, issue Docker calls, or run live checks against your infrastructure.
The recommended beta release path is the published Docker image:
ghcr.io/noobcity99/ctroadmap:betaBeta users do not need to clone this repository or install Python, Node, or npm.
Requirements:
Option A, safer:
curl -fsSL https://raw.githubusercontent.com/NoobCity99/CTRoadmap/main/CTR_install.sh -o CTR_install.sh
chmod +x CTR_install.sh
./CTR_install.shOption B, one-liner:
curl -fsSL https://raw.githubusercontent.com/NoobCity99/CTRoadmap/main/CTR_install.sh | bashCustom install directory:
CTR_INSTALL_DIR=/opt/ctroadmap-beta ./CTR_install.shManagement commands:
cd ~/ctroadmap-beta
docker compose logs -f
docker compose down
docker compose up -d
docker compose pull && docker compose up -dManual beta update:
cd ~/ctroadmap-beta && docker compose pull && docker compose up -dUninstall:
curl -fsSL https://raw.githubusercontent.com/NoobCity99/CTRoadmap/main/CTR_uninstall.sh -o CTR_uninstall.sh
chmod +x CTR_uninstall.sh
./CTR_uninstall.shPersistent data lives in:
~/ctroadmap-beta/data
~/ctroadmap-beta/exportsdocker compose up -dOpen:
http://localhost:8088Stop:
docker compose downLogs:
docker compose logs -fUpdate Advisory is informational only. CTRoadmap does not auto-update, run Docker commands, mount the Docker socket, or execute system-management actions.
CTRoadmap stores its persistent state in bind-mounted directories so that replacing or updating the container does not replace your atlas.
data/atlas.json is the canonical atlas containing tiles, relationships, families, stacks, and saved Layers.data/history/ contains the persistent rolling Undo/Redo manifest and snapshots for up to five prior Atlas changes.data/assets/icons/ contains icons uploaded through the Icon Library.data/auth.json contains local passcode configuration and session state when Local Access Passcode is enabled.data/update_state.json stores update-advisory settings and cached advisory state.exports/ contains generated Markdown, YAML, PDF, PNG and Mermaid exportsBack up the complete persistent state rather than only the atlas file:
cp -a data data.backup
cp -a exports exports.backupKeep backups outside the installation directory before uninstalling or making destructive host changes.
The toolbar provides persistent Undo and Redo for canonical Atlas edits. History survives browser and container restarts, while data/atlas.json remains a normal standalone Atlas that can be copied or imported independently.
Local Access Passcode provides optional authentication for the CTRoadmap web interface. It is disabled until a passcode is configured in Settings.
From Settings, an administrator can create or change the passcode, sign out the current browser, sign out all sessions, or remove passcode protection. This is application-level access control for a local deployment; continue to use appropriate network and host security for any exposed installation.
Swimlane data is stored inside the normal Flow tile in data/atlas.json using the swimlane.v1 format. Workspace edits use the existing atlas autosave path; CTRoadmap does not execute the documented process.
Layers are persisted in the atlas schema as views for compatibility.
exports/.PNG generation is client-side and does not write an image to exports/, change data/atlas.json, or require a PNG API endpoint. Very large diagrams are subject to browser image-size safety limits.
TWO APP MODES to choose from, CLASSIC & ZIMA.
USE CANVAS EDITOR in settings to chose the theme & background you want, previewing it before confirming.
Assign built-in or uploaded icons to tiles through the Icon Library.
Adjust canvas and connector presentation without changing atlas content.
Flow steps, check commands, and expected results are documentation only. CTRoadmap does not execute them.
Ctrl/Cmd+S Save
Ctrl/Cmd+D Duplicate selected tile
Delete/Backspace Delete selected tile or relationship
/ Focus search
Escape Clear selectionGET /api/health
GET /api/app/version
GET /api/app/update
PUT /api/app/update/settings
GET /api/auth/status
POST /api/auth/setup
POST /api/auth/login
POST /api/auth/logout
POST /api/auth/change-passcode
POST /api/auth/remove-passcode
POST /api/auth/logout-all
GET /api/atlas
PUT /api/atlas
POST /api/atlas/preview
POST /api/assets/icons
GET /api/assets/icons
GET /api/assets/icons/{filename}
DELETE /api/assets/icons/{filename}
POST /api/export/{format}
GET /api/export/{format}/download
GET /api/debug/log
POST /api/debug/log/clearSupported server export formats are markdown, yaml, and mermaid. PNG canvas export is generated client-side and does not use an API endpoint.
Planning decisions, questions and answers, bugs, and fixes are tracked in PROJECT_LOG.md.
CTRoadmap is licensed under the Apache License 2.0. See LICENSE.
No open issues yet, or sync has not completed.