No description
  • Go 71.5%
  • TypeScript 24.9%
  • CSS 3.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-04 03:45:01 -06:00
.agents accelerate v5 orchestration throughput 2026-07-11 20:51:48 -06:00
.github Rebuild the dashboard and quack.bot website as one Vite app 2026-10-03 23:17:54 -06:00
apps chore: remove obsolete v4 bot source 2026-10-04 03:45:01 -06:00
assets/icons/quack Answer button presses privately and space out button rows 2026-10-03 13:43:54 -06:00
contracts/http Add Discord directory lookups, live authorization, and queued audit mirror delivery 2026-10-03 23:17:51 -06:00
docs chore: remove obsolete v4 bot source 2026-10-04 03:45:01 -06:00
.dockerignore Rebuild the dashboard and quack.bot website as one Vite app 2026-10-03 23:17:54 -06:00
.env.example Announce Quack v5 to every server once behind discord.launch_announcement 2026-10-03 23:22:26 -06:00
.gitignore Move config to koanf and merge binaries 2026-10-03 00:14:00 -06:00
AGENTS.md Document the dashboard and website 2026-10-03 23:17:54 -06:00
compose.yaml Rebuild the dashboard and quack.bot website as one Vite app 2026-10-03 23:17:54 -06:00
go.work Rebuild the dashboard and quack.bot website as one Vite app 2026-10-03 23:17:54 -06:00
go.work.sum Rebuild the dashboard and quack.bot website as one Vite app 2026-10-03 23:17:54 -06:00
LICENSE Create LICENSE 2024-01-08 01:28:44 -07:00
README.md chore: remove obsolete v4 bot source 2026-10-04 03:45:01 -06:00
v5.md fix: address v5 moderation QA findings 2026-10-04 01:44:23 -06:00

Quack v5

Quack is a moderation bot for Discord. Admins define templates with escalation levels, moderators apply a template to a member, and Quack picks the level from the member's history, records the case, and carries out the configured timeout, kick, or ban. Members get one notification per case and can appeal from the dashboard.

Admins define the server's moderation rules. Moderators apply those rules. Quack chooses and carries out the configured result.

v5.md is the product definition. When the code and v5.md disagree, v5.md wins.

Layout

  • apps/backend: the Go module. One binary, quack, runs the Discord bot, the dashboard API, and the background workers, and provides the migration and v4 import commands.
  • apps/dashboard: the web dashboard. A Vite+ React app styled with CSS Modules, served by a small Go program that also proxies /api to the backend. See its README.
  • contracts/http/openapi.yaml: the HTTP API contract between the backend and the dashboard, generated from the Go route table with go generate ./... in apps/backend.
  • docs/: maintainer documentation. Start at docs/README.md.

Quick start

You need Go, Bun, Docker, and a Discord application for development.

cp .env.example .env        # then fill in the QUACK_DISCORD_* values
docker compose up -d        # MySQL and Redis
cd apps/backend && go run ./cmd/quack serve
cd apps/dashboard && bun install && bun run dev

Open http://localhost:3000. The API listens on http://localhost:8080; the dashboard proxies /api to it. Add http://localhost:3000/api/auth/discord/callback to your Discord application's OAuth2 redirects. Run go test ./... from apps/backend to test. docs/development.md has the rest.

Docs