A self-hosted Kick bot and stream control room for your creator team.
KekBot brings Kick chat automation, Discord moderator controls, OBS sources and YouTube requests into a self-hosted dashboard. One installation serves one creator and their moderator team. You own the provider applications, configuration, local accounts and data.
Status: v0.1.0-beta.3 is available for evaluation. Beta 3 includes the downloadable lifecycle launcher, matching tool/application versions and the bundled HTTPS installer correction. Read its release notes and security/binary-license review. Full-product live testing and all 33 stable acceptance gates remain pending. Start with the beta guide; select Specific release because latest-stable discovery excludes betas.
Using beta 1? Its original bundled HTTPS installer needs the fixed-tool workaround. Beta 2 includes that correction; beta 1 downloads stay unchanged.
| Area | Capabilities |
|---|---|
| Kick chat | Custom commands, aliases, response pools, counters, restrictions, cooldowns and timers |
| Discord | Explicit guild/channel notification routing and permission-controlled operator commands |
| Stream presentation | Follow/subscription alerts, local image/sound assets, goals, three themes and 18 OBS source types |
| Media | Kick !sr requests → dashboard or Discord approval → visible YouTube playback in OBS → durable queue advancement |
| Moderation | Link/phrase/repetition/caps/burst rules, safe rule tests, notes, escalation and temporary incident presets |
| Community | Points, estimated watchtime, reward fulfillment queues, polls, raffles and leaderboards |
| Ownership | Local accounts/roles, scoped API/source tokens, analytics, retention, configuration portability and backup/recovery tools |
Discord and YouTube are optional to enable. KekBot runs without a project-operated account, relay or billing service. Enabled integrations contact their official services; OBS YouTube playback contacts YouTube. The configuration reference explains storage and secrets.
Daily operation includes dedicated queues for pending rewards and uncertain provider deliveries, independent of recent history. The user guide explains fulfillment; the operations guide explains inspecting and reconciling delivery without resending it.
The runtime image contains Node and the required native libraries without a shell or package manager. Use the documented Node maintenance commands. The guide covers Alpine/musl beta compatibility, the separate proxy build, binary scanning and bundled legal notices; the release review binds checks to the published artifacts.
| You want to… | Start here | What you need |
|---|---|---|
| Explore safely | Local quickstart | Git, pinned Node/pnpm; no provider accounts or Docker |
| Evaluate the beta | Beta guide | A disposable installation, reviewed source or the exact published beta assets |
| Host a real bot | Downloadable launcher → guided terminal installer, or manual installation | Linux x86-64, local persistent disk and public HTTPS; optional Ubuntu prerequisite assistance |
| Configure a fresh dashboard | First session | Owner login and optional provider connections |
| Join an existing team | Accounts → user guide | A private invitation from your installation's operator |
| Put sources on stream | OBS and playback | Owner-created source URLs; OBS Browser Source support |
| Update or remove a managed host | Updating · uninstalling | Trusted host access; wizard-created installation |
| Back up or diagnose | Operations → recovery | Trusted host access for maintenance commands |
| Contribute or integrate | Contributing → API | An isolated fixture installation |
Download the launcher to a file on your Linux x86-64 server, review it, then open its explained install/manage menu:
curl --fail --location --proto '=https' --proto-redir '=https' \
--max-time 60 --retry 2 \
https://github.com/DangerMouseUK/kekbot/releases/download/v0.1.0-beta.3/install.sh \
--output install.sh &&
curl --fail --location --proto '=https' --proto-redir '=https' \
--max-time 60 --retry 2 \
https://github.com/DangerMouseUK/kekbot/releases/download/v0.1.0-beta.3/SHA256SUMS \
--output SHA256SUMS &&
grep -E '^[a-f0-9]{64} install[.]sh$' SHA256SUMS | sha256sum --check - &&
less install.sh &&
sudo bash install.sh --tool-release v0.1.0-beta.3The complete launcher guide explains prerequisite checks, optional Ubuntu 24.04 setup, source review and every option. Choose Specific release → v0.1.0-beta.3 for the published beta. Releases, branches, PRs, exact commits and audited source/image bundles remain available, with typed trust and final review. The launcher also opens update, rollback, start/stop, status and uninstall; removal keeps data by default.
The published beta 3 launcher is a standalone, checksum-covered download. Verify the complete bundle before execution. The command above pins management tools to beta 3; select the application release explicitly in the wizard. Development main, branches and PRs remain separate reviewed choices. Beta 1/2 tags/assets stay unchanged. Do not pipe a downloaded script into a shell.
Install Git, Node.js 24.21.0 and pnpm 10.26.0 first. See quickstart prerequisites, including native SQLite build requirements.
git clone https://github.com/DangerMouseUK/kekbot.git
cd kekbot
pnpm install --frozen-lockfile
cp .env.example .env.localPowerShell uses Copy-Item .env.example .env.local for the last command. Edit .env.local before continuing:
KEKBOT_MODE=fixture
KEKBOT_RUN_JOBS=1
KEKBOT_ENABLE_PROOF=0
KEKBOT_PUBLIC_URL=http://127.0.0.1:3000
KICK_BROADCASTER_USER_ID=123Leave the provider client ID/secret empty and keep the local public URL exactly as above. Then:
pnpm kekbot init
pnpm kekbot fixture-seed
pnpm devOpen http://127.0.0.1:3000. Read the protected fixture-account.json file at the path reported by seeding to sign in. The password is randomly generated. For manual owner setup instead, omit seeding and use the setup-token file reported by init.
The complete quickstart explains the first command, simulated playback, shutdown and storage. Fixture mode cannot send live provider mutations or play real YouTube videos.
Prefer containers? The Docker Desktop evaluation guide covers Windows/macOS with Linux containers and a separate fixture volume, without host Node/pnpm.
The launcher opens the guided installer, with explained terminal menus, final review, pinned branch/PR/commit/release selection, backup-before-update, recovery checkpoints and data-preserving default uninstall. Its application default is latest stable, which reports unavailable until stable releases exist; choose Specific release → v0.1.0-beta.3 to evaluate the beta. Release formats are audited source builds or prebuilt Linux amd64 image archives. Bash launches host tooling; the wizard uses Python's standard library outside the application container and leaves provider consent/settings to the owner dashboard.
The deployment target is Linux x86-64, one long-running application container, local persistent disk and publicly trusted HTTPS for provider callbacks. The included Compose examples build KekBot and an optional Caddy proxy from source. A domain is the usual path; a separate public-IPv4 HTTPS example is available. Windows/macOS can evaluate the Linux container with Docker Desktop or develop from source.
SQLite storage is local to the installation. Multiple replicas sharing a database, network-filesystem storage and ARM64 distribution are outside the current supported topology. The 2 vCPU / 2 GiB runtime reference target still needs live benchmark acceptance; allow more memory for image builds. See installation requirements.
The documentation index lists every guide, reference and project record. Start with the task-based guides above; the PRDs describe product requirements rather than installation steps.
| Reference | Purpose |
|---|---|
| Configuration | Environment variables, file layout, secrets and module defaults |
| Dashboard fields | Every editable field, default, unit and bound, with schema-checked examples |
| CLI | Complete command syntax, prerequisites, results and failure handling |
| Accounts | Capability matrix, invitations, sessions and access removal |
| Dependency maintenance | Reviewed release upgrades, audits and candidate sign-off |
| HTTP API | Authentication, scopes, actions, schemas, SSE and error handling |
| Architecture | Runtime, persistence and provider design decisions |
| Testing | Local checks, fixture isolation, browser and Linux CI coverage |
| Live acceptance | Remaining provider, OBS, host and independent-operator trials |
| Release procedure | Candidate packages, checksums, acceptance and publication |
| Milestones | Completed work, exact evidence and remaining milestones |
Bug reports, documentation fixes and focused contributions are welcome. Read CONTRIBUTING.md for the development workflow and troubleshooting before opening an issue. Use SECURITY.md for private vulnerability reporting.
GitHub Actions checks documentation/publication policy, secrets, types/lint, real SQLite behavior, production builds, three browser engines and Linux container/proxy/recovery flows. Opt-in synthetic soak and candidate packaging are also available. Passing CI establishes automated evidence; live release gates remain separate.
Active media requests stay separate from paginated history, so older requests cannot hide the queue. See the media workflow and quality follow-up for the current changes and verification limits. Updates are explicit operator actions; dependencies are maintained through reviewed release work.
Your host retains local accounts and observed viewer activity. Provider grants are encrypted with a separate installation key; keep an independent protected copy because database/asset backups exclude it. Source URLs are private credentials and can be revoked individually. Read data handling before inviting operators or exporting history.
Public examples use synthetic identities and reserved addresses. Keep environment files, databases, source URLs, raw provider payloads and screenshots containing credentials out of issues. KekBot stores what it observes; unavailable viewer counts and estimated watchtime are labeled honestly.
KekBot code and built-in themes are MIT licensed. Dependencies retain their own licenses; see the dependency inventory and supplemental notices. Operators are responsible for the rights to uploaded assets and requested media.