# Rizoma WebPanel

Mesh-native hosting control plane for the Rizoma ecosystem. Single Go binary
serving an embedded Svelte 5 SPA plus SMTP/MX/IMAP mail, Docker, process
supervisor, FTP, files, databases, cron, backups, telemetry, and mesh-ingress
publishing. Works strictly with [Rizoma Mesh](../rizoma%20mesh) — public traffic
enters through mesh ingress, the panel binds the mesh interface.

## Quick start

```bash
# One-line install from the repo server (stable channel):
curl -fsSL https://repo.rizomarl.com/webpanel/install.sh | sudo bash

# Or build from source:
make deps && make build
sudo ./webpanel            # first boot prints the admin password
./webpanel --version
```

See [INSTALL.md](./INSTALL.md) for manual install, update, and rollback.

## Layout

```
cmd/webpanel/        entrypoint (--version, config, TLS, server start)
internal/server/     HTTP API (stdlib mux, 140+ routes)
internal/{auth,store,config}   sessions/RBAC, SQLite, env config
internal/{smtp,mx,imap,maildir,outbound,dkim,spf,dmarc,dns}  mail pipeline
internal/{docker,stack,database,process}   workloads
internal/{ftp,files,cron,backup}           services
internal/{gateway,meshingress,objectstorage,telemetry,metrics}  mesh + ops
web/src/             Svelte 5 SPA (embedded via web/dist)
packaging/           systemd unit, version.json, release/publish/install scripts
docs/                operations guides, architecture, API reference
```

## API

* `GET /api/v1/health` — `{status, version, uptime, subsystems}` (no auth)
* `GET /healthz`, `GET /readyz` — probes (no auth)
* Full reference: `docs/technical_documentation/api/rest_api.md`

## Configuration

Everything via `RIZOMA_WEBPANEL_*` env or `/etc/rizoma/webpanel.env`; the
Settings API (`GET/PUT /api/v1/settings`) exposes the operator-safe subset and
persists to the config file. Reference: `docs/technical_documentation/configuration/environment.md`.

## Versioning & releases

* Canonical version: `packaging/version.json` (same schema as Rizoma Mesh).
* `CHANGELOG.md` is prepend-only — never rewrite history.
* Release flow: `packaging/scripts/release.sh <version> stable` →
  `packaging/scripts/publish.sh stable repo.rizomarl.com` → verify
  `https://repo.rizomarl.com/webpanel/version.json`.
* Process: `daily/BUILD-GUIDE/BUILD-GUIDE.md`.
