Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
V

vibebin

> AI 编程
Open source

vibebin: code and host inside Incus containers on your own VPS/server.

100 stars0 likes0 views
WebsiteGitHub

About

vibebin: code and host inside Incus containers on your own VPS/server.

vibebin

An Incus/LXC-based platform for self-hosting persistent AI coding agent sandboxes with Caddy reverse proxy and direct SSH routing to containers (suitable for VS Code remote ssh).

Create and host your vibe-coded apps on a single VPS/server.

Screenshots

Vibebin TUI Manager - Container detail view with quick actions:

AI Tools Admin Web App - Toggle AI coding tools on/off:

AI Tools Admin Web App - One-click update for all tools:

UPFRONT DISCLOSURE

This project is 99.9% vibe-coded on the exe.dev platform using their Shelley Web AI Coding Agent and Claude Opus 4.5. Take that as you will. Note that the above exe.dev URL is a referral link for a free 30 day trial if you register. If you convert to a paid plan, both you and I will receive a one-time $50 in extra Shelley credits.

With that said, I am a huge proponent of the exe.dev platform, and if you can, you should definitely try it out and use their service. The love and care for that project/service is extremely evident... AND it is incredibly awesome (and I think it's in its infancy stages, so should only get better).

WARNING

This is a very new project. Feel free to test and experiment but it's likely to have bugs and may not be ready for production. Use at your own risk.

What is this?

This project provides the infrastructure to self-host your own AI coding environment on virtually any Linux server -- a VPS, cloud VM (EC2, GCP, Azure), or dedicated hardware. Because it uses Incus/LXC (container-based virtualization rather than nested VMs), it runs efficiently on KVM, VMware, Xen, Hyper-V, and most other hypervisors.

Each container is a fully persistent Linux sandbox running Ubuntu 24.04 LTS (Noble) or Debian 13 (Trixie), with:

  • opencode, nanocode, Claude Code, and Shelley - AI coding agents with terminal and web UI interfaces
  • AI coding web UI accessible via HTTPS at code.yourdomain.com (Basic Auth protected)
  • AI Tools Admin web app at admin.code.yourdomain.com for managing AI coding tools
  • Your app/site accessible via HTTPS at yourdomain.com
  • SSH access for direct terminal access to your sandbox (VS Code Remote SSH compatible)
  • Persistent filesystem that survives container restarts
  • Pre-installed development tools: Docker, Go, Node.js, Bun, Deno, uv

Use Cases

  • AI-assisted development: Use opencode/nanocode/claude-code/shelley as your AI pair programmer with full system access
  • Vibe coding: Spin up isolated sandboxes for experimental projects
  • App/site hosting: Deploy and iterate on web applications
  • Learning environments: Safe, isolated Linux environments for experimentation
  • CI/CD sandboxes: Temporary or persistent build environments

Stack Overview

Component Purpose
Incus (LXC) Container runtime - lightweight, persistent Linux containers
Caddy Reverse proxy with automatic HTTPS (Let's Encrypt)
SSHPiper SSH routing - access any container via ssh -p 2222 container-name@host
SQLite Local database for container metadata (/var/lib/vibebin/containers.db)
Ubuntu/Debian Native Incus images (user choice during creation)
opencode Open source AI coding agent with terminal and web UI
nanocode NanoGPT-powered AI coding agent (fork of opencode)
shelley AI coding web agent from Bold Software
claude-code Anthropic's CLI coding agent

AI Coding Agents

This project installs opencode, nanocode, claude-code, and shelley in each container:

opencode

OpenCode is a 100% open source AI coding agent that works with multiple LLM providers:

  • Anthropic (Claude)
  • OpenAI (GPT)
  • Google (Gemini)
  • OpenCode Zen
  • Local models via custom endpoints

nanocode

NanoCode is a fork of OpenCode configured to work with NanoGPT as the default provider. It includes:

  • Automatic model loading from NanoGPT API
  • Built-in NanoGPT MCP server
  • Interleaved thinking for reasoning models

NanoGPT subscription is $8/month for 60,000 requests across all open models - an excellent value that works great with NanoCode.

Note: The nanocode web UI requires LLM configuration before it will work. SSH into the container and run nanocode (CLI mode) first to configure your LLM provider/API keys.

Disclosure: The NanoGPT link is an affiliate link.

claude-code

Claude Code is Anthropic's official CLI coding agent:

  • CLI only (no web UI)
  • Requires Anthropic API key (ANTHROPIC_API_KEY environment variable)
  • Supports Claude models with agentic coding capabilities
  • Run with claude command in terminal

Note: Claude Code is CLI-only and is not managed via the admin.code web UI. Use it directly in the terminal.

shelley

Shelley is a powerful AI web agent from Bold Software:

  • Web-based UI only (no CLI mode)
  • Support for multiple LLM providers via environment variables (Anthropic, OpenAI, Gemini, Fireworks)
  • Custom model configuration available within the web UI
  • Ctrl/Cmd-K to start a new conversation or add custom models
  • Runs on port 9999 like the other AI tools

Note: Before starting Shelley, add your API keys to ~/.shelley_env. Custom models can be configured in Shelley's web UI, but doing so switches to "custom model mode" and the env var models will no longer be shown.

All AI Coding tools support terminal/web UI modes with the exception of Shelley (web UI only) and Claude Code (CLI only). OpenCode, NanoCode, and Shelley support configuring LLM providers from within their web UIs.

Through the webUIs on OpenCode/NanoCode, adding NanoGPT as the provider is seamless! With Shelley, you just need to add a custom model and set it up with the same concept as shown here. See the NanoGPT integrations page for setting up NanoGPT with various coding agents.

Components

  • vibebin - Interactive TUI for container management
  • vibebin_sync_daemon - Background service for config synchronization (auto-heals Caddy routes on restart)
  • containers.db - SQLite database storing container metadata (at /var/lib/vibebin/containers.db)

Prerequisites

  • Fresh/minimal Linux installation: Ubuntu 22.04+ or Debian 12+ (amd64 or arm64)
  • VPS or VM: Works on most virtualization platforms (KVM, VMware, Xen, EC2, GCP, Azure, etc.)
  • Memory: Minimum 4GB RAM; 8GB+ recommended for best performance
  • Disk: Minimum 70GB; 100GB+ recommended for multiple containers and project data
  • Go 1.21+: Required to build the tools (see Quick Start for installation)
  • A domain name with DNS you control
  • A regular user with sudo access (avoid running as root)

Recommended VPS Providers

Any KVM-based VPS will work well with vibebin. Here are some recommended options:

HostBRR - Budget-friendly with excellent performance:

  • HostBRR Epyc Turin VPS - AMD Epyc Turin processors, great price/performance
  • HostBRR Threadripper Performance VPS - High-performance Threadripper line

Netcup - German provider with reliable infrastructure:

  • Netcup VPS - Recommend RS1000 (8GB RAM) or RS2000 (16GB RAM) for vibebin workloads

OVHcloud - Large European provider with competitive pricing:

  • OVHcloud VPS - Recommend 8GB or 12GB VPS; larger options (24GB, 48GB) available at excellent prices if needed

Oracle Cloud Infrastructure (OCI) - Free tier available:

  • OCI Always Free Resources - Includes free ARM-based VMs (up to 4 OCPUs, 24GB RAM) that work well with vibebin

Disclosure: The HostBRR and Netcup links above are affiliate links.

Security Setup (Before Installation)

Complete these security steps before installing vibebin.

SSH Hardening

Ensure your host SSH is properly secured in /etc/ssh/sshd_config:

PermitRootLogin no
PasswordAuthentication no

Restart SSH after changes: sudo systemctl restart sshd

UFW Firewall (Optional)

If you want to use UFW firewall, install and configure it with the required rules:

# Install UFW
sudo apt update && sudo apt install -y ufw

# Allow required ports (SSH must be allowed before enabling!)
sudo ufw allow 22/tcp      # Host SSH
sudo ufw allow 80/tcp      # HTTP (Caddy)
sudo ufw allow 443/tcp     # HTTPS (Caddy)
sudo ufw allow 2222/tcp    # SSHPiper (container SSH)

# Enable UFW
sudo ufw enable
sudo systemctl enable ufw

After the first vibebin run (which installs Incus), add the bridge rules for container networking:

# Allow Incus bridge traffic (run after vibebin installs Incus)
sudo ufw allow in on incusbr0
sudo ufw route allow in on incusbr0
sudo ufw route allow out on incusbr0

Note: UFW is enabled at boot automatically after ufw enable. Verify status with sudo ufw status verbose.

Fail2ban (Optional)

For additional protection against brute-force attacks, you can install fail2ban. By default, fail2ban protects the host SSH daemon (sshd). The docs/fail2ban.md guide extends this with Caddy and SSHPiper protection.

Note: Install fail2ban after the initial vibebin run so that Caddy and SSHPiper are already in place.

General Security

All administrative tasks should be performed as a regular user with sudo privileges, not as root directly.

Quick Start

1. Install Go (if not already installed)

# Install essential tools
sudo apt update && sudo apt install -y wget curl git jq htop tmux

# Ubuntu/Debian - install from official Go downloads
wget https://go.dev/dl/go1.23.5.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.23.5.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc

# Verify installation
go version

Note: For ARM64 systems, use go1.23.5.linux-arm64.tar.gz instead. Check https://go.dev/dl/ for the latest version.

2. Install vibebin (Recommended)

Use the install script for a one-liner install or upgrade:

curl -fsSL https://raw.githubusercontent.com/jgbrwn/vibebin/main/install-upgrade.sh | bash

The script automatically:

  • Clones and builds the project
  • Installs binaries to /usr/local/bin/
  • Detects fresh install vs upgrade
  • Handles the vibebin-sync service accordingly

Alternative: Build from Source

If you prefer to build manually:

# Clone and build
git clone https://github.com/jgbrwn/vibebin.git
cd vibebin
go build -o vibebin vibebin.go
go build -o vibebin_sync_daemon vibebin_sync_daemon.go

# Install binaries
sudo cp vibebin vibebin_sync_daemon /usr/local/bin/

3. Run First-Time Setup

# This auto-installs Incus, Caddy, and SSHPiper
sudo vibebin

4. Configure SSH (Required)

See the SSHPiper Manual Setup section below.

5. Create Your First Container

sudo vibebin

The creation wizard will guide you through:

  1. Enter domain name
  2. Select base image (Ubuntu or Debian)
  3. Configure DNS (optional auto-creation via Cloudflare/deSEC)
  4. Set

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Goai-codingcaddyservercloudcoding-assistant

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 18, 2026
CategoryAI 编程
PricingOpen source

> Related tools

G
GitHub Copilot
GitHub 官方 AI 编程助手,覆盖补全、Chat 与 Agent 模式。
C
Cursor
AI 原生代码编辑器,对话改代码、多文件 Agent 与规则体系是其核心。
S
skills
Skills for Real Engineers. Straight from my .agents directory.