See your PRs at a glance. Ampel brings traffic light simplicity to PR management across GitHub, GitLab, and Bitbucket.
Ampel (German for "traffic light") is a unified PR dashboard that consolidates pull requests from multiple Git providers into a single interface, using an intuitive traffic light system to show what's ready to merge, what's in progress, and what's blocked.
- π― Stop Context-Switching - No more jumping between GitHub, GitLab, and Bitbucket. Everything in one dashboard.
- β‘ Instant Visibility - Traffic light status (π’ Green = ready, π‘ Yellow = in progress, π΄ Red = blocked) cuts through the noise.
- π Production-Ready - Battle-tested observability stack with Prometheus metrics, Grafana dashboards, and comprehensive monitoring.
- π Self-Hosted & Secure - Deploy on your infrastructure with AES-256-GCM encrypted PAT storage. No data leaves your control.
- π€ Team-First Design - Organizations, teams, bulk merge operations, and health scores for managing repos at scale.
With Docker (fastest path to value):
git clone https://github.com/pacphi/ampel.git
cd ampel && cp .env.example .env
cd docker && docker compose up -dOpen http://localhost:3000 and connect your first repository.
That's it. You'll have a fully functional PR dashboard with monitoring stack in under 5 minutes.
- Unified Dashboard - GitHub, GitLab, and Bitbucket PRs in one view
- Traffic Light Status - Visual health indicators with CI integration
- Smart Filtering - Filter by provider, status, author, reviewer, labels, age
- Repository Health Scores - Track team velocity and identify bottlenecks
- Multitenancy - Organizations and teams with role-based access control
- Multi-Language Support - 27 languages with RTL support (Arabic, Hebrew) and automatic detection
- Bulk Merge Operations - Merge multiple approved PRs with progress tracking
- Team Organization - Group repos by team, customize dashboards
- Bot PR Rules - Separate Dependabot/Renovate PRs with auto-merge support
- Analytics & Reporting - PR cycle time, review turnaround, team velocity trends
- Production Monitoring - Prometheus metrics, Grafana dashboards, distributed tracing
- Language Persistence - User language preference saved to account and synced across devices
View complete feature matrix β
First-time setup and quick wins:
- Getting Started Guide - Installation, configuration, first repository
- PAT Setup Guide - Configure GitHub, GitLab, Bitbucket Personal Access Tokens
- Docker Quick Start - Run Ampel with Docker in 3 commands
- Makefile Guide - Complete reference of all available commands
Deep-dive into what Ampel can do:
- Product Specification - Complete feature matrix with implementation status
- Multitenancy - Organizations, teams, and access control
- Bulk Merge Operations - Merge multiple PRs with progress tracking
- Health Scores - Repository health scoring and trend analysis
Multi-language support (27 languages with RTL support):
- Multi-language UI with 27 supported languages
- RTL (right-to-left) support for Arabic, Hebrew, Persian, and Urdu
- Automatic locale detection from browser settings
- Language switcher in user settings
Developer Tools:
- ampel-i18n-builder - Translation management CLI
- Extract translatable strings from TypeScript/React and Rust code
- Refactor code to automatically replace hardcoded strings with i18n calls
- Translate with 4-tier provider architecture (Systran β DeepL β Google β OpenAI)
- Generate TypeScript/Rust type definitions from translations
- Validate translation coverage and consistency
System design and contributing:
- Architecture Overview - System design, crate structure, database models
- Development Guide - Local development setup and workflow
- Contributing Guide - How to contribute to Ampel
Comprehensive testing documentation:
- Testing Overview - Testing strategy and quick reference
- Backend Testing - Rust unit and integration tests (PostgreSQL/SQLite)
- Frontend Testing - React component testing with Vitest
- CI Workflows - GitHub Actions CI pipeline guide
- Coverage Tracking - Code coverage goals and reporting
- Worker Testing - Background job test patterns
Production monitoring and troubleshooting:
- Observability Overview - Start here - Complete observability guide
- Quick Start (5 min) - Get monitoring running locally
- Monitoring Guide - Prometheus, Grafana, alerting setup
- Metrics Catalog - All available metrics with usage examples
- Prometheus Guide - Prometheus configuration and PromQL queries
- Grafana Dashboards - Dashboard creation and visualization
- API Endpoints - Health checks and metrics endpoints
- Troubleshooting - Common issues and solutions
Production deployment guides:
- Fly.io Deployment - Deploy to Fly.io with native monitoring
- Docker Deployment - Self-hosted Docker setup
- Operations Runbook - Production operations guide
- Secrets Management - Environment variables and secrets
- Release Process - How to cut a release
Built with a modern, performant stack designed for production workloads:
- Backend: Rust 1.92+ with Axum (REST API), SeaORM (database), Apalis (background jobs)
- Frontend: React 19 + TypeScript, Vite, TanStack Query, shadcn/ui, Tailwind CSS
- Database: PostgreSQL 16 for data, Redis 7 for caching
- Observability: Prometheus metrics, Grafana dashboards, OpenTelemetry tracing
- Deployment: Docker, Fly.io, self-hosted options
Current Release: MVP Complete (87% of planned features)
What's Working Today:
- β Multi-provider PR aggregation (GitHub, GitLab, Bitbucket)
- β Traffic light status with CI integration
- β Team management and collaboration
- β Bulk merge operations with progress tracking
- β Health scoring and analytics
- β Production-ready observability stack
In Progress:
- π§ Notification workers (Slack, email)
- π§ Bot filtering frontend UI
- π§ Export functionality (CSV/PDF)
View detailed implementation status β
We welcome contributions! Whether you're fixing a bug, adding a feature, or improving documentation, your help makes Ampel better.
Get Started:
- Read the Contributing Guide
- Check the Development Guide for setup
- Browse open issues or propose a new feature
- Submit a pull request
MIT License β see LICENSE for details.
Built with π¦ by the Ampel team