RFDs/0002

Self-hosting documentation

State
discussion
Authors
Darwin D Wu
Discussion
chaba-dev/textbin#54
Labels
textbinprocesssoftwarestorage
Implemented
0%Checklist

Goal

Document the portable production image well enough that an operator can deploy, upgrade, back up, restore, and troubleshoot Textbin on their chosen container platform without requiring Phoenix knowledge.

Product boundary

Textbin publishes an OCI image and documents its runtime contract. The project does not maintain production Docker Compose, Kubernetes, Terraform, Helm, or cloud-provider deployment artifacts. Any snippets are illustrative and must not be represented as production-ready stacks.

Required documentation

The self-hosting guide covers:

  • supported image tags, architectures, digest pinning, and non-root UID/GID;

  • required and optional environment variables with secure example generation;

  • PostgreSQL version expectations, connection sizing, migrations, and health;

  • local and S3-compatible object storage, permissions, persistence, and connectivity verification;

  • temporary upload space sizing and lifecycle;

  • reverse-proxy and direct-TLS topologies, forwarded headers, and health checks;

  • first-user registration and platform-admin bootstrap;

  • rolling and single-node upgrades, rollback constraints, and migration order;

  • coordinated PostgreSQL and blob backup/restore order;

  • a restore drill with integrity checks rather than backup creation alone; and

  • common startup failures and diagnostics that do not expose secrets.

Examples

Examples use placeholders, least-privilege credentials, exact image versions, and explicit persistent mounts. They must not contain reusable passwords or suggest exposing PostgreSQL or object storage publicly.

A minimal example may show one application process and its dependencies, but it must state that availability, TLS, secret management, monitoring, and backup scheduling are operator responsibilities.

Implementation

Progress against this proposal is tracked in the RFD 2 implementation checklist.