Living Document Notice
Published 2026-09-19. The evolving architecture and revisions for this dispatch live in the Stax Digital Garden.
The Embers Engineering Roadmap - Self-Hosted Media for Trusted Circles
Building a self-hosted media platform for families requires prioritizing data durability, simple access controls, and low administrative overhead. This engineering roadmap details the milestones for storage driver expansion, progressive web app client offline caching, and end-to-end encrypted album distribution.
Architectural Priorities
Embers focuses on private household sharing rather than social broadcasting. The core architecture prioritizes four non-negotiable operational invariants:
- Zero public bearer links
- Pluggable POSIX and S3 storage targets
- Zero biometric scanning or machine learning dependencies
- Minimal administrative overhead on modest server hardware
[Phase 1: Foundation] ===> [Phase 2: Distribution] ===> [Phase 3: Client Sync]
- SQLite + WAL - S3 / MinIO backend - PWA Offline Cache
- PIN & Password gates - WebAuthn Family Accounts - Background Sync API
- Sharp thumbnail worker - Range-request streaming - Selective Vault ReplicationRoadmap Milestones and Deliverables
| Milestone | Component | Target State | Invariant Maintained |
|---|---|---|---|
| M1 (Current) | Core Media Ingest | Sharp image workers, SQLite catalog, PIN gates | Zero bearer link exposure |
| M2 (Q4 2026) | Video Transcoding | Hardware-accelerated H.264 remuxing | Sub-50ms seek latency |
| M3 (Q1 2027) | PWA Client | Service worker offline caching for mobile albums | Read-only local storage |
| M4 (Q2 2027) | Federated Sync | P2P encrypted replication between trusted home nodes | Zero cloud intermediary |
Service Configuration Invariant
Verify running service parameters against the production specification:
# /etc/systemd/system/embers.service
[Unit]
Description=Embers Self-Hosted Media Server
After=network.target
[Service]
Type=simple
User=embers
Group=embers
WorkingDirectory=/var/lib/embers
ExecStart=/usr/bin/node /opt/embers/server/dist/index.js
Restart=always
RestartSec=5s
Environment=NODE_ENV=production
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target# Verify process state and memory footprint
$ systemctl status embers --no-pager
● embers.service - Embers Self-Hosted Media Server
Loaded: loaded (/etc/systemd/system/embers.service; enabled)
Active: active (running) since Wed 2026-09-10 08:00:00 UTC
Main PID: 1204 (node)
Memory: 42.4M
CPU: 1.218s- Directus Target: embers
- Garden Source Reference: MOC - The Digital Necropolis and Cold Decadal Storage, MOC - Bosun PKM Tools
- Garden Source Reference: the-embers-engineering-roadmap-self-hosted-media-for-trusted-circles, embers-roadmap, systemd-configuration, trusted-circles