Self-hosted Kick chat logging, search, and channel analytics.
Repository · Issues · Pull Requests · Fork
Kick Logs is an open-source, self-hosted application for collecting public Kick chat messages from channels you follow. It keeps a durable message history, gives you a fast web search experience, and adds useful analytics around channels, users, emotes, replies, and activity trends.
It is designed for streamers, moderators, community managers, researchers, and anyone who wants to own their Kick chat archive instead of depending on short-lived browser chat history.
Kick Logs is an unofficial community project. It uses Kick web behavior and public chat events that can change without notice.
- Live Kick chat logging for followed channels.
- Public search across stored messages with sender, channel, text, date, reply, and emote filters.
- Infinite-scroll message results with reply context, clickable links, and inline emotes.
- Public user and channel profile pages with activity summaries.
- Prediction pages that run client-side and do not store prediction data.
- Admin dashboard for followed channels, users, listener health, storage, and cleanup previews.
- Durable ingestion: raw events pass through NATS JetStream before ClickHouse normalization.
- Docker Compose runtime with Go, Next.js, NATS JetStream, ClickHouse, and SQLite.
The app is organized around:
- Search: a public interface for finding old chat messages quickly.
- Profiles and analytics: public pages for understanding active users, channels, emotes, and message volume.
- Prediction: a public channel prediction view that fetches live Kick prediction data in the browser without storing it.
- Admin: a protected dashboard for managing followed channels and watching ingestion health.
The default stack stores high-volume chat data in ClickHouse and keeps control-plane data such as admins, followed channels, sender profiles, retention settings, and heartbeats in SQLite.
Contributions are welcome. Keep pull requests focused, explain the user-facing change, and update tests or docs when behavior changes.
git clone https://github.com/YSelim0/kick-logs.git
cd kick-logs
cp .env.example .env
docker compose up --build -dUseful checks:
cd apps/api-go && go test ./... && go vet ./...
cd ../.. && pnpm format:checkFor UI work, read docs/design/design.md. For backend architecture changes, read
docs/architecture.md.
Requirements: Docker and Docker Compose.
git clone https://github.com/YSelim0/kick-logs.git
cd kick-logs
cp .env.example .envBefore running it outside local development, edit .env and change at least:
JWT_SECRET_KEY
DEFAULT_SUPER_ADMIN_EMAIL
DEFAULT_SUPER_ADMIN_PASSWORD
CLICKHOUSE_PASSWORD
Start everything:
docker compose up --build -dOpen:
Web: http://localhost:3000
Admin: http://localhost:3000/login
API: http://localhost:8000/health
Default local admin:
email: admin@kicklogs.local
password: admin123
Stop the app:
docker compose downBackup and restore notes live in docs/operations/backup_restore.md.
Remove all stored local data:
docker compose down -vKick Logs is released under the MIT License.

