Bulwark is stateful (local /app/data) — Vercel serverless (read-only fs) crashes it. Deploy as a container with 4 persistent volumes on microk8s, alongside bulwark.sandbox.vnc.de. Adds deploy/k8s/ (namespace, pvc, deployment, service, ingress, secret template, runbook) + rewrites setup doc off Vercel. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.9 KiB
VNC-CHANGES — VNCmail+ divergence log
VNCmail+ is a fork of bulwarkmail/webmail (AGPL-3.0). This file records every intentional divergence from upstream so that merging new upstream releases stays a triage exercise, not an archaeology dig.
Rules of the fork
- Keep upstream files unmodified whenever possible. Prefer env vars
(branding), the
vnc/overrides/layer, and additive files over editing files insideapp/,components/,lib/,stores/. - Every edit to an upstream file gets a one-line entry below — path, what, why. No silent edits.
- Branches:
maintracks upstream releases (kept clean);devis the VNC integration + Vercel deploy branch;vnc/*are feature branches. - Syncing upstream:
git fetch upstream && git merge upstream/mainontomain, then mergemainintodev. Resolve using this log.
Divergences
| Date | File / area | Change | Why |
|---|---|---|---|
| 2026-08-03 | vnc/ (new) |
Added VNC customization dir + this log | Fork bootstrap |
| 2026-08-03 | VNCMAIL-SETUP.md (new) |
Vercel deploy runbook | Deploy on Vercel as project "VNCmail+" |
| 2026-08-03 | deploy/k8s/ (new) | k8s manifests + runbook for microk8s deploy | Bulwark is stateful → runs as a container w/ persistent volumes, not Vercel serverless |
| 2026-08-03 | .gitignore | ignore deploy/k8s/secret.yaml | keep the real env secret out of git |
Note: Vercel was tried and abandoned on 2026-08-03. Bulwark writes to a local
data dir (/app/data/*); Vercel serverless has a read-only filesystem → crash
(ENOENT /var/task/data). VNCmail+ now deploys as a Docker image
(ghcr.io/brvncde-dotcom/vncmail-plus-*) on Kubernetes (microk8s) at
vncmail.sandbox.vnc.de, with 4 persistent volumes — see deploy/k8s/. A
microfrontends integration was also added and reverted the same day.
(append new rows as you diverge)