What it is
Forge Bot is the small always-on service behind Forge's Discord surface. Windows Forge sends run events to a LAN-only relay, and the relay turns them into clean Discord embeds: run started, run complete, gate result, final branch, and links back to the private dashboard when that is available.
It also listens for the human side of the loop. Replies like !forge-answer ... and contextual notes can be routed back into Forge so a paused run does not depend on a foreground bot process sitting open on the workstation.
Why I run it
Forge is local-first, but its questions should not be trapped inside one browser tab. If an iteration needs input, Discord is the place I am most likely to see it quickly. The relay lets Forge keep that lightweight notification channel without giving the main app a long-lived Discord gateway connection.
The other reason is reliability. Before this, parts of the notification flow depended on whatever process was running on Windows at the time. Moving the relay to the sandbox host gave it the same restart, monitoring, and backup shape as the rest of the homelab.
How I use it
I mostly see it as status cards in the Forge channel. A good card tells me what project ran, which iteration it reached, whether the gates passed, what branch was produced, and where to inspect the result.
When a run asks for human context, I can answer from Discord and let Forge pick that answer up through its callback route. The source of truth stays local to Forge; Discord is just the reachable input/output surface.
Setup notes
- Host: the sandbox Docker LXC.
- Runtime: host-managed Docker Compose, custom image, restart unless stopped.
- Exposure: LAN-only HTTP health/event endpoint. No public proxy.
- Secrets: Discord and bearer tokens live in the runtime
.env, not in the repo. - Fallback: Forge can still post directly to Discord if the relay is unavailable.
Runbook
- Healthy looks like: container is healthy, the health endpoint says the bot is ready, and a smoke event lands as an embed.
- Embeds do not arrive: check the relay logs, then confirm the Discord token and channel are still valid.
- Discord replies do not reach Forge: the Windows Forge backend may be offline or not listening on the LAN callback path.
- Where logs live: Docker logs on the sandbox host, plus Forge's local run artifacts.