Commit graph

15 commits

Author SHA1 Message Date
Tobserver Agent
55fb51c760 BIT-29 Provision Bitcoin Pulse PostgreSQL (#5)
## Summary
- Provision a digest-pinned PostgreSQL 18 container through rootless Podman with health-gated systemd readiness, loopback-only publishing, graceful shutdown, and the persistent `bitcoin-pulse-db` volume.
- Declare separate SOPS credential paths for the administrator, migration, and application roles, stage them privately for first-start initialization, and reuse the role bootstrap SQL from the pinned BitcoinPulseAPI input.
- Document human-managed secret provisioning, least-privilege verification, container recreation, graceful shutdown, and coordinated credential rotation.

## Validation
- `tobserver-agent check` passed:
  - `nixpkgs-fmt --check`
  - `git diff --check`
  - `nix flake check --no-build`
  - Tobserver system derivation path evaluation
  - Gitleaks patch scan
- Evaluated the OCI container, systemd service, rootless user, and NixOS assertions; all assertions pass and the generated configuration contains the expected loopback port, health readiness, persistent volume, and shutdown settings.

## Risks and limitations
- Runtime startup, shutdown, persistence, and role behavior require Linux deployment verification and were not executed on macOS.
- The encrypted SOPS keys are intentionally absent from this agent-authored change; the service must not be deployed before a human provisions them.
- Static uid/gid 400 is reserved for the dedicated rootless container account and should be checked for conflicts during review.

## Manual follow-up
- Add `bitcoin-pulse/postgres/admin-password`, `bitcoin-pulse/postgres/migration-password`, and `bitcoin-pulse/postgres/app-password` to `secrets/tobserver.yaml` using `sops`; commit only encrypted values.
- Review and merge this pull request.
- Deploy manually on Tobserver after merge and encrypted secret provisioning.
- Run the startup, loopback binding, role privilege, restart/persistence, and graceful-shutdown checks in `docs/bitcoin-pulse-postgresql.md`.

Reviewed-on: https://codeberg.org/oibot/Tobserver/pulls/5
2026-07-27 10:07:40 +02:00
Tobserver Agent
fc8c7de05d Add Bitcoin Pulse module integration 2026-07-26 18:23:37 +07:00
Tobserver Agent
3d8488a9b4 Preserve refreshed Hermes OAuth credentials 2026-07-26 15:45:19 +07:00
Tobserver Agent
f64da546a3 Switch Hermes to GPT-5.6 Terra 2026-07-26 15:22:29 +07:00
Tobias Ostner
1c1cd355fd Create a translation bot in Telegram 2026-06-21 11:01:59 +02:00
Tobias Ostner
7681e2ed28 Manage restic and backblaze secrets with sops 2026-06-16 19:36:51 +02:00
Tobias Ostner
fc6d6376cc Wrap lncli for user tobi 2026-06-10 16:04:14 +02:00
Tobias Ostner
ec132ed63f Change hermes-agent model 2026-06-09 13:18:31 +02:00
Tobias Ostner
8e53e98383 Install lnd 2026-05-30 15:49:07 +02:00
Tobias Ostner
a38b919f05 Add messaging capability 2026-05-30 15:48:46 +02:00
Tobias Ostner
56dbe76ed4 Install hermes agent 2026-05-29 18:13:02 +02:00
Tobias Ostner
063d40937f Setup checker 2026-04-13 18:47:06 +02:00
Tobias Ostner
85b5c2bce6 manage nextcloud admin-pass with sops 2026-04-11 19:38:28 +02:00
Tobias Ostner
41cb36d15f Setup sops 2026-04-11 18:52:36 +02:00
Tobias Ostner
f5345d8f6a Initial commit 2026-04-11 11:38:46 +02:00