Skip to content

codecoradev/rungu

Repository files navigation

Rungu

Rungu — Listen. Prioritize. Build.

Lightweight, self-hosted feedback board. Collect feature requests, bug reports, and suggestions from your users — with voting, commenting, and prioritization. Built with Rust + SvelteKit.

Features

  • Multi-provider auth — Google, GitHub, Keycloak (ENV-driven, mix-and-match)
  • Email-based identity — same email across providers = one user
  • Vote & comment — upvote the features you want
  • Image attachments — screenshots and mockups on posts (PNG/JPEG/WebP/GIF, max 10MB)
  • Categories & status — feedback, bug, feature, question → open, planned, in progress, done
  • Full-text search — FTS5-powered search across all posts
  • Dark mode — light/dark/system theme toggle
  • Keyboard shortcuts — full board navigation without a mouse
  • MCP server — 15 AI agent tools for Claude Code, Cursor, Windsurf
  • REST API — full CRUD for posts, votes, comments, attachments
  • Dual database — SQLite (default) or PostgreSQL via DATABASE_URL
  • Single binary — embedded SPA, Docker ready

Quick Start

# Docker (recommended)
docker compose up -d
# → Frontend: http://localhost:3000
# → Swagger:  http://localhost:3000/swagger-ui

# Or build from source
cargo build --release
./target/release/rungu --db rungu.db serve --listen 0.0.0.0:3000

# Create your first project
./target/release/rungu --db rungu.db project-add "My App" --slug myapp

Local Development (HTTP without HTTPS)

# .env
RUNGU_SECURE_COOKIE=false    # allow login over plain HTTP
APP_URL=http://localhost:3000

Configuration

# Copy .env.example to .env
cp .env.example .env

# Configure auth providers (leave empty to disable)
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-secret
GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-secret
KEYCLOAK_URL=https://auth.example.com
KEYCLOAK_REALM=codecoradev
KEYCLOAK_CLIENT_ID=rungu
KEYCLOAK_CLIENT_SECRET=your-keycloak-secret

Architecture

Crate Purpose
rungu-proto Wire types (Post, Vote, Comment, User, Project)
rungu-core Storage, business logic, SQLite queries
rungu-auth Multi-provider OAuth + JWT session
rungu-api REST API routes (Axum)
rungu-mcp MCP server (stdio JSON-RPC 2.0)
rungud Daemon binary (CLI: rungu)

CLI

rungu serve --db rungu.db --listen 0.0.0.0:3000
rungu project-add "My App" --slug myapp
rungu project-list
rungu healthcheck
rungu mcp

See CLI Reference for full options.

MCP Tools

⚠️ Experimental — tool handlers return stub data. Full implementation tracked in #28.

12 tools available via stdio for AI coding agents:

  • list_projects, get_project
  • list_posts, get_post, create_post, update_post_status
  • vote_post, search_posts
  • list_comments, add_comment
  • get_stats, get_trending

License

Apache-2.0

About

Rungu — lightweight self-hosted feedback board. Collect feature requests, bug reports, and suggestions with voting, commenting, and prioritization. Rust + SvelteKit.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors