Add transport status and doctor preflight

This commit is contained in:
jwinterm
2026-07-06 04:47:48 -04:00
parent 2e9307ba26
commit 27f3805c19
11 changed files with 999 additions and 2 deletions
+16
View File
@@ -91,6 +91,22 @@ Daemon adapters provide a common interface:
Adapters must be conservative. They do not modify non-AMPG config without showing a
plan first, and managed config lives under AMPG-owned state directories.
## Platform providers
Platform providers decide what daemon management means on the current host. AMPG detects
systemd Linux, user-space Linux, macOS user launchd, Termux-style Android, and unknown
platforms. A provider can allow managed daemons without allowing system config writes.
Operators can override detection for dry runs:
```sh
python3 -m ampg --config gateway.toml doctor --platform linux-systemd
python3 -m ampg --config gateway.toml doctor --platform android-termux
```
This keeps the same gateway config portable across a VPS, laptop, old phone, or manual
render-only environment while making daemon ownership decisions explicit.
## Interaction boundary
v1 is static-first, but the architecture reserves a path for interactive applications.
+26 -2
View File
@@ -31,13 +31,37 @@ For each enabled protocol, AMPG checks:
3. Common system services and ports.
4. Known config paths for supported daemons.
The result is shown in `ampg plan`.
The result is shown in `ampg status`. `ampg plan` shows rendered outputs and reviewable
config artifacts.
## Preflight commands
```sh
python3 -m ampg --config gateway.toml status
python3 -m ampg --config gateway.toml doctor
python3 -m ampg --config gateway.toml doctor --platform android-termux
```
`status` prints one row per enabled protocol with the selected platform provider,
adapter, installed/running daemon probe, action, and policy result.
`doctor` checks source paths, renderer support, route exposure, output readiness, and
daemon policy feasibility. It exits nonzero only for errors; missing build output is a
warning so operators can run it before the first build.
Platform providers describe how AMPG may supervise managed daemons:
- `linux-systemd`: system service management after approval.
- `linux-user`: user-space foreground or user service management.
- `macos-launchd`: user LaunchAgents or foreground processes.
- `android-termux`: Termux-style user-space daemons for mobile/server experiments.
- `unknown`: render and plan only; daemon management is disabled.
## Adapter notes
### Clearnet
Default daemon: Caddy.
Default daemon: nginx.
AMPG should usually adopt clearnet ingress instead of managing it. Existing TLS,
firewall, and reverse proxy rules are operator-owned. Managed clearnet is useful for
+11
View File
@@ -54,3 +54,14 @@ Notes:
Notes:
- IPFS output is static web content for a local gateway or later pinning.
- IPFS is content-addressed distribution, not an anonymity layer.
## rnsd
- Protocols: reticulum
- Default policy: `auto`
- Generated artifacts: Reticulum page-service plan
Notes:
- Reticulum output is planned as small page-service content.
- Reticulum is resilient/private routing, not an anonymity layer.
- Physical interfaces may require explicit operator setup.