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>
37 lines
1.9 KiB
Markdown
37 lines
1.9 KiB
Markdown
# VNC-CHANGES — VNCmail+ divergence log
|
|
|
|
VNCmail+ is a fork of [bulwarkmail/webmail](https://github.com/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
|
|
|
|
1. **Keep upstream files unmodified whenever possible.** Prefer env vars
|
|
(branding), the `vnc/overrides/` layer, and additive files over editing files
|
|
inside `app/`, `components/`, `lib/`, `stores/`.
|
|
2. **Every edit to an upstream file gets a one-line entry below** — path, what,
|
|
why. No silent edits.
|
|
3. **Branches:** `main` tracks upstream releases (kept clean); `dev` is the VNC
|
|
integration + Vercel deploy branch; `vnc/*` are feature branches.
|
|
4. **Syncing upstream:** `git fetch upstream && git merge upstream/main` onto
|
|
`main`, then merge `main` into `dev`. 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)_
|