Docmost Joins the palmer-ai Stack — Second Bundle, First Wiki
palmer-ai's self-host stack grew its second bundle today: Docmost, the open-source Notion/Confluence alternative, deployed from upstream's compose in one pass and healthy in thirty seconds.
Why Care?
The pitch behind self-host-stack is that a client's whole tool suite — CRM, wiki, docs, email — can live in ONE Railway project they own, each tool a self-contained bundle with its own datastores. Until today that was a one-bundle story (Twenty CRM). Docmost makes it two: palmer-ai now has a wiki/documentation surface next to its CRM, same project, same conventions, zero new SaaS subscriptions.
It's also the first non-Twenty bundle to go through the per-client deploy discipline, which is the real test of whether the conventions generalize — they did, and the deploy took one pass.
What's New?
Docmost 0.95.0 live for palmer-ai at
https://docmost-production-58d2.up.railway.app— root redirects to the Create Workspace screen, verified by browser-drive. Workspace creation (the gate) is Michael/Jason's.Three services, three volumes in the existing palmer-ai project:
docmost(app + storage volume),docmost-postgres(postgres:18),docmost-redis(redis:8, AOF + noeviction) — upstream compose mirrored, image pinned, DATABASE_URL/REDIS_URL wired as reference variables.New runbook
docs/docmost/setup.md— client-agnostic procedure, written from this first execution, sibling to the Twenty runbook.Folder of record
client-stacks/palmer-ai/docmost/(gitignored): recovery.env, restore-runbook.md; stack.md roster and secretspec.toml updated.
Under the Hood
Docmost is architecturally simpler than Twenty on Railway, and the deltas are worth noting for the next bundle:
No S3 needed. Twenty forced bucket storage because its server and worker share a filesystem Railway can't give them. Docmost is one service, so upstream's local-volume default (
/app/data/storage) just works.Postgres 18 mounts at
/var/lib/postgresql— not the/datasuffix — because the pg18 image keeps PGDATA in a versioned subdir; no PGDATA override, no initdb complaints.The lossless-run delta paid off immediately: image services deploy at creation before variables exist, so the set-vars-then-redeploy sequence from that delta log was followed from the start. App healthy ~30 seconds after redeploy, no failed deployments at all this time.
What's Next
Gate: Michael/Jason create the palmer-ai workspace live.
SMTP wiring when invites matter (no MAIL_* configured — onboarding is currently invite-link-by-hand).
pg-dump-docmostbackup sibling once the Phase 3 pattern extends to second bundles.
Files changed
docs/docmost/setup.mdchangelog/2026-07-27_02.md