👻

Boo

the (un)friendly Discord AI

version 1.0 • self-hosted stack

A slightly spooky, super capable AI companion for your Discord server.

Boo blends OpenRouter-powered chat, image understanding, per-guild prompts, Redis context, and a hardened Go API into one deployable stack. Built for fast, context-aware banter with a mischievous edge.

LLM + Vision

OpenRouter

Context

Redis

Storage

Postgres + Go

Realtime Status Live

Guilds Synced

42

+3 today

Context Messages

18,204

Rolling 15m

Token Usage

1.4M

this week

Ingress

Secure Go API protected via bearer auth. External callers use Authorization: Bearer <MANAGER_API_TOKEN>.

Features

Built for server owners who want vibes & velocity.

Full feature list
🕯️ Conversational AI

Context-aware replies with per-guild prompts

Boo threads Redis short-term memory with long-term Postgres prompts so each server keeps its voice. Slash commands, DMs, mentions, and prompt editing are all included.

  • Rolling 15-minute channel context
  • Tailored system prompts per guild
  • Guys-check tone nudges + admin controls
🪄 Visual prowess

Image captioning, analysis, and workflows

Automatic uploads to OpenRouter's multimodal models, Tenor-powered reactions, and custom pipelines for image-to-image tasks.

  • Auto-caption multi-image drops
  • GIFs, weather, bonks, board utilities
  • Task queue for heavier jobs
🛡️ Hardened API

Go manager service with bearer auth + Meili search

Tokenized endpoints track message archives, usage metrics, and prompt editing while staying isolated inside Docker networks.

  • /docs Swagger + Postman collection
  • Redis + Meilisearch sidecars
  • Caddy TLS front-door on Hetzner
⚙️ Extensible toolbelt

Plug-in services and workflows

Async task queue, weather integrations, OpenRouter tool calling, and a Python service layer make Boo easy to extend.

  • VoyageAI reranking + Tenor search
  • Task Worker deployments
  • Discord slash + prefixed commands

Stack

Opinionated architecture, zero mystery.

Docker Compose wires postgres, redis, meilisearch, the Go manager, the Discord bot, worker pools, and a locked-down sandbox. Caddy handles TLS, and everything speaks through bearer-authenticated APIs.

Manager API
Go + Gin + Postgres (8080)
Bot runtime
Python 3.12 + discord.py + uv
State + search
Redis, Meilisearch, Postgres
Ingress
Caddy on Hetzner w/ HTTPS

Deployment recipe

  • 1. Configure secrets

    Fill `.env` with Discord token, OpenRouter, Tenor, Meili, `MANAGER_API_TOKEN`, and DB credentials.

  • 2. `docker compose up -d`

    Postgres migrates automatically, manager seeds schema, bot + workers connect to Discord.

  • 3. Point DNS ➜ boo.ifkash.dev

    Caddy obtains certs, `/docs` exposes Swagger, `/admin` lets you edit prompts (requires token-fed client).

Need to script against the manager? Import the bundled Postman collection or the OpenAPI spec from `/openapi.json`.

Ready to haunt responsibly?

Deploy Boo, wire your secrets, and let the ghost loose.

Self-hosted, API-first, and built for Discord communities that crave fast replies with personality. Keep the Go manager private or share it publicly with the bearer token—your call.