InfoKeeper

Chad's Tools OS / ServerAdmin

Chad's Tools OS is the application portal/platform. ServerAdmin is the single server administration console. Production servers should run CTOS, ServerAdmin, and production apps. InfoKeeper is dev/staging only. InfraKeeper functionality is being absorbed into ServerAdmin.

Decisions

CTOS platform role

Chad's Tools OS is the parent platform and application portal. apps.chadmgagnon.com is the portal/app launcher and should eventually own login, user preferences, and app access.

ServerAdmin role

ServerAdmin is the single server administration console. adm.chadmgagnon.com is for managing the server, infrastructure records, users, apps, services, logs, backups, deployments, security, themes, and managed nodes.

InfoKeeper environment policy

InfoKeeper is a dev/staging-only project memory tool. It should not be installed on production servers. Production servers should focus on CTOS, ServerAdmin, and production apps.

InfraKeeper migration decision

Standalone InfraKeeper should be absorbed into ServerAdmin over time. Infrastructure inventory, domains, DNS, ports, routes, services, and nodes belong in ServerAdmin.

Production vs development split

Development ServerAdmin is the workshop for building, testing, InfoKeeper, and release packaging. Production ServerAdmin is the locked-down console for monitoring, deployments, backups, security, and recovery.

Dev-to-production publishing model

Dev should build release packages. Production should accept uploaded release packages, validate them, back up, deploy, verify, and roll back if needed. Dev should not directly modify production.

Shared subdomain session decision

CTOS and ServerAdmin must share login across apps.chadmgagnon.com and adm.chadmgagnon.com using a shared .chadmgagnon.com session cookie.

Remote managed node architecture

Remote nodes behind firewalls, such as the ADS-B receiver, must phone home outbound to ServerAdmin. ServerAdmin queues approved commands; the node polls, executes only allowlisted commands locally, and reports results back.

ADS-B control safety policy

Do not expose raw shell command execution through ServerAdmin. ADS-B controls must use an approved-command queue and an allowlisted node agent.

Navigation design standard

ServerAdmin navigation should use clear conventional names and dropdown categories: Manage, Infrastructure, Operations, and System. Avoid vague one-word labels where possible.

Patch History

2.5.9a — Pre-Production State Cleanup installed

Cleaned Caddy basic_auth remnants, normalized managed app records, corrected DNS/domain status, and prepared baseline for 2.6.0.

2.5.5a — Time Display and Layout Fix installed

Converted UTC timestamps to Eastern time for display and fixed long timestamp overflow in ADS-B cards.

2.5.5 — ADS-B Node Dashboard Polish installed

Improved ADS-B node detail page with readable service groups, receiver metrics, last command summary, and hidden raw JSON.

2.5.4a — Operations Landing Pages installed

Fixed Logs and Backups landing pages under Operations and kept existing direct log/backup routes usable.

2.5.4 — Managed Node Command Queue Foundation installed

Added node command queue APIs/pages. ADS-B node polls outbound, executes approved commands locally, and reports results back.

2.5.3a — Heartbeat CSRF Fix installed

Exempted node heartbeat API from browser CSRF protection because it authenticates with X-Node-Token.

2.5.3 — Managed Node Heartbeat Foundation installed

Added /api/nodes/heartbeat, /admin/nodes, node_heartbeats table, and ADS-B heartbeat token support.

2.5.2b — ADS-B Outbound Node Model installed

Corrected ADS-B records to show the server is behind NAT/firewall and must use outbound heartbeat/polling.

2.5.2a — Operations Nav Cleanup installed

Fixed Deployments and Server Map placeholder pages and added infrastructure note deletion.

2.5.2 — Dropdown Navigation + Infrastructure Foundation installed

Converted ServerAdmin nav into dropdown groups and added /admin/infrastructure backed by infrastructure.db.

2.5.1 — Environment Profile Foundation installed

Added /admin/environment and environment_settings table for development/staging/production classification.

2.5.0 — Shared Subdomain Session Foundation installed

Configured shared .chadmgagnon.com session behavior so CTOS and ServerAdmin do not require separate logins.

2.4.9 — Portal/Admin Shell Separation installed

Separated CTOS portal shell from ServerAdmin shell. Portal shows minimal Preferences/Logout nav; ServerAdmin shows administration nav.

2.4.8 — Application Icons installed

Added CTOS, ServerAdmin, InfoKeeper, and Infrastructure SVG icons plus web manifests for Chrome desktop shortcuts.

2.4.7 — Portal Preferences Foundation installed

Added user preference foundation and moved preference controls conceptually to the CTOS portal rather than ServerAdmin admin nav.

2.4.6 — Professional Console Theme Refresh installed

Replaced casual styling with a more formal professional operations-console look across shared theme files.

2.4.5 — Shared Theme Switcher installed

Added shared theme switching using /srv/apps/shared/themes/current.css and ServerAdmin Appearance page.

2.4.0 — Shared UI Cleanup installed

Shared UI cleanup established cleaner cross-app styling and improved mobile behavior. Confirmed apps.chadmgagnon.com and adm.chadmgagnon.com routes loaded correctly after testing.

Next Steps

2.5.6 — Managed Node Command Safety Cleanup high open
Enter itechstuff.com transfer authorization code into IONOS high open
2.5.7 — ServerAdmin Operations Page Cleanup medium open
2.5.8 — Infrastructure Record Management high open
2.5.9 — Production/Development Guardrails high open
2.6.0 — Installer + Snapshot Foundation high open
Build production installer bundle for CTOS + ServerAdmin high open
Design dev-to-production release package format high open
Add production deployment upload/validate/deploy workflow medium open
Plan eventual CTOS standalone Flask app split medium open
Continue absorbing InfraKeeper functionality into ServerAdmin high open

Known Issues

CTOS is still running inside the ServerAdmin Flask app medium

This is acceptable for now but should eventually be split into /srv/apps/ctos once auth/session/app access is stable.

Standalone InfraKeeper still exists temporarily medium

InfraKeeper functionality is being migrated into ServerAdmin. Do not treat standalone InfraKeeper as the final architecture.

InfoKeeper should not be production dependency medium

InfoKeeper is useful for development memory but should be excluded from production CTOS installs.

Operations pages are functional but still early-stage low

Logs, Backups, Deployments, and Maintenance Scripts need production-grade polish.

Production installer not built yet high

Installer, verifier, backup, restore, and release tooling are planned for the 2.6.0 foundation.

ADS-B command queue needs safety polish medium

Need cancel queued command, prevent duplicate restart commands, command age display, clearer warnings, and safer status handling.

Sessions

2026-06-04 — 2.5.9a Pre-Production State Cleanup

Completed pre-production state cleanup before 2.6.0. Changes: - Removed stale commented Caddy basic_auth references so app auth is clearly the front door. - Normalized managed_apps records. - Corrected ntfy domain to ntfy.chadmgagnon.com. - Fixed local health URLs to http://127.0.0.1 ports. - Normalized .service names. - Corrected infrastructure domain statuses: - chadmgagnon.com = active IONOS development/platform domain. - itechstuff.com = pending transfer from GoDaddy to IONOS, potential production/platform domain. - coastlinemhp.com = external GoDaddy-managed domain. - Added DNS cleanup log entry. Next step: - 2.6.0 Snapshot / Backup / Verify Foundation for production deployment prep.

2026-06-04 — itechstuff.com domain transfer initiated

Domain transfer initiated in IONOS for itechstuff.com. Current state: - Domain: itechstuff.com - Current registrar/parking: GoDaddy - Target registrar: IONOS - GoDaddy contact information was updated. - Waiting for GoDaddy contact information update to complete so the transfer authorization code can be sent. - Next step: enter the transfer authorization code into IONOS to continue the transfer. Purpose: - Potential production/platform domain for the CTOS / ServerAdmin ecosystem or future managed app environment.

2026-06-04 — Bulk Project History Update Through 2.5.5a

Bulk updated InfoKeeper with the current CTOS / ServerAdmin project state. Current architecture: - CTOS is the platform/app portal. - ServerAdmin is the single server administration console. - InfoKeeper is dev/staging-only project memory and should not be installed on production. - InfraKeeper functionality is being absorbed into ServerAdmin. - Production and development servers both run ServerAdmin, but with different behavior. - Dev builds release packages; production accepts, validates, deploys, verifies, and can roll back. - ADS-B server is the first remote managed node behind a firewall using outbound heartbeat and command polling. Recent milestone: - Managed Node Command Queue Foundation v2.5.4 is working. - ADS-B Receiver sends outbound heartbeats to ServerAdmin. - ServerAdmin queues approved commands. - ADS-B node polls, executes allowlisted commands locally, and reports results back. - ADS-B dashboard was polished in v2.5.5 and time/layout fixed in v2.5.5a.