Try describing what you need:

Vibe Kanban logo

Vibe Kanban

★ 28.5k

A self-hosted alternative to Conductor

Apache License 2.0Open Source — No Paywall6 Containers — 6 containers — moderate hosting footprintPackage · SourceNeeds PostgresTelemetry: Opt-Out19+ active committers (12mo)

About

Vibe Kanban is a self-hostable kanban-style workspace designed to help software teams plan and review work done by coding agents. It is aimed at developers who use tools like Claude Code, Gemini CLI,...

Community Ratings

No ratings yet
Overview screenshotWorkspace screenshot

Features

  • kanban issue planning
  • agent workspaces with branch/terminal/dev server
  • diff review and inline comments
  • built-in browser preview with devtools and device emulation
  • switching between 10+ coding agents
  • pull request creation and merging
  • remote SSH editor integration
  • reverse proxy/custom domain support
  • relay tunnel mode

Details

Last Updated
Oct 28, 2026
Created
Jun 14, 2025
Install Methods
package-managersource
Requirements
RustNode.js >=20pnpm >=8Git worktreePostHog analytics API key/endpoint (optional build-time configuration)SSH access for remote editor integration
Authentication
local
API
REST
Backup & Export
file-backup
Privacy & Independence
Telemetry: Opt-outCloud: Optional
User Model
Multi-User
Deployment

Deployment: Docker Compose ✓6 Containers — moderate hosting footprintRuns as 6 containers

Run Vibe Kanban with Docker Compose

Compose file from the Vibe Kanban project repository.

6 services · database: postgres · infra: postgres · 3 unclassified (azurite, azure-cli, electric)

no resource limits declared

needs persistent storage (3 volumes)

crates/remote/docker-compose.yml · @ 7c38070 · scanned Oct 28, 2026

# Self-hosting: set PUBLIC_BASE_URL to your public URL (e.g. https://kanban.example.com)
# and REMOTE_SERVER_PORTS=0.0.0.0:3000:8081 so the server is reachable from other hosts.
services:
  remote-db:
    image: postgres:16-alpine
    command: [ "postgres", "-c", "wal_level=logical" ]
    environment:
      POSTGRES_DB: remote
      POSTGRES_USER: remote
      POSTGRES_PASSWORD: remote
    volumes:
      - remote-db-data:/var/lib/postgresql/data
    healthcheck:
      test: [ "CMD-SHELL", "pg_isready -U remote -d remote" ]
      interval: 5s
      timeout: 5s
      retries: 5
      start_period: 5s
    ports:
      - "5433:5432"

  azurite:
    profiles: ["attachments"]
    image: mcr.microsoft.com/azure-storage/azurite:latest
    command: "azurite-blob --blobHost 0.0.0.0 --blobPort 10000 --loose --skipApiVersionCheck"
    ports:
      - "10000:10000"
    volumes:
      - azurite-data:/data
    healthcheck:
      test: nc 127.0.0.1 10000 -z
      interval: 1s
      retries: 30

  azurite-init:
    profiles: ["attachments"]
    image: mcr.microsoft.com/azure-cli:latest
    depends_on:
      azurite:
        condition: service_healthy
    environment:
      AZURE_STORAGE_CONNECTION_STRING: "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://azurite:10000/devstoreaccount1;"
    entrypoint: /bin/sh
    command:
      - -c
      - |
        set -e
        az storage container create --name issue-attachments 2>/dev/null || true
        az storage cors add --services b --methods GET PUT POST DELETE OPTIONS --origins '*' --allowed-headers '*' --exposed-headers '*' --max-age 3600
        echo "Azurite CORS configured"

  electric:
    image: electricsql/electric:1.4.13
    working_dir: /app
    restart: on-failure
    environment:
      DATABASE_URL: postgresql://electric_sync:${ELECTRIC_ROLE_PASSWORD:-remote}@remote-db:5432/remote?sslmode=disable
      PG_PROXY_PORT: 65432
      LOGICAL_PUBLISHER_HOST: electric
      AUTH_MODE: insecure
      ELECTRIC_INSECURE: true
      ELECTRIC_MANUAL_TABLE_PUBLISHING: true
      ELECTRIC_USAGE_REPORTING: false
      ELECTRIC_FEATURE_FLAGS: allow_subqueries,tagged_subqueries
    volumes:
      - electric-data:/app/persistent
    depends_on:
      remote-db:
        condition: service_healthy
      remote-server:
        condition: service_healthy

  remote-server:
    build:
      context: ../..
      dockerfile: crates/remote/Dockerfile
      args:
        # Build-time image/frontend args.
        FEATURES: ${FEATURES:-}
        POSTHOG_API_KEY: ${POSTHOG_API_KEY:-}
        POSTHOG_API_ENDPOINT: ${POSTHOG_API_ENDPOINT:-}
        SENTRY_DSN_REMOTE: ${SENTRY_DSN_REMOTE:-}
        VITE_RELAY_API_BASE_URL: ${VITE_RELAY_API_BASE_URL:-http://localhost:8082}
        VITE_PUBLIC_REACT_VIRTUOSO_LICENSE_KEY: ${VITE_PUBLIC_REACT_VIRTUOSO_LICENSE_KEY:-}
      ssh:
        - default
    depends_on:
      remote-db:
        condition: service_healthy
      azurite-init:
        condition: service_completed_successfully
        required: false
    environment:
      RUST_LOG: info,remote=info

      # Core runtime
      SERVER_DATABASE_URL: postgres://remote:remote@remote-db:5432/remote
      SERVER_LISTEN_ADDR: 0.0.0.0:8081
      ELECTRIC_URL: http://electric:3000
      ELECTRIC_ROLE_PASSWORD: ${ELECTRIC_ROLE_PASSWORD:-remote}
      SERVER_PUBLIC_BASE_URL: ${PUBLIC_BASE_URL:-http://localhost:3000}
      VIBEKANBAN_REMOTE_JWT_SECRET: ${VIBEKANBAN_REMOTE_JWT_SECRET:?set in .env.remote}

      # Auth 
      # Configure at least one OAuth provider, or set self-host local auth credentials.
      GITHUB_OAUTH_CLIENT_ID: ${GITHUB_OAUTH_CLIENT_ID:-}
      GITHUB_OAUTH_CLIENT_SECRET: ${GITHUB_OAUTH_CLIENT_SECRET:-}
      GOOGLE_OAUTH_CLIENT_ID: ${GOOGLE_OAUTH_CLIENT_ID:-}
      GOOGLE_OAUTH_CLIENT_SECRET: ${GOOGLE_OAUTH_CLIENT_SECRET:-}
      # Self-hosted local auth 
      SELF_HOST_LOCAL_AUTH_EMAIL: ${SELF_HOST_LOCAL_AUTH_EMAIL:-}
      SELF_HOST_LOCAL_AUTH_PASSWORD: ${SELF_HOST_LOCAL_AUTH_PASSWORD:-}

      # Email / notifications (optional)
      LOOPS_EMAIL_API_KEY: ${LOOPS_EMAIL_API_KEY:-}
      # Loops transactional email template IDs (override with your own Loops account templates)
      LOOPS_INVITE_TEMPLATE_ID: ${LOOPS_INVITE_TEMPLATE_ID:-cmhvy2wgs3s13z70i1pxakij9}
      LOOPS_REVIEW_READY_TEMPLATE_ID: ${LOOPS_REVIEW_READY_TEMPLATE_ID:-cmj47k5ge16990iylued9by17}
      LOOPS_REVIEW_FAILED_TEMPLATE_ID: ${LOOPS_REVIEW_FAILED_TEMPLATE_ID:-cmj49ougk1c8s0iznavijdqpo}
      DIGEST_ENABLED: ${DIGEST_ENABLED:-false}

      # Review worker / artifact storage (optional)
      R2_ACCESS_KEY_ID: ${R2_ACCESS_KEY_ID:-}
      R2_SECRET_ACCESS_KEY: ${R2_SECRET_ACCESS_KEY:-}
      R2_REVIEW_ENDPOINT: ${R2_REVIEW_ENDPOINT:-}
      R2_REVIEW_BUCKET: ${R2_REVIEW_BUCKET:-}
      REVIEW_WORKER_BASE_URL: ${REVIEW_WORKER_BASE_URL:-}

      # GitHub App integration (optional)
      GITHUB_APP_ID: ${GITHUB_APP_ID:-}
      GITHUB_APP_PRIVATE_KEY: ${GITHUB_APP_PRIVATE_KEY:-}
      GITHUB_APP_WEBHOOK_SECRET: ${GITHUB_APP_WEBHOOK_SECRET:-}
      GITHUB_APP_SLUG: ${GITHUB_APP_SLUG:-}

      # Billing (optional)
      STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY:-}
      STRIPE_TEAM_SEAT_PRICE_ID: ${STRIPE_TEAM_SEAT_PRICE_ID:-}
      STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET:-}
      STRIPE_FREE_SEAT_LIMIT: ${STRIPE_FREE_SEAT_LIMIT:-1}

      # Attachments (optional)
      # Only set these when enabling the attachments profile or using external blob storage.
      AZURE_STORAGE_ACCOUNT_NAME:
      AZURE_STORAGE_ACCOUNT_KEY:
      AZURE_STORAGE_CONTAINER_NAME:
      AZURE_STORAGE_ENDPOINT_URL:
      AZURE_STORAGE_PUBLIC_ENDPOINT_URL:

    ports:
      - "${REMOTE_SERVER_PORTS:-127.0.0.1:3000:8081}"
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:8081/v1/health"]
      interval: 5s
      timeout: 5s
      retries: 10
      start_period: 10s

  relay-server:
    profiles: ["relay"]
    build:
      context: ../..
      dockerfile: crates/relay-tunnel/Dockerfile
    depends_on:
      remote-db:
        condition: service_healthy
    environment:
      RUST_LOG: info
      SERVER_DATABASE_URL: postgres://remote:remote@remote-db:5432/remote
      RELAY_LISTEN_ADDR: 0.0.0.0:8082
      VIBEKANBAN_REMOTE_JWT_SECRET: ${VIBEKANBAN_REMOTE_JWT_SECRET:?set in .env.remote}
    ports:
      - "127.0.0.1:8082:8082"
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:8082/health"]
      interval: 5s
      timeout: 5s
      retries: 10
      start_period: 10s

volumes:
  remote-db-data:
  electric-data:
  azurite-data:

This file may be out of date. Check the Vibe Kanban documentation for current setup steps.

Track your self-hosted stack

Bookmark software to try, rate tools you've used, and keep your collection in one place.

Metadata extracted from README on Oct 28, 2026

Alternatives to Vibe Kanban

Codeman logo

Codeman

820
Codeman is a self-hosted dashboard for managing AI coding agents in persistent terminal sessions, with live web access, mobile-friendly controls, and background automation.
AI Coding AssistantAI AgentsAutomation Tools+2
Single Container
Details
ouijit logo

ouijit

177
Ouijit is a customizable task and terminal session manager for agentic development workflows, with lifecycle hooks, scripts, worktree management, and VM sandboxing.
Task RunnersAI Coding AssistantAI Agents
Details
Backlog.md logo

Backlog.md

7.2k
Markdown-native task manager and Kanban visualizer for any Git repository.
Artificial IntelligenceAI ToolingPermissive License+3
Details
Taiga logo

Taiga

Agile Project Management Tool based on the Kanban and Scrum methods.
Dev Project ManagementTask ManagementSelf Hosting Solutions+1
Details
Paca logo

Paca

2.0k
AI-native project management platform where AI agents and humans collaborate as Scrum teammates on the same board and sprints. Configurable via config files and WASM plugins (alternative to Jira, Trello, ClickUp and Monday).
Dev Project Management
Details

Related Software

openrig logo

openrig

8.3k
OpenRig is a CLI tool for defining, launching, and managing a team of AI coding agents in a persistent shared rig.
AI AgentsAI Coding AssistantAI Harness+1
Details
OpenHands logo

OpenHands

92.0k
An AI-driven development platform with a software agent SDK, CLI, local GUI, and hosted cloud offering.
Artificial IntelligenceAI Coding AssistantAI Agents+2
Single ContainerOpen Core
Details
OneDev logo

OneDev

15.3k
All-In-One DevOps Platform. With Git Management, Issue Tracking, and CI/CD. Simple yet Powerful.
Dev Project ManagementPermissive LicenseAutomation Tools+1
Details
Coder logo

Coder

17.2k
Coder is a self-hosted platform for cloud development environments and AI coding agents.
IDE ToolsPlatform as a ServiceRemote Access+1
Open Core
Details
Claude Code logo

Claude Code

153.6k
Claude Code is an agentic coding tool that runs in the terminal and helps with coding tasks, code explanation, and git workflows using natural language commands.
Artificial IntelligenceAI Coding AssistantAI Harness+2
Cloud Required
Details
GitLab logo

GitLab

7.2k
Self Hosted Git repository management, code reviews, issue tracking, activity feeds and wikis.
Dev Project ManagementWikisAutomation Tools+5
Open Core
Details
Aider logo

Aider

49.8k
AI pair programming tool for working with large language models directly in the terminal.
Artificial IntelligenceAI Coding AssistantPermissive License+1
Details
runtm logo

runtm

302
Runtm is an open-source platform for spinning up isolated sandboxes where coding agents can build, test, and deploy software.
Self Hosting SolutionsAI AgentsAI Tooling+1
4 Containers
Details
machtiani logo

machtiani

191
Machtiani (mct) is a terminal-based local code chat service for working with large real codebases and syncing project history for context-aware answers.
Artificial IntelligenceAI Coding AssistantAI Agents+3
Details
oh-my-pi logo

oh-my-pi

36.9k
A coding agent with the IDE wired in.
AI Coding AssistantAI AgentsModel Context Protocol+1
2 Containers
Details
Rukovoditel logo

Rukovoditel

Configurable open source project management, web-based application.
Dev Project ManagementCopyleft LicenseTask Management+2
Details
collie logo

collie

1.5k
ColliePWA is a self-hosted mobile PWA for driving terminal AI agents like Claude Code, Codex, and OpenCode from a phone.
Mobile terminalsSelf Hosting SolutionsRemote Access+3
Details