Skip to main content

Community forum secrets inventory

Tier: Public (labels only — no secret values in git)
Status: v1 — Phase 0
Audience: maintainers; future second admin after org keyring migration
Related: production-hosts.md, community-forum-runbook.md, community-forum-vps-security.md, donation-channels.md, hosting-forum templates/app.yml.template

[!CAUTION] Never commit vault exports, SMTP keys, SSH private keys, or Discourse admin passwords. The live containers/app.yml on the VPS contains secrets — sync structure to hosting-forum app.yml.template only with placeholders.


1. Inventory (labels only)

Secret / credentialStored inUsed forRotate when
Contabo panel loginPassword managerVPS billing, Auto Backup, Object StorageCredential leak; staff change
Contabo VPS IPv4Password manager + operator notesDNS A record, SSHIP change (rare)
VPS root SSH private keyPassword manager + maintainer ~/.sshSSH to VPSKey compromise; second maintainer onboarding
Discourse admin passwordPassword managerAdmin UIAfter first login; keyring migration
Brevo SMTP keyPassword manager./discourse-setup, DISCOURSE_SMTP_PASSWORDLeak; periodic rotation
Brevo account (Proton login)Password managerBrevo dashboardAccount compromise
Cloudflare accountPassword managerDNS, Email RoutingAccount compromise
Stripe (Liberapay / Buy Me a Coffee)Password manager (Proton)Donation dashboardsProvider requirement
Contabo Object Storage keysPassword managerDiscourse Admin → Backups (Phase 0+)When enabling layer-2 backups
forum@ Email RoutingCloudflare UI (no secret)Inbound admin mailN/A

2. Operator-only notes (optional)

Non-secret operational metadata (VPS service ID, order ID, renewal date) may live in a gitignored maintainer note, e.g. internal/working-notes/community-forum-operator-inventory-YYYY-MM-DD.md, or in the password manager secure note attached to the Contabo entry.

Do not put IPv4-only notes in public docs if you treat origin IP as sensitive before optional Cloudflare proxy.


3. Keyring migration (required before second maintainer)

Current state (Phase 0)

Credentials live in a solo maintainer LastPass vault. Acceptable for solo bootstrap and public-alpha flip.

Target state

Umbraculum org-managed password manager before a second maintainer receives VPS or Discourse admin access.

Evaluate (criteria)

CriterionNotes
MFA enforcementRequired for all org members
Shared collectionsforum-infra, donations, cloudflare
Emergency accessBreak-glass for org continuity
Audit logWho accessed which entry
EU data optionPrefer EU-friendly vendor if available
Cost at 2–5 seatsBitwarden Organizations, 1Password Business, Dashlane Business

Migration steps

  1. Create org vault and collections.
  2. Invite or import entries from solo vault (Contabo, Brevo, Cloudflare, SSH key backup, Discourse admin).
  3. Rotate Brevo SMTP key and Discourse admin password after migration.
  4. Revoke solo-vault copies of shared infra secrets.
  5. Update this doc §1 with vault product name only (not master password).
  6. Track deadline on ROADMAP.mdorg keyring before second admin.

4. What must not go in git

Never commitInstead
Live containers/app.yml from VPSRedacted app.yml.template
Brevo SMTP keyPlaceholder <BREVO_SMTP_KEY> in template
SSH private keysPassword manager + local ~/.ssh
Object Storage access/secret keysPassword manager; configure in Discourse Admin UI
LastPass / vault export CSVDelete after import

5. Sign-off

DateMaintainerSolo vault completeOrg migration deadline setNotes