What Tabby Offers
- Code Completion: Real-time, context-aware suggestions supporting 80+ languages
- Answer Engine: Integrated Q&A that understands your codebase and docs
- Inline Chat: AI assistant inside your editor for refactoring, explanations, and reviews
- Repository Context: Connect Git repos for more relevant suggestions
- Multi-IDE Support: VS Code, JetBrains, Vim/Neovim, and Emacs
- Enterprise Features: Team management, SSO, usage analytics, and audit logging
Prerequisites & VPS Sizing
Requirements
- RamNode Account — up to $500 in annual credits for new accounts
- SSH client (Terminal, PuTTY, or Windows Terminal)
- Domain name (optional) — e.g. tabby.yourdomain.com for HTTPS
- IDE: VS Code, JetBrains, Vim/Neovim, or Emacs
Model Size → VPS Plan
| Model Size | Min RAM | Min CPU | Recommended Plan |
|---|---|---|---|
| 0.5B – 1.5B | 4 GB | 2 vCPUs | Premium KVM 4GB ($24/mo) |
| 3B | 8 GB | 4 vCPUs | Premium KVM 8GB ($48/mo) |
| 7B | 16 GB | 4+ vCPUs | Premium KVM 16GB ($96/mo) |
| 13B – 14B | 32 GB | 8 vCPUs | Premium KVM 32GB ($192/mo) |
💡 Cost Savings: New RamNode accounts receive up to $500 in annual credits. A Premium KVM 8GB plan running a 3B model provides excellent quality for small-to-medium teams and is fully covered by credits for over a year.
Provision & Prepare Your VPS
Provision an Ubuntu 22.04 or 24.04 LTS VPS from RamNode, then SSH in:
ssh root@YOUR_SERVER_IPapt update && apt upgrade -y
apt install -y curl wget git ufwInstall Docker
# Add Docker's official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Add the Docker repository
echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list
# Install Docker Engine
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Verify installation
docker --versionConfigure Firewall
ufw allow OpenSSH
ufw allow 8080/tcp
ufw enable💡 HTTPS: If exposing Tabby publicly, place it behind a reverse proxy with TLS. See the HTTPS with Caddy section below.
Deploy with Docker Compose
mkdir -p /opt/tabby/dataversion: '3.5'
services:
tabby:
image: registry.tabbyml.com/tabbyml/tabby
container_name: tabby
restart: always
command: >
serve
--model StarCoder-1B
--chat-model Qwen2-1.5B-Instruct
--device cpu
volumes:
- "/opt/tabby/data:/data"
ports:
- "8080:8080"
environment:
- TABBY_WEBSERVER_JWT_TOKEN_SECRET=CHANGE_ME_TO_RANDOM_STRING⚠️ Security: Replace CHANGE_ME_TO_RANDOM_STRING with a strong secret. Generate one with: openssl rand -hex 32
cd /opt/tabby
docker compose up -d
# Monitor first launch (model download may take several minutes)
docker compose logs -f tabbyWait until you see a message indicating the server is listening on port 8080.
Initial Admin Setup
Open your browser and navigate to http://YOUR_SERVER_IP:8080. On first access, Tabby will prompt you to create an admin account. Complete the registration to access the admin dashboard where you can manage users, configure repository context, and monitor usage statistics.
Model Selection Guide
Completion Models
Real-time code suggestions as you type:
| Model | Size | Best For | License |
|---|---|---|---|
| Qwen2.5-Coder-1.5B | 1.5B | Low-resource deployments | Apache 2.0 |
| StarCoder2-3B | 3B | Balanced quality/speed | BigCode-OpenRAIL-M |
| Qwen2.5-Coder-7B | 7B | High-quality completions | Apache 2.0 |
| DeepSeekCoder-6.7B | 6.7B | Python/JS focused | Deepseek License |
| CodeLlama-13B | 13B | Maximum quality (high RAM) | Llama 2 |
Chat Models
Power the Answer Engine and inline chat:
| Model | Size | Notes | License |
|---|---|---|---|
| Qwen2-1.5B-Instruct | 1.5B | Lightweight default | Apache 2.0 |
| Qwen2.5-Coder-7B-Instruct | 7B | Code-specialized chat | Apache 2.0 |
| Qwen3-8B | 8B | Latest generation quality | Apache 2.0 |
| CodeGemma-7B-Instruct | 7B | Google's code model | Gemma License |
# Update --model and --chat-model in docker-compose.yml, then:
cd /opt/tabby
docker compose down && docker compose up -d
# Tabby will automatically download the new model on startupIDE Extension Setup
VS Code
- Open Extensions marketplace → search "Tabby" → install by TabbyML
- Settings (Ctrl+,) → search "Tabby" → set Server Endpoint to
http://YOUR_SERVER_IP:8080 - Status bar shows a Tabby icon when connected — start typing to see suggestions
JetBrains IDEs
- Settings → Plugins → Marketplace → search "Tabby" → install and restart
- Settings → Tools → Tabby → enter server endpoint URL
Vim / Neovim
" Add to your plugin manager
Plug 'TabbyML/vim-tabby'
" Configure endpoint in vimrc or init.lua
let g:tabby_server_url = 'http://YOUR_SERVER_IP:8080'Configure Repository Context
Tabby can index your Git repositories for more contextually relevant completions — one of its most powerful features for teams.
Via Admin UI
- Log in to the admin dashboard at
http://YOUR_SERVER_IP:8080 - Navigate to Repositories → add Git URLs (GitHub, GitLab, or self-hosted)
- Tabby clones and indexes repositories in the background
Via Configuration File
[[repositories]]
name = "my-project"
git_url = "https://github.com/your-org/your-repo.git"
[[repositories]]
name = "internal-api"
git_url = "https://git.yourdomain.com/team/internal-api.git"docker exec tabby /opt/tabby/bin/tabby-cpu scheduler --nowOptional: HTTPS with Caddy
apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf https://dl.cloudsmith.io/public/caddy/stable/gpg.key \
| gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt \
| tee /etc/apt/sources.list.d/caddy-stable.list
apt update && apt install -y caddytabby.yourdomain.com {
reverse_proxy localhost:8080
}systemctl reload caddy
ufw allow 443/tcp
ufw allow 80/tcpCaddy automatically obtains and renews Let's Encrypt certificates. Update your IDE extensions to use https://tabby.yourdomain.com.
Maintenance & Performance Tuning
Update Tabby
cd /opt/tabby
docker compose pull
docker compose down
docker compose up -dBackup Strategy
tar czf /backups/tabby-$(date +%F).tar.gz /opt/tabby/dataMonitoring
# Container status
docker compose ps
# Live logs
docker compose logs -f tabby
# Resource usage
docker stats tabbyPerformance Tuning
Parallelism: Add --parallelism 4 to the serve command to handle concurrent requests (match to your vCPU count).
fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile none swap sw 0 0" >> /etc/fstabTroubleshooting
Container Fails to Start (OOM)
Your VPS may lack RAM for the selected model. Try a smaller model (e.g., StarCoder-1B) or upgrade your plan.
Slow Completions (>2–3 seconds)
Model too large for CPU. Switch to a smaller model, stop competing processes, and check swap usage with free -h.
IDE Cannot Connect
Verify container is running (docker compose ps), port 8080 is open (ufw status), and you can reach the web UI in a browser.
Model Download Fails
Pre-download the model before starting:
docker run --rm -v /opt/tabby/data:/data \
--entrypoint /opt/tabby/bin/tabby-cpu \
registry.tabbyml.com/tabbyml/tabby \
download --model StarCoder-1BQuick Reference
Essential Commands
| Action | Command |
|---|---|
| Start Tabby | docker compose up -d |
| Stop Tabby | docker compose down |
| View logs | docker compose logs -f tabby |
| Update | docker compose pull && docker compose up -d |
| Check status | docker compose ps |
| Monitor resources | docker stats tabby |
| Index repos | docker exec tabby /opt/tabby/bin/tabby-cpu scheduler --now |
Key URLs
- Web UI:
http://YOUR_SERVER_IP:8080 - API Docs:
http://YOUR_SERVER_IP:8080/swagger-ui - Health Check:
http://YOUR_SERVER_IP:8080/v1/health - Tabby Docs: tabby.tabbyml.com/docs
- Model Registry: tabby.tabbyml.com/docs/models
Tabby Deployed Successfully!
Your self-hosted AI coding assistant is now running. Connect your IDE and enjoy private, context-aware code completions powered by your own infrastructure.
