feat(vibe-kanban): add Ansible role for unified config management (Vibe Kanban)#143
Open
feat(vibe-kanban): add Ansible role for unified config management (Vibe Kanban)#143
Conversation
---
## Summary: Vibe-Kanban Ansible Role
### Files Created
```
roles/vibe-kanban/
├── defaults/main.yml # Default configuration variables
├── tasks/
│ ├── main.yml # Cross-platform config deployment
│ ├── Ubuntu.yml # Linux systemd service (optional)
│ └── MacOSX.yml # macOS launchd service (optional)
└── templates/
├── config.json.j2 # Vibe-kanban app config
├── vibe-kanban.service.j2 # systemd service unit
└── com.vibekanban.plist.j2 # launchd plist
```
### Files Modified
| File | Change |
|------|--------|
| `group_vars/all.yml` | Added `vibe-kanban` to `default_roles` + config vars |
| `roles/claude/tasks/main.yml` | Added MCP server config (using `bunx`) |
### Configuration in `group_vars/all.yml`
```yaml
vibe_kanban:
theme: "DARK"
executor:
type: "CLAUDE_CODE"
variant: "OPUS"
editor:
type: "CUSTOM"
custom_command: "nvim"
git:
branch_prefix: "vk"
# ... more options
server:
enabled: false # Set true for remote hosting
port: 8080
host: "127.0.0.1" # Change to 0.0.0.0 for remote
```
### MCP Server Config (managed by claude role)
Added to `~/.claude.json`:
```json
{
"mcpServers": {
"vibe_kanban": {
"command": "bunx",
"args": ["vibe-kanban@latest", "--mcp"]
}
}
}
```
---
## Remote Hosting Guide
To host vibe-kanban on a VM accessible via HTTPS:
### 1. Update `group_vars/all.yml` for the server:
```yaml
vibe_kanban:
server:
enabled: true
port: 8080
host: "0.0.0.0"
editor:
remote_ssh_host: "your-server.example.com"
remote_ssh_user: "techdufus"
```
### 2. Add reverse proxy (nginx example):
```nginx
server {
listen 443 ssl http2;
server_name kanban.example.com;
ssl_certificate /etc/letsencrypt/live/kanban.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/kanban.example.com/privkey.pem;
# Basic auth or use Cloudflare Access / Tailscale
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
### 3. Deploy and start:
```bash
dotfiles -t vibe-kanban
systemctl --user enable --now vibe-kanban
```
### Important Note on MCP Integration
The MCP server (`bunx vibe-kanban --mcp`) runs **locally** on each device via Claude Code's stdio interface. The remote web UI is for viewing/managing tasks, but the MCP integration with Claude Code requires a local process. This is by design for security - Claude Code spawns MCP servers as subprocesses.
…task will correctly detect it and skip the add step. The simplified approach works well.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
vibe-kanbanAnsible role for cross-platform configuration managementclauderole usingclaude mcp addCLIWhat is Vibe Kanban?
Vibe Kanban is a local-first project/task management tool for AI coding agents (Claude Code, Gemini CLI, Codex, etc.). This role enables unified configuration across all devices managed by these dotfiles.
Changes Made
New Role:
roles/vibe-kanban/defaults/main.ymltasks/main.ymltasks/Ubuntu.ymltasks/MacOSX.ymltemplates/config.json.j2templates/vibe-kanban.service.j2templates/com.vibekanban.plist.j2Claude Role Updates
Added idempotent MCP server configuration using the official Claude CLI:
Configuration Variables
New
vibe_kanbansection ingroup_vars/all.yml:Remote Hosting Support
The role supports running vibe-kanban as a service for remote access:
vibe_kanban.server.enabled: trueandhost: "0.0.0.0"dotfiles -t vibe-kanbanImplementation Details
bunxinstead ofnpxfor faster startupclaude mcp getto check before adding, preventing duplicatesThis PR was written using Vibe Kanban