v0.0.2 - spinning out n_signer
This commit is contained in:
@@ -7,12 +7,13 @@ survive individual work sessions.
|
||||
## 1. Big-picture goal
|
||||
|
||||
A single bootable/installable Debian Live ISO that, the moment it finishes
|
||||
booting, is running:
|
||||
booting, has all n-OS-tr services installed and configured, then presents a
|
||||
boot-time identity + service-selection TUI before login:
|
||||
|
||||
- [`fips`](../includes/fips) — Rust mesh-routing daemon, npub-addressed IPv6 overlay
|
||||
- [`c-relay`](../includes/c-relay) — C Nostr relay with event-based config and embedded admin
|
||||
- [`ginxsom`](../includes/ginxsom) — C Blossom (blob) server as FastCGI behind nginx
|
||||
- `nginx` — TLS front door, static blob serving, reverse proxy
|
||||
- [`fips`](../includes/fips) — Rust mesh-routing daemon, npub-addressed IPv6 overlay (optional start)
|
||||
- [`c-relay`](../includes/c-relay) — C Nostr relay with event-based config and embedded admin (optional start)
|
||||
- [`ginxsom`](../includes/ginxsom) — C Blossom (blob) server as FastCGI behind nginx (optional start)
|
||||
- `nginx` — TLS front door, static blob serving, reverse proxy (optional start)
|
||||
|
||||
No Docker. No `curl | bash` provisioning. All three apps run as native
|
||||
systemd services directly on the host.
|
||||
@@ -116,28 +117,46 @@ sequenceDiagram
|
||||
participant LB as live-boot / initramfs
|
||||
participant Sd as systemd PID 1
|
||||
participant Fb as n-os-tr-firstboot.service
|
||||
participant IA as nostr-id.service
|
||||
participant TUI as nostr-id-tui.service
|
||||
participant Fp as fips.service
|
||||
participant Cr as c-relay.service
|
||||
participant Gx as ginxsom.service
|
||||
participant Ng as nginx.service
|
||||
participant GT as getty@tty1.service
|
||||
|
||||
LB->>Sd: hand off
|
||||
Sd->>Fb: start oneshot (Before= the app units)
|
||||
Sd->>Fb: start oneshot (Before= identity + app units)
|
||||
alt First boot
|
||||
Fb->>Fb: mkdir /var/lib/n-os-tr<br/>generate ginxsom key<br/>generate fips key<br/>write EnvironmentFile<br/>touch .provisioned
|
||||
else Already provisioned
|
||||
Fb-->>Sd: exit 0 (ConditionPathExists trip)
|
||||
end
|
||||
Fb-->>Sd: done
|
||||
par
|
||||
Sd->>Fp: start (reads /etc/fips/fips.yaml)
|
||||
and
|
||||
Sd->>Cr: start (self-provisions admin key to /var/lib/c-relay/)
|
||||
and
|
||||
Sd->>Gx: start (spawn-fcgi, reads env file for privkey)
|
||||
and
|
||||
Sd->>Ng: start (serves /var/www/blobs, proxies to c-relay and ginxsom)
|
||||
|
||||
Sd->>IA: start identity-agent
|
||||
IA-->>Sd: active (control socket ready)
|
||||
|
||||
Sd->>TUI: start boot-time identity + services flow on tty1
|
||||
TUI->>IA: load_mnemonic / load_bunker / load_amnesia
|
||||
IA-->>TUI: identity loaded
|
||||
TUI->>Sd: start/stop selected services via systemctl
|
||||
|
||||
opt User enabled nginx
|
||||
Sd->>Ng: start
|
||||
end
|
||||
opt User enabled c-relay
|
||||
Sd->>Cr: start
|
||||
end
|
||||
opt User enabled ginxsom
|
||||
Sd->>Gx: start
|
||||
end
|
||||
opt User enabled fips
|
||||
Sd->>Fp: start
|
||||
end
|
||||
|
||||
TUI->>Sd: exit 0
|
||||
Sd->>GT: start (after TUI exits)
|
||||
```
|
||||
|
||||
## 5. Phase 0.A — Gitea artifact fetch
|
||||
|
||||
Reference in New Issue
Block a user