基于code-server打造私有AI编程工作站

发布时间:2026/7/16 2:26:12

基于code-server打造私有AI编程工作站 简介Code Server 是什么Code Server是 coder.com 开发的运行在远程服务器上的VS Code。它将完整的VS Code 体验搬到浏览器中让你可以在任何设备上使用熟悉的IDE而无需在本地安装任何东西。浏览器即开发环境Chromebook、平板、手机都能写代码统一开发环境团队成员无论用什么设备都能获得一致的VS Code体验服务器算力编译、测试、下载等重活交给服务器笔记本更省电HAPI 是什么HAPIGitHub: tiann/hapi是一个让AI编程助手能够远程控制和协作的工具。它支持Claude Code、Codex、Gemini、OpenCode等主流AI CLI让你无缝切换本地干一半出门用手机继续AFK 审批离开电脑用手机一键审批AI的代码修改请求终端随身带通过Web界面或手机控制 AI 编程任务E2E 加密WireGuard TLS加密数据安全有保障HAPI与Happy最大的区别Happy使用一个集中服务器来存储你的加密数据。HAPI是去中心化的——每个用户运行自己的集线器中继服务器只转发加密流量不存储任何内容。为什么选择 HAPI Code Server相信很多小伙伴会遇到这些问题出门在外想改代码身边只有手机或平板总不能背着的电脑吧电脑配置不够跑AI CLI风扇转不停电池掉得飞快想躺着也能审核 AI 的代码让AI干完活醒来再审批HAPI Code Server的组合完美解决这些问题Code Server把VS Code搬到浏览器里——无论你用iPad、手机还是借别人的电脑浏览器一开就能写代码HAPI让AI CLI也能远程控制——人在外面也能手机点点让群晖上的AI帮你写代码数据完全本地化——代码存在自己的群晖上不用担心泄露到第三方云服务这就是你的私有 AI 编程工作站白天出门用手机指挥 AI 干活晚上回家在平板上审核代码全部围绕的是你自己的群晖而不是某个云厂商。主要特点浏览器即开发环境Code Server让VS Code在浏览器中运行无需本地安装AI 随时可用集成6款主流AI CLIClaude Code、Codex、Gemini、OpenCode、iFlow、Qwen Code远程控制通过HAPI的Web界面或手机端远程控制AI编程任务数据本地化所有代码和数据存储在群晖上隐私有保障应用场景在任何设备电脑、平板、手机上通过浏览器进行开发外出时通过手机远程控制 AI 完成编程任务利用群晖的大容量存储管理多个项目企业内网部署保护代码安全hapi 功能演示安装在群晖上以 Docker 方式安装。关于code-server可以看老苏之前写的文章但本次结合了HAPI所以会有一些变化文章传送门在线代码编辑器code-server准备工作在群晖的docker文件夹中创建以下目录结构# 新建文件夹和子目录mkdir-p/volume1/docker/code-server/{config,projects}卷文件夹装载路径说明/volume1/docker/code-server/config/config配置目录/volume1/docker/code-server/projects/config/workspace项目代码目录端口本地端口容器端口说明31968443Code Server Web UI31973197HAPI服务端口环境变量可变值说明PUID1000用户UIDPGID1000用户GIDTZAsia/Shanghai时区PASSWORDadmin123Web 登录密码SUDO_PASSWORDadmin123终端sudo密码CODE_SERVER_PORT3196Code Server端口映射DEFAULT_WORKSPACE/config/workspace默认工作目录CLI_API_TOKENadmin123HAPI API令牌建议使用强密码HAPI_LISTEN_HOST0.0.0.0HAPI监听地址HAPI_LISTEN_PORT3197HAPI监听端口HAPI_PUBLIC_URLhttp://192.168.0.197:3197网页分享链接HAPI_API_URLhttp://192.168.0.197:3197Runner连接地址⚠️ 请将HAPI_PUBLIC_URL和HAPI_API_URL中的IP地址替换为你的群晖实际IP地址docker run 方式如果你熟悉命令行可能用docker cli更快捷# 进入目录cd/volume1/docker/code-server# 运行容器dockerrun-d\--nameai-dev-vscode\--restartunless-stopped\-p3196:8443\-p3197:3197\-v$(pwd)/config:/config\-v$(pwd)/projects:/config/workspace\-ePUID1000\-ePGID1000\-eTZAsia/Shanghai\-ePASSWORDadmin123\-eSUDO_PASSWORDadmin123\-eCODE_SERVER_PORT3196\-eDEFAULT_WORKSPACE/config/workspace\-eCLI_API_TOKENadmin123\-eHAPI_LISTEN_HOST0.0.0.0\-eHAPI_LISTEN_PORT3197\-eHAPI_PUBLIC_URLhttp://192.168.0.197:3197\-eHAPI_API_URLhttp://192.168.0.197:3197\linuxserver/code-server:latestdocker-compose 方式推荐将以下内容保存为docker-compose.yml文件version:3.8services:code-server:image:linuxserver/code-server:latestcontainer_name:ai-dev-vscoderestart:unless-stoppedshm_size:512mbports:-3196:8443-3197:3197volumes:-./config:/config-./projects:/config/workspaceenvironment:-PUID1000-PGID1000-TZAsia/Shanghai-PASSWORDadmin123-SUDO_PASSWORDadmin123-CODE_SERVER_PORT3196-DEFAULT_WORKSPACE/config/workspace-CLI_API_TOKENadmin123-HAPI_LISTEN_HOST0.0.0.0-HAPI_LISTEN_PORT3197-HAPI_PUBLIC_URLhttp://192.168.0.197:3197-HAPI_API_URLhttp://192.168.0.197:3197然后执行一键启动# 进入目录cd/volume1/docker/code-server# 一键启动docker-composeup-d安装 AI 编程环境首次运行容器后需要在容器内执行初始化脚本安装AI CLI和HAPI。之所以没有重新写Dockerfile是为了更灵活这样可以使用标准的code-server并且可以根据需要升级AI CLIsetup-code.sh将下面的内容保存为安装脚本setup-code.sh放入到config目录中#!/usr/bin/env bashset-euopipefailecho [AI Dev Setup] 安装 Node.js 6 个 AI CLI HAPI (code-server 专用)...if[$(id-u)-ne0];thenecho❌ 请用 root 运行docker exec -u root ai-dev-vscode /config/setup-code.shexit1fihave_cmd(){command-v$1/dev/null21}have_global_npm_pkg(){localpkg$1npmlist-g$pkg--depth0/dev/null21}echo 安装基础系统工具...apt-getupdate-yapt-getinstall-y\gitcurlvimtmuxhtopjqwgetunzip\build-essential ca-certificates\python3 python3-pipecho 清理系统中可能冲突的 nodejs/npm...apt-getpurge-ynodejsnpm||truerm-rf/usr/bin/node /usr/bin/npm /usr/local/bin/node* /usr/local/bin/npm*||trueecho 用 NodeSource 安装 Node.js 22.x...curl-fsSLhttps://deb.nodesource.com/setup_22.x|bash-apt-getinstall-ynodejsif!have_cmdnode;thenecho❌ node 安装失败exit1fiif!have_cmdnpm;thenecho❌ npm 安装失败exit1fi# npm cache 放在 /config/.npm后面统一 chown 给 abcmkdir-p/config/.npmnpmconfigsetcache /config/.npmecho✅ Node:$(node-v)echo✅ npm:$(npm-v)ifhave_cmd npx;thenecho✅ npx:$(npx-v)elseecho⚠️ 警告npx 不在 PATH后续使用 npx 相关命令可能失败。fiecho 配置 npm 全局目录为 /usr/local...mkdir-p/usr/local/lib/node_modules /usr/local/binnpmconfigsetprefix /usr/localnpmconfigsetauditfalsenpmconfigsetfundfalseecho 安装 AI CLI检测已安装则跳过...# 1. Claude Code (anthropic-ai/claude-code)ifhave_cmd claude||have_global_npm_pkganthropic-ai/claude-code;thenecho → Claude Code 已安装跳过 (anthropic-ai/claude-code)elseecho → 安装 Claude Code (anthropic-ai/claude-code)if!npminstall-ganthropic-ai/claude-codelatest;thenecho⚠️ Claude Code 安装失败请稍后重试。fifi# 2. Gemini CLI (google/gemini-cli)ifhave_cmd gemini||have_global_npm_pkggoogle/gemini-cli;thenecho → Gemini CLI 已安装跳过 (google/gemini-cli)elseecho → 安装 Gemini CLI (google/gemini-cli)if!npminstall-ggoogle/gemini-clilatest;thenecho⚠️ Gemini CLI 安装失败请检查网络或包名。fifi# 3. OpenAI Codex (openai/codex)ifhave_cmd codex||have_global_npm_pkgopenai/codex;thenecho → OpenAI Codex 已安装跳过 (openai/codex)elseecho → 安装 OpenAI Codex (openai/codex)if!npminstall-gopenai/codexlatest;thenecho⚠️ Codex 安装失败请检查网络或包名。fifi# 4. OpenCode (opencode-ai) - 修正包名为 opencode-ai无 ifhave_cmd opencode||have_global_npm_pkgopencode-ai;thenecho → OpenCode 已安装跳过 (opencode-ai)elseecho → 安装 OpenCode CLI (opencode-ai)ifnpminstall-gopencode-ailatest;thenecho → OpenCode npm 安装成功elseecho → npm 安装失败尝试官方一键脚本...curl-fsSLhttps://opencode.ai/install|bash||echo⚠️ OpenCode 一键安装也失败请手动检查网络/权限fifi# 5. iFlow CLI (iflow-ai/iflow-cli)ifhave_cmd iflow||have_global_npm_pkgiflow-ai/iflow-cli;thenecho → iFlow CLI 已安装跳过 (iflow-ai/iflow-cli)elseecho → 安装 iFlow CLI (iflow-ai/iflow-cli)if!npminstall-giflow-ai/iflow-clilatest;thenecho⚠️ iFlow 安装失败请检查网络或包名。fifi# 6. Qwen Code (qwen-code/qwen-code)ifhave_cmd qwen-code||have_global_npm_pkgqwen-code/qwen-code;thenecho → Qwen Code 已安装跳过 (qwen-code/qwen-code)elseecho → 安装 Qwen Code (qwen-code/qwen-code)if!npminstall-gqwen-code/qwen-codelatest;thenecho⚠️ Qwen Code 安装失败请检查网络或包名。fifiecho 安装 HAPI全局...# 7. HAPI (twsxtd/hapi) - 你已经验证这条命令可用ifhave_cmd hapi||have_global_npm_pkgtwsxtd/hapi;thenecho → HAPI 已安装跳过 (twsxtd/hapi)elseecho → 安装 HAPI (twsxtd/hapi)if!npminstall-gtwsxtd/hapilatest;thenecho⚠️ HAPI 安装失败请检查网络或包名。fifiecho 创建工作目录...mkdir-p/config/workspace/{go,node,python,rust,web}echo 写入 /config/ai-init.sh...cat/config/ai-init.shEOL #!/bin/bash echo AI Dev 环境加载... # AI CLI 别名 alias claudeclaude alias geminigemini alias codexcodex alias opencodeopencode alias iflowiflow alias qwenqwen alias llls -lah alias wscd /config/workspace ls -la # HAPI 快捷命令使用全局 hapi alias hapi-serverhapi hub --relay # 如果你更喜欢 server 模式可以改成 # alias hapi-serverhapi server --relay alias hapihapi # AI 状态检查 ai-status() { echo 当前目录: $(pwd) echo AI CLI: command -v claude /dev/null echo ✅ claude || echo ❌ claude command -v gemini /dev/null echo ✅ gemini || echo ❌ gemini command -v codex /dev/null echo ✅ codex || echo ❌ codex command -v opencode /dev/null echo ✅ opencode || echo ❌ opencode command -v iflow /dev/null echo ✅ iflow || echo ❌ iflow command -v qwen /dev/null echo ✅ qwen || echo ❌ qwen command -v hapi /dev/null echo ✅ hapi || echo ❌ hapi } echo ✅ 运行 ai-status 测试 EOLchmodx /config/ai-init.sh# ⚠️ 这里假设 abc 的 uid/gid 是 1000:1000如不同请替换chown-R1000:1000\/config/workspace\/usr/local/bin\/usr/local/lib/node_modules\/config/.npmecho✅ 安装完成访问 http://192.168.0.197:3196echo 密码: admin123echo 终端: source /config/ai-init.sh ai-statusecho 如需 HAPI: hapi server # 或直接 hapi⚠️setup-code.sh可以根据需要进行调整用不上的AI CLI可以删除第一次启动后或者在code-server变更了后执行一次安装脚本setup-code.sh即可# 进入容器以 root 身份运行安装脚本dockerexec-uroot ai-dev-vscode /config/setup-code.sh执行完成后就可以开始使用了运行访问 Code Server在浏览器中输入http://群晖IP:3196密码admin123需要信任workspace目录安装中文插件之后可以让界面显示中文访问 HAPIHAPI提供Web界面和远程控制功能为了方便说明老苏拆解后进行演示和说明在code-server开启三个终端终端1运行下面的命令 提供中心服务HAPI Hub# 启动 hapi hub 服务hapi server终端2以opencode为例在opencode能正常运行后执行下面的命令启动AI代理会话# 启动 AI 代理会话hapi opencode如果你是用claude也是一样的可以用hapi启动除此之外还支持gemini、codex等终端3执行下面的命令运行hapi runner服务它负责注册机器到Hub让网页能看到并远程启动会话# 启动 hapi runner 服务hapi runner start网页在浏览器中输入http://群晖IP:3197密码admin123登录后的主界面会看到有一个opencode的会话回到code-server你会发现两边是同步的通过设置可以将HAPI的默认语言改为中文移动端跟网页端是一样的密码也能同步看到任务的进行小结这是老苏为热爱自由的开发者打造的本地优先AI代理平台。以上只是抛砖引玉从安全角度出发老苏不建议暴露到公网远程访问建议使用tailscale或者zerotier现在你拥有了一台可以随时随地进行Vibe Coding的个人工作站不仅能在电脑浏览器里远程使用Visual Studio Code也可以在手机上轻松接入同一套开发环境随时继续你的创作。参考文档linuxserver/docker-code-server地址https://github.com/linuxserver/docker-code-servertiann/hapi: App for Claude Code / Codex / Gemini / OpenCode, vibe coding anytime, anywhere地址https://github.com/tiann/hapiHAPI - Vibe Coding Anytime, Anywhere地址https://hapi.run/Quick Start | HAPI地址https://hapi.run/docs/guide/quick-start

相关新闻