还在古法编程?免费使用AI编程助手OpenCode 与完全本地化配置
前言✨ OpenCode 核心特点✅完全开源— MIT 许可GitHub 超 109k Stars✅零成本模型接入— 官方提供免费模型也支持任意本地或云模型✅纯本地运行— 数据不出内网满足企业级安全合规要求✅现代化 Web UI— 无需命令行开箱即用✅广泛兼容性— 支持llama.cpp、Ollama、vLLM、LM Studio及所有 OpenAI 兼容 API✅全周期开发能力— 深度集成代码生成、调试、测试、重构、回溯等场景核心理念你的代码只属于你。AI 能力尽在掌控。LLM大模型配置OpenCode 支持大多 LLM 提供商可根据需求灵活选择1. 官方免费模型OpenCode ZenOpenCode 官方提供 Zen 模型服务包含经过严格测试与优化的免费编码模型无需配置即可使用✅ 适合快速上手、无本地 GPU 资源的用户❌ 需联网不适用于完全离线环境2. 部署本地 LLM 服务如果注重隐私或希望完全离线运行推荐部署本地大模型。典型配置如下模型Qwen3.5-35B-A3B-UD-Q4_K_M.ggufMoE 架构激活参数仅 3B推理性能超越 Qwen3-235B推理后端llama.cpp以server模式运行API 地址http://10.0.0.10:8001/v1验证服务是否正常curl http://10.0.0.10:8001/v1/models预期返回包含模型 ID 的 JSON 列表。⚠️注意该地址需能被 OpenCode 容器访问。3. 接入 OpenAI / Claude / Gemini 等云 APIOpenCode 同样支持主流云模型只需提供 API Key 支持 75 模型提供商通过 Models.dev包括 Anthropic、Google、Mistral、DeepSeek 等。Docker 部署 Web UI / CLI 服务快速体验docker run -d \ --name opencode-quick \ --restart unless-stopped \ --entrypoint opencode \ -p 3000:3000 \ -v ./config:/root/.config/opencode \ -v ./data:/root/.local/share/opencode \ -v ./workspace:/workspace \ -e WORKDIR/workspace \ ghcr.io/anomalyco/opencode:latest \ web --hostname 0.0.0.0 --port 3000./workspace挂载项目代码AI 可读写此目录./config配置文件路径存放opencode.json配置文件./data存储会话、缓存等运行时数据 访问http://{宿主机ip}:3000完整部署推荐用于生产或长期使用1. 编写Dockerfile# --- Stage 1: Extraction --- # Use the official uv image to provide the binaries. FROM ghcr.io/astral-sh/uv:latest AS uv_bin # --- Stage 2: Runtime Environment --- # Using debian:bookworm-slim instead of full Ubuntu to significantly reduce image size # while maintaining full compatibility with Python wheels and C-extensions. FROM ubuntu:24.04 ARG LOCAL_TOOLScurl ca-certificates git # Consolidate environment variables to reduce layers. # UV_PYTHON_INSTALL_DIR: Ensures Python toolchains are stored in the persistent cache volume. # UV_LINK_MODE: Set to copy to avoid performance warnings on different filesystems. # UV_PYTHON_PREFERENCE: Ensures uv respects .python-version from your workspace. ENV DEBIAN_FRONTENDnoninteractive \ HOME/home/opencode \ UV_PROJECT_ENVIRONMENT/home/opencode/.venv \ UV_CACHE_DIR/home/opencode/.cache/uv \ UV_PYTHON_INSTALL_DIR/home/opencode/.cache/uv/python \ UV_LINK_MODEcopy \ UV_PYTHON_PREFERENCEmanaged \ PATH/home/opencode/.opencode/bin:/home/opencode/.venv/bin:$PATH # Combine system update, dependency installation, user creation, and directory prep. # This single RUN command reduces the number of intermediate image layers. RUN apt-get update apt-get install -y --no-install-recommends $LOCAL_TOOLS \ useradd -m -s /bin/bash opencode \ mkdir -p /home/opencode/.local/share/opencode \ /home/opencode/.config/opencode \ /home/opencode/.cache/uv \ /home/opencode/.venv \ /workspace \ chown -R opencode:opencode /home/opencode /workspace \ apt-get clean \ rm -rf /var/lib/apt/lists/* # Copy uv binaries from the extraction stage. COPY --fromuv_bin /uv /uvx /bin/ # Copy the entrypoint script and set correct permissions COPY --chownopencode:opencode ./entrypoint.sh /home/opencode/entrypoint.sh RUN chmod x /home/opencode/entrypoint.sh # Install the OpenCode CLI (before switching to non-root user) # The installer automatically places the binary into $HOME/.opencode/bin. RUN curl -fsSL https://opencode.ai/install | bash || \ (echo ⚠️ OpenCode install failed, trying alternative method... \ curl -fsSL https://github.com/opencode-ai/opencode/releases/latest/download/opencode-linux-x64 -o /home/opencode/.opencode/bin/opencode \ chmod x /home/opencode/.opencode/bin/opencode) # Run as root to allow apt-get and dpkg commands without sudo USER root WORKDIR /workspace # Define the entrypoint script as the default execution path ENTRYPOINT [/home/opencode/entrypoint.sh]2. 编写entrypoint.sh#!/bin/bash # Exit immediately if a command exits with a non-zero status set -e # # .NET 8 SDK 安装逻辑 (通过环境变量控制) # if [ $INSTALL_DOTNET true ]; then echo ️ [Entrypoint] .NET 8 SDK 安装模式已启用。 # 检查是否已安装 .NET SDK if command -v dotnet /dev/null; then echo ✅ [Entrypoint] .NET SDK 已安装跳过安装。 else echo [Entrypoint] 开始安装 .NET 8 SDK... # 安装依赖 apt-get update apt-get install -y wget # 下载并安装 Microsoft APT 仓库配置 wget https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb # 安装 .NET SDK 8.0 apt-get update apt-get install -y dotnet-sdk-8.0 # 清理缓存 apt-get clean rm -rf /var/lib/apt/lists/* echo ✅ [Entrypoint] .NET 8 SDK 安装完成 echo 版本信息 dotnet --version fi else echo ⏭️ [Entrypoint] INSTALL_DOTNET 为 false。跳过 .NET SDK 安装。 fi # # Python 依赖安装逻辑 # if [ $INSTALL_DEPS true ]; then echo ️ [Entrypoint] 完整设置模式已启用。 # 初始化虚拟环境 uv venv -q /home/opencode/.venv if [ -f requirements.txt ]; then echo [Entrypoint] 从 requirements.txt 安装依赖... uv pip install -q -r requirements.txt elif [ -f pyproject.toml ]; then echo [Entrypoint] 从 pyproject.toml 同步依赖... uv sync -q else echo ℹ️ [Entrypoint] 未找到依赖文件但已创建虚拟环境。 fi else echo ⏭️ [Entrypoint] INSTALL_DEPS 为 false。跳过虚拟环境和依赖安装。 fi # # 启动主应用 # echo [Entrypoint] 启动 OpenCode... # opencode opencode web --hostname 0.0.0.0 --port 30003. 编写docker-compose.ymlversion: 3.8 services: opencode: image: opencode-net:latest container_name: opencode-net restart: unless-stopped ports: - 3005:3000 volumes: - ./opencode/config:/home/opencode/.config/opencode - ./opencode/data:/home/opencode/.local/share/opencode - /data/ai/workspace:/workspace environment: - WORKDIR/workspace # 设置 Git 用户信息防止 AI 提交代码时报错 - GIT_AUTHOR_NAMEopencode - GIT_AUTHOR_EMAILbotopencode.ai # 如果 NAS 需要代理访问 OpenAI/Google请取消注释以下行 # - HTTP_PROXYhttp://192.168.x.x:7890 # - HTTPS_PROXYhttp://192.168.x.x:7890 #安装 requirements.txt 依赖 - INSTALL_DEPSfalse # 安装 .net sdk - INSTALL_DOTNETfalse networks: - opencode_net networks: opencode_net: driver: bridge4. 打包镜像docker build -t opencode-net:latest .5. 启动服务docker compose up -d6. 配置模型接入config/opencode.json{ $schema: https://opencode.ai/config.json, provider: { local-llama-cpp: { npm: ai-sdk/openai-compatible, name: Llama.cpp Model Runner, options: { baseURL: http://192.168.1.10:8001/v1, apiKey: not-needed }, models: { Qwen3.5-35B-A3B-UD-Q4_K_M: { name: Qwen3.5-35B-A3B-UD-Q4_K_M, limit: { contextWindow: 128000, maxOutputTokens: 64000, context: 0, output: 64000 } } } } } }7. 访问 Web 界面打开浏览器访问 http://{宿主机ip}:3005首次加载完成后即可开始与 AI 协作编程终端 CLI 与 VS Code 插件集成CLI 安装与配置## 在终端安装 cli npm install -g opencode-ai ## 查看安装版本 opencode --version ## 运行 opecode ## 选择模型 /models配置文件路径Linux / macOS:~/.config/opencode/opencode.jsonWindows:%USERPROFILE%\.config\opencode\opencode.json 配置内容与上面config/opencode.json完全一致可直接复用。VS Code 插件安装插件OpenCode, 配置文件也是~/.config/opencode/opencode.json方案对比Web UI vs 终端 CLI常见问题与安全建议 安全最佳实践对外提供服务添加服务验证避免直接暴露 3000 端口避免直接暴露 3000 端口限制workspace挂载范围禁止挂载/、/home等系统目录生产环境 Dockerfile 使用非root 用户✅现在打开浏览器即可享受安全、高效、完全自主的 AI 编程体验文章转载自JohnCHsu原文链接https://www.cnblogs.com/aeln/p/19718022体验地址http://www.jnpfsoft.com/?from331