跳转至

Tabby 自托管代码补全服务

一句话概述

Tabby 是一个开源的自托管 AI 编码助手,作为 GitHub Copilot 的替代品,可以在自己的服务器上运行代码补全服务,支持私有代码仓库索引,数据完全不出网,RTX 4090 可支持约 20 名开发者并发使用。

核心知识点表格

知识点说明
项目地址https://github.com/TabbyML/tabby
最新版本v0.24.0(2025年2月)
GitHub Stars32,200+
核心功能代码补全、代码问答、私有仓库索引
支持 IDEVS Code、JetBrains、Vim、Neovim
支持模型StarCoder2、DeepSeek-Coder、Qwen2.5-Coder、CodeLlama
开发语言Rust
硬件要求最低 8GB 内存,建议有 GPU
许可证自定义开源协议

安装与配置

方式一:Docker 安装(推荐)

# NVIDIA GPU 用户(最常见)
docker run -it \
  --gpus all \                # 挂载所有 GPU
  -p 8080:8080 \              # 映射端口
  -v $HOME/.tabby:/data \     # 持久化数据目录
  tabbyml/tabby \             # 官方镜像
  serve \                     # 启动服务模式
  --model StarCoder2-3B \     # 使用 StarCoder2 3B 模型(轻量高效)
  --device cuda               # 使用 CUDA GPU 加速

# AMD GPU 用户
docker run -it \
  --device /dev/kfd --device /dev/dri \  # AMD GPU 设备
  -p 8080:8080 \
  -v $HOME/.tabby:/data \
  tabbyml/tabby \
  serve \
  --model StarCoder2-3B \
  --device rocm               # 使用 ROCm 加速

# 纯 CPU 运行(没有 GPU 也能用,速度慢一些)
docker run -it \
  -p 8080:8080 \
  -v $HOME/.tabby:/data \
  tabbyml/tabby \
  serve \
  --model StarCoder2-3B \
  --device cpu                # CPU 模式

方式二:Homebrew 安装(macOS)

# macOS 用户可以用 Homebrew 安装
brew install tabbyml/tabby/tabby  # 安装 Tabby

# 启动服务(Apple Silicon 自动使用 Metal 加速)
tabby serve --model StarCoder2-3B  # 启动并加载模型

方式三:直接下载二进制文件

# 从 GitHub Releases 下载对应平台的二进制文件
# https://github.com/TabbyML/tabby/releases

# Linux x86_64 示例
curl -L https://github.com/TabbyML/tabby/releases/latest/download/tabby_x86_64-manylinux2014 \
  -o tabby  # 下载可执行文件

chmod +x tabby  # 添加执行权限
./tabby serve --model StarCoder2-3B  # 直接运行

配置 IDE 插件

VS Code

1. 打开 VS Code
2. 按 Ctrl+Shift+X 打开扩展商店
3. 搜索 "Tabby" 并安装
4. 按 Ctrl+, 打开设置
5. 搜索 "tabby"
6. 在 "Tabby: Endpoint" 中填入服务地址:http://localhost:8080
7. 开始写代码,补全会自动弹出

JetBrains(IntelliJ IDEA / PyCharm 等)

1. 打开 Settings → Plugins
2. 搜索 "Tabby" 并安装
3. 重启 IDE
4. Settings → Tools → Tabby
5. 填入服务地址:http://localhost:8080

基本使用

管理界面

# Tabby 启动后,打开浏览器访问管理界面
# 地址:http://localhost:8080

# 管理界面功能:
# - 查看服务状态和模型信息
# - 管理用户和 API Token
# - 配置代码仓库索引
# - 查看使用统计

创建 API Token

# 在管理界面创建 Token 后,可以用 API 方式调用

# 测试代码补全 API
curl -X POST http://localhost:8080/v1/completions \
  -H "Content-Type: application/json" \      # JSON 格式
  -H "Authorization: Bearer <你的Token>" \   # 认证 Token
  -d '{
    "language": "python",                     # 编程语言
    "segments": {
      "prefix": "def fibonacci(n):\n    ",    # 光标前的代码
      "suffix": "\n    return result"         # 光标后的代码
    }
  }'

索引私有代码仓库

# 在管理界面 → "Repositories" 页面添加仓库
# 支持 GitHub、GitLab、本地 Git 仓库

# 或者通过配置文件设置
# 编辑 ~/.tabby/config.toml

# 添加 GitHub 仓库(需要 Personal Access Token)
# [repositories]
# [[repositories.git]]
# url = "https://github.com/你的用户名/你的仓库.git"
# token = "ghp_xxxxxxxxxxxx"

# 添加本地仓库
# [[repositories.git]]
# url = "file:///path/to/your/repo"

# 索引完成后,Tabby 的补全会参考你的代码风格和 API 用法

高级用法

模型选择指南

# 根据硬件和需求选择合适的模型

# 轻量级(4GB+ 显存)—— 适合个人使用
tabby serve --model StarCoder2-3B     # 3B 参数,速度快

# 中等(8GB+ 显存)—— 适合小团队
tabby serve --model StarCoder2-7B     # 7B 参数,质量更好

# 高质量(24GB+ 显存)—— 适合大团队
tabby serve --model DeepSeek-Coder-V2-Lite  # 更强的代码能力

# 多语言优化(中文代码注释友好)
tabby serve --model Qwen2.5-Coder-7B  # 阿里千问系列,中文好

配合 LDAP 企业认证

# ~/.tabby/config.toml
# v0.24.0 新增 LDAP 认证支持,适合企业内部部署

[auth.ldap]
host = "ldap.company.com"        # LDAP 服务器地址
port = 389                        # LDAP 端口
base_dn = "dc=company,dc=com"   # 基础 DN
bind_dn = "cn=admin,dc=company,dc=com"  # 管理员 DN
bind_password = "password"       # 管理员密码
user_filter = "(uid={0})"       # 用户搜索过滤器

使用 Docker Compose 部署(生产环境)

# docker-compose.yml
version: '3.8'

services:
  tabby:
    image: tabbyml/tabby:latest       # 使用最新镜像
    command: serve --model StarCoder2-7B --device cuda  # 启动命令
    ports:
      - "8080:8080"                    # 映射端口
    volumes:
      - tabby-data:/data               # 数据持久化
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1                  # 预留 1 张 GPU
              capabilities: [gpu]
    restart: unless-stopped             # 自动重启

volumes:
  tabby-data:                           # 命名卷,持久化存储
# 启动服务
docker compose up -d  # -d 后台运行

常见报错与解决

报错信息原因解决方法
CUDA out of memoryGPU 显存不足以加载模型换用更小的模型(如 StarCoder2-3B)或添加 --device cpu
Connection refused服务未启动或端口错误确认 Tabby 服务正在运行,检查端口号
Model download failed网络问题无法下载模型使用代理或先手动下载模型到 ~/.tabby/models/
No completions returnedIDE 插件未正确配置检查 IDE 插件的 Endpoint 地址是否正确
Permission deniedDocker 权限不足使用 sudo 或将用户加入 docker
补全速度很慢CPU 模式或模型太大使用 GPU 加速或换用更小模型

速查表

# === Tabby 常用命令速查 ===

# 启动服务(GPU)
tabby serve --model StarCoder2-3B --device cuda

# 启动服务(CPU)
tabby serve --model StarCoder2-3B --device cpu

# 指定端口
tabby serve --model StarCoder2-3B --port 9090

# Docker 启动(GPU)
docker run --gpus all -p 8080:8080 -v $HOME/.tabby:/data tabbyml/tabby serve --model StarCoder2-3B --device cuda

# 查看帮助
tabby --help
tabby serve --help

# 健康检查
curl http://localhost:8080/v1/health

# 管理界面
# 浏览器打开 http://localhost:8080

与同类工具对比

特性TabbyGitHub CopilotCodeiumContinue
部署方式自托管云端 SaaS云端 SaaS自托管
数据隐私数据不出网代码发送到微软代码发送到云端数据不出网
价格免费开源$19/月/人免费/付费免费开源
私有仓库索引支持企业版支持不支持支持
离线使用支持不支持不支持支持
模型选择可自选多种模型固定(GPT-4)固定可自选
IDE 支持VS Code/JetBrains/VimVS Code/JetBrains/Vim主流 IDEVS Code/JetBrains

选择建议:如果你的团队注重代码隐私(比如做商业项目),Tabby 是最佳选择。个人学习用途可以直接用 GitHub Copilot 或 Codeium 免费版。