Commit Graph

28 Commits

Author SHA1 Message Date
joshp123
280744ce0c infra: slim clawdinators aws footprint
What:
- bound CLAWDINATOR image artifact retention with S3 lifecycle, AMI pruning, and import provenance tags
- reduce the AWS fleet to Babelfish-only and make GitHub credentials opt-in per host
- disable the AMI build, nix-openclaw bump, and release workflows by moving them out of .github/workflows/
- update operator docs for the new explicit build and deploy model

Why:
- stop unbounded S3 and snapshot growth from image builds
- remove unattended resurrection paths and shut down the unused t3.large instances
- keep the remaining Babelfish host running without GitHub App credentials or sync timers

Tests:
- `nix shell nixpkgs#shellcheck nixpkgs#shfmt -c bash scripts/lint-shell.sh` (pass)
- `nix build .#nixosConfigurations.clawdinator-babelfish.config.system.build.toplevel .#nixosConfigurations.clawdinator-1.config.system.build.toplevel .#nixosConfigurations.clawdinator-2.config.system.build.toplevel` (pass)
- `AWS_PROFILE=homelab-admin TF_VAR_aws_region=eu-central-1 TF_VAR_ami_id=ami-0a9abe17feeee0079 TF_VAR_ssh_public_key="$(cat ~/.ssh/id_ed25519.pub)" nix shell nixpkgs#opentofu -c sh -lc 'tofu fmt -check && tofu validate'` (pass)
- live AWS apply: destroyed `clawdinator-1` and `clawdinator-2`, replaced Babelfish, and verified only `Fleet Deploy` remains active in GitHub Actions
2026-04-03 15:38:57 +02:00
joshp123
4a40ae24e2 🤖 config: restrict main clawdinator discord scope to clawdinators-test
What:
- remove #clawdributors-test and #clawdributors channel IDs from `nix/hosts/clawdinator-common.nix`
- keep only channel `1458426982579830908` (#clawdinators-test) in the main Discord allowlist
- simplify now-unused sendPolicy deny rules tied to removed channels
- align docs/memory/workspace references to #clawdinators-test only

Why:
- enforce single-channel listening surface for main clawdinator instances
- eliminate stale channel references that could cause operator confusion
- keep runtime config and docs aligned

Tests:
- nix shell nixpkgs#shellcheck nixpkgs#shfmt -c bash scripts/lint-shell.sh (pass)
- nix eval --raw .#nixosConfigurations.clawdinator-1.config.system.build.toplevel.drvPath --accept-flake-config >/dev/null (pass)
- nix eval --raw .#nixosConfigurations.clawdinator-2.config.system.build.toplevel.drvPath --accept-flake-config >/dev/null (pass)
2026-02-23 17:20:38 +01:00
joshp123
9245311395 Add fast release pipeline (bootstrap + SSM nixos-rebuild)
- Add release.yml: eval -> upload bootstrap -> deploy via SSM (canary order)
- Make image-build manual/weekly (base AMI lane)
- Add SSM permissions to CI IAM policy (requires tofu apply)
- Add scripts for SSM-based nixos-rebuild and docs for the two-lane model
2026-02-15 15:22:27 -08:00
joshp123
ffb27ab614 Public PR intent S3 bucket + publisher timer
- Provision public S3 bucket (anonymous list/get) for PR intent artifacts
- Grant instance role PutObject and add NixOS systemd timer to publish /memory/pr-intent
- Default agent thinking level to high for GPT-5.2/Codex
- Make OpenTofu instance management explicit (manage_instances) to prevent accidental fleet destroy

Tests: not run (infra/Nix changes)
2026-02-15 12:44:11 -08:00
Josh Palmer
e869c7b5a7 fix: move fleet status local
- drop AWS SDK from control api
- fetch status via AWS CLI in fleet control
- update control plane docs
2026-02-03 12:46:41 +01:00
Josh Palmer
4fd6ab11e4 feat: control api invoke creds
- add lambda invoke IAM user + outputs
- update fleet control to invoke lambda directly
- wire new control access-key secrets
- update docs + secrets guidance
2026-02-03 11:10:39 +01:00
Josh Palmer
8e5f256e96 fix: control api auth header
- use X-Clawdinator-Token header for lambda url
- update fleet control script + docs
- adjust control api archive path
2026-02-03 10:43:27 +01:00
Josh Palmer
05d43b1926 infra: add fleet control api + multi-instance
- add control API Lambda + fleet deploy workflow
- introduce instances registry + common host config
- add fleet control skill + scripts
- update bootstrap bundles + secrets docs
- wire OpenTofu for multi-instance + user-data
2026-02-03 01:20:23 +01:00
Josh Palmer
c373a14bb4 🤖 infra: lock telegram allowlist + close gateway ingress
What:
- add telegram allowFrom secret wiring in the Nix module + host configs
- enforce Telegram DM allowlist and disable group traffic
- drop public gateway ingress (SG + firewall)
- document telegram secret handling and update ops memory

Why:
- restrict Telegram access to a single maintainer
- remove unnecessary public exposure for the gateway port
- keep secret wiring explicit in docs

Tests:
- nix flake check
2026-02-03 00:07:33 +01:00
Josh Palmer
b7efe5017b fix: keep gh auth fresh without env tokens
- Write GH CLI auth file (/var/lib/clawd/gh/hosts.yml) on token refresh
- Set GH_CONFIG_DIR for the gateway service
- Stop injecting GH_TOKEN into clawdinator service env
- Document GH CLI auth file in docs/SECRETS.md
2026-01-31 23:36:20 +01:00
Josh Palmer
52d9b34693 🔄 rebrand: update to openclaw packages + config
Update to nix-openclaw 9d8bafc4 with renamed packages.

- Packages: moltbot-gateway → openclaw-gateway, moltbot → openclaw
- Binary: bin/moltbot → bin/openclaw
- Config: moltbot.json → openclaw.json
- Log: moltbot.log → openclaw.log
- Zero moltbot references remaining in repo.

Tests: not run (CI will validate flake eval + AMI build)
2026-01-30 14:35:26 +01:00
Josh Palmer
c2c3bf4f46 🔄 rebrand: moltbot → openclaw, clawdinators
Rename org references from moltbot to openclaw across all config, docs,
CI workflows, flake inputs, secret names, and repo seeds.

Mapping:
- org: moltbot → openclaw
- repos: moltinators → clawdinators, nix-moltbot → nix-openclaw, molthub → clawhub
- secrets: moltinator-* → clawdinator-*
- flake input: nix-moltbot → nix-openclaw
- GH repos renamed: openclaw/nix-openclaw, openclaw/clawdinators

Upstream package/binary names (moltbot, moltbot-gateway, moltbot.json)
kept as-is — those come from nix-openclaw and haven't been renamed yet.

Tests: not run (rename-only change; CI will validate flake eval)
2026-01-30 14:30:46 +01:00
Josh Palmer
78f57df5a8 🤖 chore: move to moltbot upstream + sync tooling
What:
- swap nix-moltbot inputs, packages, and workflow automation
- update secrets wiring, repo seeds, and org references for moltbot
- fix self-update path and moltbot config/log defaults

Why:
- align infra with moltbot rename and new packaging
- restore update pipeline + consistent bootstrap artifacts

Tests:
- ./scripts/build-image.sh (fails: /build chmod permission on darwin)
2026-01-28 18:36:10 +01:00
Josh Palmer
a7106d3072 Move secrets + repo seeds to runtime bootstrap 2026-01-10 17:04:18 +01:00
Josh Palmer
079ba7af0c chore: bump nix-clawdbot + rotate openai key 2026-01-09 18:06:43 +01:00
Josh Palmer
3a79cbe6ba Add OpenAI key wiring for clawdinator 2026-01-09 01:24:04 +01:00
Josh Palmer
4cc50d7138 Bake agenix key into image build 2026-01-08 11:23:28 +01:00
Josh Palmer
4b2399ea34 Switch AMI import to snapshot workflow 2026-01-08 00:11:22 +01:00
Josh Palmer
8da1628d93 Add AWS instance provisioning and raw image bootstrap 2026-01-07 23:48:32 +01:00
Josh Palmer
2a40dbb15b Harden AWS image pipeline and cleanup host config 2026-01-07 23:00:21 +01:00
Josh Palmer
50f40166ba Use amazon image format for AMI import 2026-01-07 22:39:50 +01:00
Josh Palmer
0284741d03 Reuse existing IAM user for AMI import 2026-01-07 22:05:57 +01:00
Josh Palmer
486e91508e Switch pipeline to AWS AMI and remove Hetzner path 2026-01-07 21:51:04 +01:00
Josh Palmer
8e8d439d75 Use hcloud-upload-image for Hetzner imports 2026-01-07 18:25:37 +01:00
Josh Palmer
316bbe9e48 Add S3 image pipeline and CI 2026-01-07 17:55:43 +01:00
Josh Palmer
e60a50798d Use clawdis anthropic key for CLAWDINATOR 2026-01-07 12:47:48 +01:00
Josh Palmer
92440b58b4 Clarify CLAWDINATOR docs and Hetzner host setup 2026-01-07 12:22:10 +01:00
Josh Palmer
0fc2d5bbf7 Initial CLAWDINATOR infra + NixOS scaffolding 2026-01-07 00:08:18 +01:00