Skip to main content

Production hosting — repos and local layout

Tier: Public
Status: v1 — Phase 0 (forum + demo on separate VPSes)
Audience: maintainers and student volunteers — which repo to clone for which VM


Production status (2026-06-27 — post-flip)

All listed hosts are live in production. Brochure, docs, and /support are search-indexable since Stage 2 2c (2026-06-27). Forum and demo were live before the GitHub visibility flip.

HostURLOperator runbookNotes
Brochureumbraculum.devumbraculum-brochureCloudflare Worker — indexed
Support / sponsorshipumbraculum.dev/support/donation-channels.mdLiberapay + Buy Me a Coffee live (2d ✅ 2026-06-26) — indexed
Docsdocs.umbraculum.devpublic-alpha-cloudflare-pages-runbook.mdIndexed; Algolia DocSearch live (C5 ✅ 2026-06-27)
Community forumforum.umbraculum.devcommunity-forum-runbook.mdDiscourse — live 2026-06-08
Public demodemo.umbraculum.devdemo-host-runbook.mdBrewery reference vertical — live 2026-06-03

GitHub repositories — visibility at public alpha (2c)

RepoHostname / roleVisibility (2026-06-27)
umbraculum-devMonorepo — product + docs-sitePublic
umbraculum-toolsetCursor plugin packPublic
umbraculum-brochureumbraculum.dev — static marketing + announcement SoTPublic
umbraculum-hosting-common(dependency only)Public
umbraculum-hosting-forumforum.umbraculum.devPublic
umbraculum-hosting-demodemo.umbraculum.devPublic
umbraculum-integrator-samplenpm integrator smoke samplePublic

This repo (umbraculum-dev) holds application code, governance runbooks (forum §6–§7), flip-day, and product docs — not VPS shell scripts. Atomic flip procedure: public-alpha-flip-day-runbook.md §1.


Local laptop layout (maintainer convention)

Parent folder is not a git repository — only organizes sibling clones. Use environment variables (see DEVELOPMENT.md $REPO_ROOT convention) — do not commit machine-specific absolute paths.

Example layout:

$HOSTING_ROOT/
umbraculum-hosting-common/
umbraculum-hosting-forum/
umbraculum-hosting-demo/
umbraculum-brochure/ # static umbraculum.dev (public since 2026-06-27)
$REPO_ROOT/ # this repo (umbraculum-dev)
export HOSTING_ROOT="${HOSTING_ROOT:-$REPO_ROOT/../umbraculum-hosting}"
mkdir -p "$HOSTING_ROOT"
cd "$HOSTING_ROOT"
git clone git@github.com:umbraculum-dev/umbraculum-hosting-common.git
git clone git@github.com:umbraculum-dev/umbraculum-hosting-forum.git
git clone git@github.com:umbraculum-dev/umbraculum-hosting-demo.git

Forum and demo clones include common/ after git clone --recurse-submodules (or bin/pull on the VPS).

Fresh VPS (forum or demo)

On the server, git is not preinstalled. Maintainers run once as root:

  1. apt-get update && apt-get install -y git
  2. git clone --recurse-submodules the hosting-forum or hosting-demo repo to /opt/…
  3. bin/bootstrap (Docker CE, Compose plugin, UFW, fail2ban — see hosting-common README)

Host-specific steps (Discourse, demo compose) follow each repo’s docs/OPERATOR.md.


Volunteer routing

I maintain…CloneRead first
Forum VMhosting-forum (+ submodule)hosting-forum README.mddocs/OPERATOR.md
Demo VMhosting-demo + umbraculum-dev on same hosthosting-demo README.md; product steps in demo-host-runbook.md
Governance / pins / proposalsOften umbraculum-dev onlycommunity-forum-runbook.md §6–§7

VMOperator repoApplication / Discourse
Forum/opt/umbraculum-hosting-forum/var/discourse (upstream discourse_docker)
Demo/opt/umbraculum-hosting-demo/opt/umbraculum-dev (build + verify scripts)

Submodule discipline

hosting-forum and hosting-demo pin common/ to a commit in hosting-common. On the VPS use bin/pull (git pull --recurse-submodules). Fresh or recreated VPS: bin/bootstrap. Security-only re-run: bin/harden. When scripts change, see hosting-common SYNC.md.


Legacy path in this repo

infra/community-forum/ is deprecated — see stub README there. Canonical forum ops: umbraculum-hosting-forum.


TopicDocument
Forum governancecommunity-forum-runbook.md
Forum SSL ADRcommunity-forum-ssl-strategy.md
Demo productdemo-host-runbook.md
Community policyCORE-DEVELOPMENT-AND-COMMUNITY.md §4.6
Master planCursor plan production-hosting-repos