# heleosv2 — Multi-Tenant Web Hosting Platform A rebuild of a small web-hosting business on modern, isolation-first infrastructure: **container-per-customer + ZFS-dataset-per-customer**, with repeatable CLI-driven provisioning and clean per-customer backup/restore. > **Core philosophy — the customer is the boundary.** Isolation (containers), > backup (ZFS), and restore all line up on the same boundary, so a compromised > or broken site is contained and restorable without touching neighbours. ## Status Phase 0 — writing the design documents before any platform code. See [`docs/00-roadmap.md`](docs/00-roadmap.md). ## Repository layout This monorepo groups four logical areas whose contents have different lifecycles (see [`docs/07-repo-layout-gitops.md`](docs/07-repo-layout-gitops.md)): | Path | Purpose | |-------------------|---------------------------------------------------------------------| | `docs/` | Architecture, ADRs, runbooks, conventions. | | `platform-infra/` | Ansible + base compose for host, Traefik, MariaDB, Forgejo, monitoring. | | `site-templates/` | Dockerfiles for standard images + compose templates per site profile. | | `deployments/` | Rendered per-customer configs (GitOps state). **No plaintext secrets.** | | `control-panel/` | Provisioning CLI now; customer-facing panel later. | ## Key decisions - **Single bare-metal host**, Docker Compose per customer, no orchestrator. - **Shared MariaDB** (per-site DB + least-privilege user). - **Decoupled backups:** web files via ZFS snapshot/`send`; DB via automysqlbackup + rsync; logs via Loki. - **Lightweight DevOps:** Forgejo + built-in registry + Trivy. - **CLI-first** provisioning; web panel deferred until the platform is proven. The full approved architecture plan lives at [`docs/architecture-plan.md`](docs/architecture-plan.md).