# Bonfire ground zero + gitbot (2026-07-09)

## Stack

| Item | Value |
|------|--------|
| Path | `/home/hernani/koopa-bonfire/` |
| Containers | `koopa-bonfire`, `koopa-bonfire-db` |
| Port | **9021** → Caddy `bonfire.hacktivism.ch` |
| Image | `bonfirenetworks/bonfire:1.0.5-social-amd64` |
| Env | secrets **64** chars; `DB_MIGRATE_INDEXES_CONCURRENTLY=false` |

Ground zero: wiped volume + dir, clean migrate (import_me `20200828094944` applied, ~109 migrations, identity tables present).

## Accounts

| Login | Role |
|-------|------|
| `foss` / `foss@bonfire.hacktivism.ch` | operator account |
| character `gitbot` | same account (multi-profile) |

Passwords: `/home/hernani/koopa-bonfire/users.env` (mode 600).

Public: https://bonfire.hacktivism.ch/

## Gitbot (commit mirror)

- Live: `~/koopa-bonfire/bin/gitbot-mirror.py`
- Mirror in repo: `scripts/bonfire/gitbot-mirror.py`
- State: `~/koopa-bonfire/gitbot-state.json`
- Poll Forgejo every **300s** (`gitbot-mirror.service`); log `~/koopa-bonfire/gitbot.log`
- No webhook — API only

```bash
systemctl --user status gitbot-mirror.service
tail -20 ~/koopa-bonfire/gitbot.log
python3 ~/koopa-bonfire/bin/gitbot-mirror.py
```

More: `2026/2026-07-11--bonfire-gitbot-systemd.md`.

## Lessons

- First boot needs **≥64-byte** `SECRET_KEY_BASE`.
- Migrations: **`DB_MIGRATE_INDEXES_CONCURRENTLY=false`** on empty DB (avoids concurrent index in txn).
- Partial DB → wipe volume and ground zero rather than patch half-migrated state.
