docs: update documentation for v9.7.2 — setup CLI, navigation, UI scale

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jason Staack
2026-03-21 16:19:21 -05:00
parent 958571c26a
commit ddb4ce2512
5 changed files with 81 additions and 39 deletions

View File

@@ -1,6 +1,6 @@
# The Other Dude # The Other Dude
**Self-hosted MikroTik fleet management for MSPs.** **Self-hosted MikroTik fleet management.**
> **Warning** > **Warning**
> This software is in active development and testing. It is **not yet ready for production use**. APIs, database schemas, and features may change without notice. Use at your own risk. > This software is in active development and testing. It is **not yet ready for production use**. APIs, database schemas, and features may change without notice. Use at your own risk.
@@ -81,6 +81,16 @@ The setup wizard handles everything interactively:
- Docker image builds - Docker image builds
- Stack startup and health checks - Stack startup and health checks
For CI/CD or headless servers, pass `--non-interactive` with the required flags:
```bash
python3 setup.py --non-interactive \
--postgres-password 'MyP@ss!' \
--domain tod.example.com \
--admin-email admin@example.com \
--no-telemetry --yes
```
On first launch, the web UI walks you through enrolling your Secret Key, adding your On first launch, the web UI walks you through enrolling your Secret Key, adding your
first organization, and onboarding your first device. first organization, and onboarding your first device.
@@ -111,6 +121,6 @@ For support: [support@theotherdude.net](mailto:support@theotherdude.net) — sup
## The Name ## The Name
"The Other Dude" -- because every MSP needs one. When the network is down at 2 AM "The Other Dude" -- because every network team needs one. When the network is down at 2 AM
and someone has to fix it, TOD is the other dude on the job. The Big Lebowski inspired, and someone has to fix it, TOD is the other dude on the job. The Big Lebowski inspired,
the rug really ties the room together. the rug really ties the room together.

View File

@@ -9,7 +9,7 @@ TOD uses Pydantic Settings for configuration. All values can be set via environm
| Variable | Default | Description | | Variable | Default | Description |
|----------|---------|-------------| |----------|---------|-------------|
| `APP_NAME` | `TOD - The Other Dude` | Application display name | | `APP_NAME` | `TOD - The Other Dude` | Application display name |
| `APP_VERSION` | `9.7.0` | Semantic version string (see VERSION file at project root) | | `APP_VERSION` | `9.7.2` | Semantic version string (see VERSION file at project root) |
| `ENVIRONMENT` | `dev` | Runtime environment: `dev`, `staging`, or `production` | | `ENVIRONMENT` | `dev` | Runtime environment: `dev`, `staging`, or `production` |
| `DEBUG` | `false` | Enable debug mode | | `DEBUG` | `false` | Enable debug mode |
| `CORS_ORIGINS` | `http://localhost:3000,http://localhost:5173,http://localhost:8080` | Comma-separated list of allowed CORS origins | | `CORS_ORIGINS` | `http://localhost:3000,http://localhost:5173,http://localhost:8080` | Comma-separated list of allowed CORS origins |

View File

@@ -25,6 +25,32 @@ TOD (The Other Dude) is a containerized fleet management platform for RouterOS d
## Quick Start ## Quick Start
### Automated Setup (Recommended)
The setup wizard handles all configuration interactively:
```bash
git clone https://github.com/staack/the-other-dude.git tod
cd tod
python3 setup.py
```
For CI/CD pipelines or headless servers, the wizard supports non-interactive mode:
```bash
python3 setup.py --non-interactive \
--postgres-password 'MyP@ss!' \
--domain tod.example.com \
--admin-email admin@example.com \
--no-telemetry --yes
```
Available flags: `--non-interactive`, `--postgres-password`, `--admin-email`, `--admin-password`, `--domain`, `--smtp-host`, `--smtp-port`, `--smtp-user`, `--smtp-password`, `--smtp-from`, `--smtp-tls`, `--no-smtp-tls`, `--proxy caddy|nginx|apache|haproxy|traefik|skip`, `--telemetry`, `--no-telemetry`, `--yes`/`-y`. The wizard also handles EOFError gracefully when stdin is not a TTY.
### Manual Setup
If you prefer manual configuration, follow the steps below.
### 1. Clone and Configure ### 1. Clone and Configure
```bash ```bash

View File

@@ -2,7 +2,7 @@
**Fleet management platform for MikroTik RouterOS.** **Fleet management platform for MikroTik RouterOS.**
Monitor routers, detect configuration drift, manage backups, and safely push configuration changes across hundreds of devices. Built for MSPs (Managed Service Providers) and network engineers managing MikroTik fleets. Monitor routers, detect configuration drift, manage backups, and safely push configuration changes across hundreds of devices. Built for network engineers and service providers managing MikroTik fleets.
The Other Dude is a self-hosted, multi-tenant platform (one installation serves multiple organizations, each with fully isolated data) that gives you centralized visibility, configuration management, real-time monitoring, and zero-knowledge security across your entire MikroTik fleet -- from a single pane of glass. The Other Dude is a self-hosted, multi-tenant platform (one installation serves multiple organizations, each with fully isolated data) that gives you centralized visibility, configuration management, real-time monitoring, and zero-knowledge security across your entire MikroTik fleet -- from a single pane of glass.
@@ -68,7 +68,7 @@ The Other Dude is a self-hosted, multi-tenant platform (one installation serves
- **API Keys** -- Generate API keys (prefixed `mktp_`) for automation and integrations. Keys are shown only once at creation. - **API Keys** -- Generate API keys (prefixed `mktp_`) for automation and integrations. Keys are shown only once at creation.
- **Firmware Management** -- Track RouterOS versions across your fleet, plan upgrades, and push firmware updates. - **Firmware Management** -- Track RouterOS versions across your fleet, plan upgrades, and push firmware updates.
- **Maintenance Windows** -- Schedule maintenance periods with automatic alert suppression. - **Maintenance Windows** -- Schedule maintenance periods with automatic alert suppression.
- **Setup Wizard** -- Guided 3-step onboarding for first-time deployment. - **Setup Wizard** -- Guided 3-step onboarding for first-time deployment. Supports `--non-interactive` mode for headless and CI/CD environments.
### UX ### UX
@@ -156,6 +156,18 @@ python3 setup.py
The setup wizard configures your database, generates encryption keys, initializes the secret management service (OpenBao), sets up your reverse proxy, builds the Docker images, and starts everything. No manual `.env` editing required. The setup wizard configures your database, generates encryption keys, initializes the secret management service (OpenBao), sets up your reverse proxy, builds the Docker images, and starts everything. No manual `.env` editing required.
For CI/CD pipelines or headless servers, the wizard supports non-interactive mode:
```bash
python3 setup.py --non-interactive \
--postgres-password 'MyP@ss!' \
--domain tod.example.com \
--admin-email admin@example.com \
--no-telemetry --yes
```
Available flags: `--non-interactive`, `--postgres-password`, `--admin-email`, `--admin-password`, `--domain`, `--smtp-host`, `--smtp-port`, `--smtp-user`, `--smtp-password`, `--smtp-from`, `--smtp-tls`, `--no-smtp-tls`, `--proxy caddy|nginx|apache|haproxy|traefik|skip`, `--telemetry`, `--no-telemetry`, `--yes`/`-y`. The wizard also handles EOFError gracefully when stdin is not a TTY.
Three environment profiles are available: Three environment profiles are available:
| Environment | Frontend | API | Notes | | Environment | Frontend | API | Notes |

View File

@@ -1,6 +1,6 @@
# TOD - The Other Dude: User Guide # TOD - The Other Dude: User Guide
Managed Service Provider (MSP) fleet management platform for MikroTik RouterOS devices. Fleet management platform for MikroTik RouterOS devices.
--- ---
@@ -28,51 +28,43 @@ You can always add more organizations and devices later from the sidebar.
## Navigation ## Navigation
TOD uses a collapsible sidebar with four sections. Press `[` to toggle the sidebar between expanded (240px) and collapsed (48px) views. On mobile, the sidebar opens as an overlay. TOD uses a collapsible sidebar organized into task-based sections. Press `[` to toggle the sidebar between expanded (240px) and collapsed (48px) views. On mobile, the sidebar opens as an overlay.
### Fleet The sidebar footer contains the theme toggle (dark/light), connection status indicator, logout button, and UI scale selector. For super_admin users, the tenant selector is in the sidebar header.
### Operate
| Item | Description | | Item | Description |
|------|-------------| |------|-------------|
| **Dashboard** | Overview of your fleet with device status cards, active alerts, metrics sparklines, and "APs Needing Attention" wireless health card. The landing page after login. | | **Overview** | Overview of your fleet with device status cards, active alerts, metrics sparklines, and "APs Needing Attention" wireless health card. The landing page after login. |
| **Devices** | Fleet table with search, sort, and filter. Click any device row to open its detail page. | | **Devices** | Fleet table with search, sort, and filter. Click any device row to open its detail page. |
| **Sites** | Tower and site management -- organize devices by physical location with sectors, health monitoring, wireless links, and site-scoped alerts. | | **Sites** | Tower and site management -- organize devices by physical location with sectors, health monitoring, wireless links, and site-scoped alerts. |
| **Wireless Links** | Fleet-wide view of all discovered AP-to-CPE wireless connections with signal, CCQ, TX/RX rates, and link state. | | **Alerts** | Live alert feed with filtering by severity (info, warning, critical) and acknowledgment actions. |
| **Wireless** | Fleet-wide view of all discovered AP-to-CPE wireless connections with signal, CCQ, TX/RX rates, and link state. |
| **Map** | Geographic fleet map with status-colored markers and automatic clustering. Devices with coordinates appear on the map; clusters reflect aggregate health (green = all online, red = all offline, amber = mixed). | | **Map** | Geographic fleet map with status-colored markers and automatic clustering. Devices with coordinates appear on the map; clusters reflect aggregate health (green = all online, red = all offline, amber = mixed). |
### Manage ### Act
| Item | Description | | Item | Description |
|------|-------------| |------|-------------|
| **Config Editor** | Browse and edit RouterOS configuration paths in real-time. Select a device from the header dropdown. | | **Config** | Browse and edit RouterOS configuration paths in real-time. Select a device from the header dropdown. |
| **Batch Config** | Apply configuration changes across multiple devices simultaneously using templates. |
| **Bulk Commands** | Execute RouterOS CLI commands across selected devices in bulk. |
| **Templates** | Create and manage reusable configuration templates. | | **Templates** | Create and manage reusable configuration templates. |
| **Firmware** | Check for RouterOS updates and schedule firmware upgrades across your fleet. | | **Firmware** | Check for RouterOS updates and schedule firmware upgrades across your fleet. |
| **Maintenance** | Schedule maintenance windows to suppress alerts during planned work. | | **Commands** | Execute RouterOS CLI commands across selected devices in bulk. |
| **VPN** | WireGuard VPN tunnel management -- create, deploy, and monitor tunnels between devices. |
### Low-Frequency (bottom of sidebar)
| Item | Description |
|------|-------------|
| **Organizations** | Create and manage tenants for multi-tenant operation. Each tenant's data is fully isolated -- users in one organization cannot see another's devices or data. |
| **Certificates** | Internal Certificate Authority management -- generate, deploy, and rotate TLS certificates for your devices. | | **Certificates** | Internal Certificate Authority management -- generate, deploy, and rotate TLS certificates for your devices. |
### Monitor | **VPN** | WireGuard VPN tunnel management -- create, deploy, and monitor tunnels between devices. |
| Item | Description |
|------|-------------|
| **Topology** | Interactive network map showing device connections and shared subnets, with automatic layout for readability. |
| **Alerts** | Live alert feed with filtering by severity (info, warning, critical) and acknowledgment actions. |
| **Alert Rules** | Define threshold-based alert rules on device metrics with configurable severity and notification channels. | | **Alert Rules** | Define threshold-based alert rules on device metrics with configurable severity and notification channels. |
| **Audit Trail** | Immutable, append-only log of all operations -- configuration changes, logins, user management, and admin actions. | | **Maintenance** | Schedule maintenance windows to suppress alerts during planned work. |
| **Transparency** | KMS access event dashboard showing encryption key usage across your organization (admin only). | | **Settings** | System configuration and profile settings. |
| **Audit Log** | Immutable, append-only log of all operations -- configuration changes, logins, user management, and admin actions. |
| **Reports** | Generate and export PDF reports: fleet summary, device health, compliance, and SLA. | | **Reports** | Generate and export PDF reports: fleet summary, device health, compliance, and SLA. |
### Admin
| Item | Description |
|------|-------------|
| **Users** | User management with role-based access control (RBAC). Assign roles: super_admin, admin, operator, viewer. |
| **Organizations** | Create and manage tenants for multi-tenant MSP operation. Each tenant's data is fully isolated — users in one organization cannot see another's devices or data. |
| **API Keys** | Generate and manage programmatic access tokens (prefixed `mktp_`) with operator-level permissions. |
| **Settings** | System configuration, theme toggle (dark/light), and profile settings. |
| **About** | Platform version, feature summary, and project information. |
--- ---
## Keyboard Shortcuts ## Keyboard Shortcuts
@@ -227,15 +219,17 @@ Device credentials (RouterOS username/password) are encrypted at rest and only d
--- ---
## Theme ## Theme & UI Scale
TOD supports dark and light modes: TOD supports dark and light modes:
- **Dark mode** (default) uses the Midnight Slate palette. - **Dark mode** (default) uses the Midnight Slate palette.
- **Light mode** provides a clean, high-contrast alternative. - **Light mode** provides a clean, high-contrast alternative.
- Toggle in **Settings** or let the portal follow your system preference. - Toggle using the theme button in the **sidebar footer**, or let the portal follow your system preference.
- The command palette and all UI components adapt to the active theme. - The command palette and all UI components adapt to the active theme.
A **UI scale selector** is available in the sidebar footer with three options: 100%, 110%, and 125%. This adjusts the base font size and layout density across the entire interface. Your preference is saved per browser.
--- ---
## Tower & Site Management ## Tower & Site Management
@@ -244,7 +238,7 @@ Sites represent physical locations in your network -- towers, rooftops, equipmen
### Creating a Site ### Creating a Site
1. Navigate to **Fleet > Sites** in the sidebar. 1. Navigate to **Sites** in the sidebar.
2. Click **New Site**. 2. Click **New Site**.
3. Fill in the site details: 3. Fill in the site details:
- **Name** (required) -- a descriptive label for the location (e.g., "North Ridge Tower"). - **Name** (required) -- a descriptive label for the location (e.g., "North Ridge Tower").
@@ -315,7 +309,7 @@ Link states transition automatically based on poll results and missed-poll count
There are two ways to view wireless links: There are two ways to view wireless links:
- **Fleet-wide**: Navigate to **Fleet > Wireless Links** in the sidebar. This shows all discovered links across your organization, filterable by state (active, degraded, down, stale). - **Fleet-wide**: Navigate to **Wireless** in the sidebar. This shows all discovered links across your organization, filterable by state (active, degraded, down, stale).
- **Per-site**: Open a site detail page and switch to the **Links** tab. This shows only the links associated with devices assigned to that site. - **Per-site**: Open a site detail page and switch to the **Links** tab. This shows only the links associated with devices assigned to that site.
Both views group links by AP device. Each CPE row shows signal strength (dBm), CCQ percentage, TX/RX data rates, link state, and time since last seen. Both views group links by AP device. Each CPE row shows signal strength (dBm), CCQ percentage, TX/RX data rates, link state, and time since last seen.
@@ -361,7 +355,7 @@ Alert events appear in the site's Alerts tab with timestamps, severity, the trig
The fleet map provides a geographic view of all devices that have coordinates assigned (either directly on the device or inherited from their site). The fleet map provides a geographic view of all devices that have coordinates assigned (either directly on the device or inherited from their site).
- Navigate to **Fleet > Map** in the sidebar. - Navigate to **Map** in the sidebar.
- Devices appear as color-coded markers: **green** for online, **red** for offline. - Devices appear as color-coded markers: **green** for online, **red** for offline.
- When devices are geographically close, they automatically cluster into numbered circles. Cluster color reflects aggregate health: green if all devices in the cluster are online, red if all are offline, and amber if mixed. - When devices are geographically close, they automatically cluster into numbered circles. Cluster color reflects aggregate health: green if all devices in the cluster are online, red if all are offline, and amber if mixed.
- Click a cluster to zoom in and see individual markers. Click a device marker to see its status summary and link to its detail page. - Click a cluster to zoom in and see individual markers. Click a device marker to see its status summary and link to its detail page.