olsitec-foundation platform repo
Find a file
Andreas Niemann f9aecf1b18
All checks were successful
CI / preflight (push) Successful in 7s
CI / typecheck (push) Successful in 17s
ecosystem-selftest / semantic-release-bumptest (push) Successful in 12s
pulumi-preview / preview (push) Successful in 20s
ecosystem-selftest / eslint-gate (push) Successful in 5s
ecosystem-selftest / yamllint-gate (push) Successful in 4s
feat(ci): reusable ecosystem workflows + selftest (999_testing)
The ecosystem-CI architecture: reusable Forgejo workflows (on: workflow_call)
that downstream repos reference as
`uses: olsitec/foundation/.forgejo/workflows/<x>.yml@master`.

- reusable-node-build.yml: install + build for npm/bun/none — covers the npm
  package (olsicrypto), bun package (document-engine), and no-artifact versioned
  (olsitrack/api) shapes.
- reusable-docker-build.yml: docker build via the host socket (R5: trusted repos
  only until the runner is fenced) — the seaspots-homepage / token-service shape.
- reusable-lint.yml: eslint + yamllint gate (either error → job non-zero).
- reusable-semantic-release.yml: conventionalcommits-preset version probe (dry-run),
  faithful to the GitLab template; outputs the computed next version. Real Forgejo
  publishing deferred (no @semantic-release/forgejo analogue yet).

- ecosystem-selftest.yml + ci/semantic-release-bumptest.sh: self-contained proof
  on the runner of the 999_testing acceptance criteria that need no external repo —
  the semantic-release bump sequence (1.0.0→1.1.0→1.1.1→2.0.0→3.0.0) and the
  eslint/yamllint non-zero-exit gates. Validated in a foundation-ci container.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 01:03:56 +02:00
.forgejo/workflows feat(ci): reusable ecosystem workflows + selftest (999_testing) 2026-07-01 01:03:56 +02:00
backup feat(ci): baked CI image + runner config + self-check workflow (T14) 2026-07-01 00:15:01 +02:00
bootstrap feat(ci): state-dependent pulumi-preview + backup-verify pipelines (T14) 2026-07-01 00:50:16 +02:00
ci feat(ci): reusable ecosystem workflows + selftest (999_testing) 2026-07-01 01:03:56 +02:00
containers feat(ci-image): bake ecosystem CI toolchain (lint + release) 2026-07-01 01:03:55 +02:00
documentation docs(session): focus HANDOVER on T14-remainder then 999_testing ecosystem CI 2026-07-01 00:28:57 +02:00
dr feat(ci): baked CI image + runner config + self-check workflow (T14) 2026-07-01 00:15:01 +02:00
offsite-backup feat(offsite-backup): olsitec-foundation bucket + scoped creds on home MinIO 2026-06-30 20:34:55 +02:00
packages feat(provision): Phase-0 throwaway test VM via vendored @olsitec/pulumi-hetzner 2026-06-30 18:57:54 +02:00
preflight feat(preflight): host/toolchain validation + VERSIONS pin-file — T01 2026-06-30 18:00:26 +02:00
provision feat(backup): age at-rest encryption of bundles (CONTRACT_004 §4.3) 2026-06-30 23:23:38 +02:00
.gitignore feat(offsite-backup): olsitec-foundation bucket + scoped creds on home MinIO 2026-06-30 20:34:55 +02:00
bun.lock feat(bootstrap): postgres data-plane + remote helper (T03) 2026-06-30 21:10:34 +02:00
package.json feat(offsite-backup): olsitec-foundation bucket + scoped creds on home MinIO 2026-06-30 20:34:55 +02:00
README.md chore: scaffold olsitec-foundation mono-repo 2026-06-30 17:10:46 +02:00
VERSIONS feat(ci-image): bake ecosystem CI toolchain (lint + release) 2026-07-01 01:03:55 +02:00

olsitec-foundation

The self-hosting platform "egg": a single Pulumi project that brings up Forgejo (+ Actions + OCI/npm registry), PostgreSQL, HashiCorp Vault, RustFS (S3), and a reverse proxy as plain OCI containers on one VM — recoverable from {a VM, this repo, the master passphrase}.

This is Layer 0. Kubernetes, ArgoCD and everything else are Layer-1 consumers of this foundation (see ADR-004).

Layout

  • bootstrap/ — the egg Pulumi project (phases, components, config).
  • packages/ — shared, publishable Pulumi modules (@olsitec/pulumi-*).
  • preflight/ — host & toolchain validation (run before any deploy).
  • backup/, dr/ — backup + disaster-recovery automation.
  • .forgejo/workflows/ — CI (preflight, pulumi preview/up, backup-verify).
  • documentation/ — planning, ADRs, contracts, baseline overlay. Read documentation/000_baseline.md and documentation/000_TOPOLOGY.md first.

Status

Planning complete (PLAN-001 vision, PLAN-002 strategy, ADR-004/005 accepted). Implementation not yet started — next step is T00 (contracts) per PLAN-002 §10.

Recovery in one line

git clone this repo → set PULUMI_CONFIG_PASSPHRASE./preflight/preflight.shpulumi up → restore latest offsite backup. Full procedure: dr/RUNBOOK.md (TBD, task T13).