Files
archy/docs/README.md
T
archipelagoandClaude Opus 5 599787690a docs: write the three missing app-developer docs (secrets, quadlet, lifecycle)
The open-source plan flagged three references as "the real gaps for app
developers", and the docs index named them as not-yet-written. Written now,
each from the code rather than stubbed:

- secrets.md — generated_secrets/secret_env: the two halves, the four kinds
  (hex16/hex32/base64/bcrypt) and which files each writes, the idempotent
  self-healing 0600 materialisation, and the rules a developer must not break
  (no hardcoded fallbacks, one canonical name, right encoding). From
  container/secrets.rs and the manifest schema.

- quadlet-compilation.md — manifest -> .container unit: the full directive
  mapping (including Secret= by reference, never value, and Pull=never), where
  units land (~/.config/containers/systemd, systemctl --user), the
  render/write/enable/disable lifecycle with write-if-changed, and how to
  inspect one. From container/quadlet.rs, scoped accurately to the companion-UI
  path it drives today.

- container-lifecycle.md — the level-triggered 30s reconciler: desired state
  from user-stopped/user-uninstalled/manifest set, the operations table, the
  self-heal-vs-respect-a-deliberate-stop rule, and migrations-never-destroy-data.
  From prod_orchestrator.rs and boot_reconciler.rs.

Index updated to link all three under App development and the "known gap" note
removed. Every link across the docs tree resolves.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-07 18:22:26 -04:00

76 lines
4.0 KiB
Markdown

# Archipelago documentation
Start here. This index groups the docs by what you're trying to do. The
authoritative behaviour is always the code in `core/`; where a doc and the code
disagree, the code wins and the doc is a bug.
## Getting started
- [User Walkthrough](user-walkthrough.md) — setting up and using a node, from hardware to daily use
- [Talking to your node](COMMANDS.md) — the conversational command surface
- [Seed Verification](SEED-VERIFICATION.md) — independently verify your 24-word backup
- [Troubleshooting](troubleshooting.md) — common problems and how to resolve them
- [Gamepad / Controller Navigation](GAMEPAD-NAV.md) — driving the UI from a controller
## Architecture
- [Architecture](architecture.md) — the system at a glance
- [Multi-Node Architecture](multi-node-architecture.md) — how nodes relate across a fleet
- [API Reference](api-reference.md) — the JSON-RPC surface
## App development
- [App Developer Guide](app-developer-guide.md) — build and package a containerized app
- [App Manifest Specification](app-manifest-spec.md) — the manifest schema, field by field
- [Manifest → Quadlet unit](quadlet-compilation.md) — how a manifest compiles to a systemd-owned container unit
- [Container lifecycle](container-lifecycle.md) — the reconciler state machine: install/adopt/start/stop/self-heal
- [App secrets](secrets.md) — declaring, generating and injecting per-install credentials
- [Registry-Distributed Manifests](registry-manifest-design.md) — how manifests reach nodes via the signed catalog
- [Decentralized Marketplace Protocol](marketplace-protocol.md) — publishing apps via an external registry
- [Bitcoin RPC Relay](bitcoin-rpc-relay.md) — letting an external wallet reach the node's Bitcoin RPC
- [Companion Pairing QR](companion-pairing-qr.md) — the pairing handoff contract
- [TV input inside iframe apps](tv-input-iframe-apps.md) — keyboard/gamepad routing into embedded apps
## Design docs
These record why a thing is built the way it is. They are design records, not
step-by-step guides, and some predate the current implementation.
- [Registry-Distributed Manifests](registry-manifest-design.md)
- [DHT Distribution](dht-distribution-design.md)
- [Bitcoin Multi-Version](bitcoin-multi-version-design.md)
- [Dual Ecash](dual-ecash-design.md)
- [Hardware Signer](hardware-signer-design.md)
- [Manifest Hooks](manifest-hooks-design.md)
- [Meshroller Integration](meshroller-integration-design.md)
- [Nostr Git Source Hosting](nostr-git-source-hosting.md)
- [Nostr Identity Import](nostr-identity-import-plan.md) · [Nostr Signer Login (research)](nostr-signer-login-research.md)
- [Streaming Ecash (phase 4)](phase4-streaming-ecash-plan.md)
- [App Packaging Migration](APP-PACKAGING-MIGRATION-PLAN.md)
## Decisions (ADRs)
- [ADR-001: Podman over Docker](adr/001-podman-over-docker.md)
- [ADR-002: DID Key Method for Node Identity](adr/002-did-key-method.md)
- [ADR-003: Nostr Relays for Discovery](adr/003-nostr-for-discovery.md)
- [ADR-004: Tor Hidden Services for Peer Communication](adr/004-tor-for-peer-communication.md)
- [ADR-005: ChaCha20-Poly1305 for Backup Encryption](adr/005-chacha20-backup-encryption.md)
- [ADR-006: Nostr Relays for Marketplace Discovery](adr/006-nostr-marketplace-discovery.md)
- [ADR-007: DID-Based Federation Trust](adr/007-did-federation-trust.md)
- [ADR-008: Dual Key Strategy (Ed25519 + Secp256k1)](adr/008-dual-key-strategy.md)
- [ADR-009: Manifest-Level Container Security](adr/009-manifest-container-security.md)
- [ADR-011: DWN Deprioritization](adr/011-dwn-deprioritization.md)
## Security
- [Security Policy](../SECURITY.md) — how to report a vulnerability
- [PSBT Signing Architecture](security/PSBT-SIGNING-ARCHITECTURE.md)
- [Bitcoin RPC Proxy Exposure](security/BITCOIN-RPC-PROXY-EXPOSURE.md)
- [Entropy Enforcement (KEY-05)](security/KEY-05-ENTROPY-ENFORCEMENT.md)
## Roadmap & history
- [Roadmap](ROADMAP.md) — where the project is going
- [archive/](archive/README.md) — superseded design and status documents, kept for provenance