webd

The MixOS web service serves per-host static files, CMS SQLite APIs, embedded trusted Mix HTTP handlers, mail proxy routes and file shares. It registers as webd on the native Bus. The server profile uses /opt/mixos/bin/webd serve --db-path /var/lib/mixos/webd/web.db.

Node configuration is read through config's native directory rules. webd.vhost supplies hostnames, document roots, optional CMS databases, manual TLS identities or Let's Encrypt HTTP-01 ACME settings. Explicit listeners assign hosts to interfaces; the legacy default uses the node IP. Production issuance requires the accepted Subscriber Agreement URL.

The shipped vhosts/ Mix handlers and examples/mix-cms/ remain alongside the service. Configure document roots and credentials explicitly; example values are documentation, not deployment configuration. Session cookies, environment variables and data paths use MixOS names.

Build and test with cargo test --locked -p webd. webd --version emits MixOS build provenance. Units, sysusers and tmpfiles fragments are in services/webd/units/; they are not installed by building the service. The deployment identity is user webd, UID 502, unit webd.service.

State includes CMS and props SQLite/WAL data, session revocations and sealing keys, ACME accounts/certificates, and uploads. A deployment needs a single writer, counts/hashes and native HTTP/TLS/CMS acceptance checks, plus a rehearsed rollback preserving writes. This source transplant performs no deployment or data migration.

Source: services/webd.

Source gate limitation

The Rust suite passes, including the service's registry comparison. The repository-wide verb source gate currently treats embedded HTTP template fragments as standalone programs. It reports undefined prelude functions and request globals. With those symbols declared to the native linter, vhosts/apps/sw.mix:182,193,220,294 and vhosts/widgets/treeview.mix:200 still report arity errors: these templates intentionally rely on nil-padded optional trailing arguments. The source comments document that contract. The templates and gate are retained; the source entry gate has not passed. A context-aware lint integration is required before declaring the complete transplant entry bar satisfied.

No deployment, live ACME issuance or production-data rollback rehearsal has been performed by this source port.

This page as Markdown · This page describes the current main branch of MixOS.