eda797bd37
WP-0005: promote tier-2 tooling repos and refresh hub drift
...
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Promote ops-bridge, open-reuse, and artifact-store to Forgejo (wave-2).
Re-patch all Forgejo-hosted registered hub remotes after drift. Update
workplan and inventory: backup gate 2/7, Forgejo org 20 repos, hub 16/46.
2026-07-08 00:29:07 +02:00
ef886f66ea
WP-0005: wave-2 queue, promote ihp-railiance-probe, smaller restore chunks
...
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Document tier-2/3 promotion queue; note ihp-railiance-probe tier-1 promotion;
align restore drill chunk size with backup tooling.
2026-07-08 00:11:12 +02:00
826fd93603
Advance WP-0005 T01/T10: Gitea inventory and hub drift cleared
...
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 35s
Record partial Gitea org inventory, 40-repo migration gap, and patch
ops-warden hub remote_url so all Forgejo-hosted registrations align.
2026-07-08 00:03:48 +02:00
1da9c3269b
Pass Nextcloud backup restore drill for Forgejo (T09)
...
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 9s
Decrypt production forgejo-dump artifact, restore 14 repos in isolated
namespace, and harden restore script for large chunked copy and drill mailer stub.
2026-07-07 22:44:55 +02:00
6d05f8b6e9
Update WP-0005: T07 done, tier-2.5 hub remote_url patched
...
CI Smoke / host-smoke (push) Waiting to run
CI Smoke / container-smoke (push) Waiting to run
Mark package registry task complete after npm probe; document hub drift
resolution for six tier-2.5 repos and current backup gate status.
2026-07-07 22:10:00 +02:00
b06ceb6b82
WP-0005 T04/T09: note forgejo-backup automation in railiance-platform
...
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 12s
Makefile targets and operator doc landed; cron and 7-day gate remain.
2026-07-07 17:19:19 +02:00
a62df364aa
Close RAIL-HO-WP-0005-T02; record cutover Option A on WP-0005
...
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 22s
Staged per-repo cutover is the official T11 mode. T02 design decisions complete.
2026-07-07 17:00:05 +02:00
7658c7be3a
Record T02 backup Option A on WP-0005 (Nextcloud lane)
...
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 8s
Unblocks T04/T09 implementation wording; cutover mode remains the last T02 item.
2026-07-07 16:55:13 +02:00
fb07daef3a
Record T02 package scope decision (Option C) on WP-0005
...
CI Smoke / host-smoke (push) Successful in 3s
CI Smoke / container-smoke (push) Successful in 42s
OCI plus npm and generic at launch; PyPI/Go/Maven/Helm as inventory proves.
T07 scope updated; T02 backup and cutover decisions remain open.
2026-07-07 16:47:15 +02:00
d27bcb1a59
Mark RAIL-HO-WP-0005-T06 done after SMTP delivery verified
...
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 3s
IONOS mail via OpenBao/ESO and smtp.ionos.de STARTTLS confirmed with operator
test email and forgot-password delivery.
2026-07-07 16:40:12 +02:00
1cfc5d7b81
Record IONOS SMTP decision for RAIL-HO-WP-0005 T02/T06
...
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 2s
Operator confirmed IONOS mail for coulomb.social; update workplan gates and
point implementation to railiance-apps Forgejo mailer docs.
2026-07-07 02:04:33 +02:00
48610117c7
Update RAIL-HO-WP-0005 with Forgejo cutover progress and mark T08 done
...
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Sync the workplan file with State Hub (fix-consistency backing link), record
2026-07-06 state-hub tier-3 cutover evidence, refresh the Forgejo org
inventory snapshot, and close T08 now that Actions criteria are met.
2026-07-07 01:50:57 +02:00
3e992d2551
RAIL-HO-WP-0005: link tier-3 remote_url sweep playbook
...
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Playbook drafted in the-custodian; tier-3 execution still gated on state-hub
promotion and scheduled backups.
2026-07-04 13:21:41 +02:00
c664aebd1d
RAIL-HO-WP-0005: record tier 2.5 railiance stack Forgejo promotion
...
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Inventory and workplan updates for enablement templates, tegwick SSH, and
railiance-* repos canonical on forgejo-remote.
2026-07-04 12:51:05 +02:00
092315895f
RAIL-HO-WP-0005-T09: Forgejo backup/restore drill assets and evidence
...
Add isolated-namespace restore drill (CNPG cluster, PVC, orchestration script)
and document successful 2026-07-04 run: production forgejo dump restored with
health 200 and pilot repos visible via API. Scheduled backups remain open.
2026-07-04 11:26:50 +02:00
2d62317ada
RAIL-HO-WP-0005-T10: tier-2 key-cape image pilot complete
...
Records successful key-cape Forgejo migration, image CI workflow, and
railiance01 registry pull; tiers 0-2 of migration ladder now satisfied.
2026-07-04 10:26:28 +02:00
67b259f6dc
Adapt RAIL-HO-WP-0005 for production Forgejo and staged repo ladder
...
Reflects live railiance01 deploy, cancels isolated probe T03 in favor of
in-production pilots, marks T08/T10 progress (forgejo-actions-probe,
glas-harness), and documents tier 0-3 migration sequencing before state-hub.
2026-07-04 01:02:42 +02:00
6b0ededee2
ADR-004: Forgejo in-cluster Actions runner on railiance01
...
Decides long-lived runner Deployment with DinD sidecar; updates
RAIL-HO-WP-0005 runner model decision.
2026-07-03 22:29:28 +02:00
3f2564748c
Archive closed workplans to workplans/archived/ (ADR-001)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 00:25:41 +02:00
73a30f0a44
Repo hygiene: fill stack-and-commands, normalize workplan statuses
...
- Fill .claude/rules/stack-and-commands.md (was an empty TODO template)
- Normalize workplan frontmatter statuses to canonical vocabulary
(completed/done -> finished) per ADR-001
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 00:21:48 +02:00
723f23d05d
Normalize agent instructions and workplan frontmatter (STATE-WP-0067)
...
- Align agent files with on-disk workplan prefixes (infer from workplan ids)
- Set workplan domain to registered domain_slug; add topic_slug where applicable
- Repair frontmatter delimiter formatting; migrate legacy task status literals
- Regenerate AGENTS.md, CLAUDE.md, and .claude/rules from State Hub templates
2026-06-22 23:16:28 +02:00
2ad38b4a1a
docs: start Forgejo migration inventory
2026-06-04 01:34:33 +02:00
c47930e2f9
RAIL-HO-WP-0004 stale workplan cleanup
2026-05-22 16:40:02 +02:00
dd1787f511
New workplan to migrate from gitea to forgejo
2026-05-14 14:55:28 +02:00
301a63d843
Reviewed state and next todos
2026-05-03 00:03:29 +02:00
93080128fd
chore(workplan): mark T06 done (Gitea values → railiance-apps)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 13:41:21 +01:00
afd664b248
chore(workplan): mark T05 done — Valkey standalone S3 asset deployed
...
bitnami/valkey 5.4.9 in platform namespace; gitea-valkey-cluster
subchart decommissioned; Gitea cache/session/queue verified working.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 10:03:14 +01:00
7bff1f211d
chore(workplan): mark T04 done — Gitea migrated to cnpg gitea-db
...
postgresql-ha subchart decommissioned; 4 users, 26 repos verified intact;
NetworkPolicy for default→databases ingress applied.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 09:12:22 +01:00
11a2c37bde
chore(workplan): mark T03 and T08 done in WP-0004
...
T03 (gitea-db cnpg cluster): cluster healthy after adding missing
NetworkPolicies for databases namespace default-deny-all policy.
T08 (deploy-stack docs): docs/deploy-stack.md written last session.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 02:24:07 +01:00
ff59d4e0f8
feat(ansible): add swapfile + resource_limits roles; add CoulombCore to inventory
...
T01: roles/swapfile — idempotent 4GB swapfile, vm.swappiness=10, fstab entry
T02: roles/resource_limits — PAM nproc caps (512/1024), systemd user-1000.slice
memory limits (1500M/512M); templated per-host via host_vars
- inventory/host_vars/CoulombCore.yml — host-specific vars for both roles
- inventory/servers.yaml — add CoulombCore with id_ops SSH key
- inventory_from_yaml.py — load host_vars files into Ansible hostvars
- playbooks/bootstrap.yaml — include swapfile + resource_limits roles
- workplans/WP-0004 — flag T04/T09/T10 needs_human, add CoulombCore-local convergence note
Codifies manual INC-002 hardening. See RAIL-HO-WP-0004-T01/T02.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 01:49:35 +01:00
caa6ae36da
feat(workplan): add RAIL-HO-WP-0004 production-readiness workplan
...
10-task cross-layer workplan covering: Ansible hardening codification (T01-T02),
cnpg platform baseline superseding stale WP-0001 (T03-T05), S2→S5 Gitea boundary
fix (T06), SSH git automation on CoulombCore (T07, done), deploy-stack docs (T08),
state-hub + activity-core migration to cluster (T09-T10).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 01:01:47 +01:00
2634102ce2
chore(workplan): mark WP-0003 completed — all tasks done
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 00:36:56 +01:00
703c57d91c
chore(rename): railiance-hosts → railiance-infra
...
Update all operational references to reflect the new repo name per
ADR-003 (OAS S1 Infrastructure Substrate). Historical text in ADRs
and state-hub-inbox files preserved as-is. Gitea remote URL updated
locally (Gitea repo rename is a manual step).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 00:34:18 +01:00
d9f6848a5b
feat(workplan): add WP-0003 for 5-repo OAS stack restructure
...
Plans the rename of railiance-hosts→infra and railiance-bootstrap→cluster,
creation of railiance-platform/enablement/apps, ADR-003 (supersedes ADR-002),
content relocations, state hub re-registration, and resolution of the
pending railiance-apps decision (7cddead6).
7 tasks; state_hub_workstream_id: 3ae0afc5-13f2-4e6c-aea7-1c1fb9f1ab81
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 23:53:49 +01:00
15bb2978cc
feat(tunnel): add make tunnel target; complete WP-0001
...
- Add `make tunnel` to Makefile: reads first host from
inventory/servers.yaml and opens a reverse SSH tunnel
forwarding local state-hub (port 8000) to the remote host
- Mark T02 done and close WP-0001 (all tasks complete)
- WP-0002 T01/T02 task IDs backfilled by consistency checker
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 19:53:10 +01:00
b32dfd4f5a
docs: add verification guide, close WP-0002
...
- docs/verification.md: explains spec/server-baseline.yaml, goss/baseline.yaml,
make verify workflow, assertion mapping table, and how to add new checks
- docs/convergence.md: replace manual spot-check snippet with make verify reference
- workplans/RAIL-HO-WP-0002: mark completed (all tasks done, workstream closed)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 19:37:10 +01:00
8f5799553e
feat: implement WP-0002 — Goss test suite, verify playbook, and ADR-002
...
- goss/baseline.yaml: assertions for all spec/server-baseline.yaml items
(packages, services, SSH config, UFW rules, admin user, fail2ban, HISTCONTROL)
- goss/vars/baseline-vars.yaml: parameterised ports and paths
- ansible/roles/goss/: installs Goss binary (v0.4.9), deploys tests,
runs assertions in TAP format, fetches report to reports/
- ansible/playbooks/verify.yaml: playbook wrapping the goss role
- Makefile: add 'make verify' target; update 'make status' with hint
- docs/adr/ADR-002: formal repo boundary — railiance-hosts vs railiance-bootstrap
- workplans/RAIL-HO-WP-0002: registered workstream 8fed53c2, T03–T06 done
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 12:38:48 +01:00
2be5de2a3a
feat: add server baseline spec, status command, and test suite workplan
...
- Fix duplicate `converge` Makefile target (was causing warnings)
- Fix `make status` SSH hardening check (use grep on sshd_config instead
of sshd -T which fails without hostkeys)
- Add `make status` target with connectivity, UFW, fail2ban, SSH checks
- Add spec/server-baseline.yaml — authoritative target-state spec for
all managed nodes (firewall, SSH, services, packages, users)
- Add workplan RAIL-HO-WP-0002 for Goss test suite and repo boundary ADR
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 11:10:27 +00:00
679d0d67b1
feat: bootstrap and harden Railiance01 at HostEurope
...
- Extend base role with fail2ban, UFW k3s/Flannel rules, HISTCONTROL
- Add handlers dir for fail2ban restart
- Fix inventory script to emit correct dynamic inventory JSON format
- Add roles_path to ansible.cfg so playbook finds roles
- Add Railiance01 (92.205.62.239) to inventory/servers.yaml
- Mark workplan T03/T04/T05 as done
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 22:53:38 +00:00
5187e63504
Link to state-hub and hosteurope integration
2026-03-08 23:28:59 +01:00