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 into your server

ssh root@YOUR_SERVER_IP

Update system packages

apt update && apt upgrade -y
apt install -y curl wget git ufw

Install Docker

Install Docker Engine

# 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 --version

Configure Firewall

Set up UFW

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

Create data directory

mkdir -p /opt/tabby/data

Create /opt/tabby/docker-compose.yml

version: '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

Start Tabby

cd /opt/tabby
docker compose up -d

# Monitor first launch (model download may take several minutes)
docker compose logs -f tabby

Wait 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

Swap models

# 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 startup

IDE Extension Setup

VS Code

  1. Open Extensions marketplace → search "Tabby" → install by TabbyML
  2. Settings (Ctrl+,) → search "Tabby" → set Server Endpoint to http://YOUR_SERVER_IP:8080
  3. Status bar shows a Tabby icon when connected — start typing to see suggestions

JetBrains IDEs

  1. Settings → Plugins → Marketplace → search "Tabby" → install and restart
  2. Settings → Tools → Tabby → enter server endpoint URL

Vim / Neovim

vim-plug setup

" 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

  1. Log in to the admin dashboard at http://YOUR_SERVER_IP:8080
  2. Navigate to Repositories → add Git URLs (GitHub, GitLab, or self-hosted)
  3. Tabby clones and indexes repositories in the background

Via Configuration File

/opt/tabby/data/config.toml

[[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"

Trigger indexing

docker exec tabby /opt/tabby/bin/tabby-cpu scheduler --now

Optional: HTTPS with Caddy

Install 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 caddy

Create /etc/caddy/Caddyfile

tabby.yourdomain.com {
    reverse_proxy localhost:8080
}

Enable and open firewall

systemctl reload caddy

ufw allow 443/tcp
ufw allow 80/tcp

Caddy automatically obtains and renews Let's Encrypt certificates. Update your IDE extensions to use https://tabby.yourdomain.com.

Maintenance & Performance Tuning

Update Tabby

Pull latest version

cd /opt/tabby
docker compose pull
docker compose down
docker compose up -d

Backup Strategy

Daily compressed backup

tar czf /backups/tabby-$(date +%F).tar.gz /opt/tabby/data

Monitoring

Check health and resources

# Container status
docker compose ps

# Live logs
docker compose logs -f tabby

# Resource usage
docker stats tabby

Performance Tuning

Parallelism: Add --parallelism 4 to the serve command to handle concurrent requests (match to your vCPU count).

Add swap space (recommended for larger models)

fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile none swap sw 0 0" >> /etc/fstab

Troubleshooting

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:

Pre-download model

docker run --rm -v /opt/tabby/data:/data \
  --entrypoint /opt/tabby/bin/tabby-cpu \
  registry.tabbyml.com/tabbyml/tabby \
  download --model StarCoder-1B

Quick 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

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.