进阶技巧

飞牛NAS搭建VSCode Server:随时随地写代码

说到 NAS 的玩法,除了影音娱乐和数据备份,把它当成一个轻量级的开发环境也是近年来的热门趋势。今天我们就来聊聊如何在飞牛NAS(fnOS)上通过 Docker 部署一个 VSCode Server,让你摆脱电脑配置的限制,随时随地用浏览器写代码。

为什么要在飞牛NAS上跑VSCode Server?最直观的好处是代码和运行环境都在NAS上,换任何设备(平板、老笔记本、公司电脑)只要打开浏览器就能接着干活,环境完全一致。而且飞牛NAS基于Debian,硬件虚拟化支持完善,跑一个轻量级的code-server绰绰有余。

准备工作:确认你的飞牛NAS状态

在开始之前,请确保你的飞牛NAS系统版本较新(建议fnOS 0.8.x以上),并且已经开启了Docker功能。飞牛的Docker管理界面做得相当友好,我们大部分操作都可以在图形界面里完成,但为了更清晰的讲解,我会同时给出命令行和界面两种方式。

另外,建议给VSCode Server预留至少2GB内存和20GB存储空间(如果你要装很多扩展和依赖的话)。我自己的配置是J4125+16GB内存,跑起来毫无压力。

第一步:拉取镜像并创建容器

打开飞牛NAS的「Docker」应用,在「镜像」页面点击「拉取镜像」,输入 codercom/code-server,选择 latest 标签拉取。这个镜像是官方维护的,更新很勤快。

如果你更喜欢命令行,SSH登录到NAS后执行:

docker pull codercom/code-server:latest

拉取完成后,点击「创建容器」。这里有几个关键配置需要留意:

  • 端口映射:容器内部默认监听 8080 端口,我们映射到NAS的 8443 或任意你喜欢的端口。建议不要用8080,避免和NAS其他服务冲突。我习惯用 8443
  • 数据卷挂载:这是重中之重。你需要把NAS上的一个目录(比如 /vol1/docker/vscode)挂载到容器的 /home/coder/project,这样你写的代码才会持久化存储在NAS硬盘上。
  • 环境变量:设置 PASSWORD 变量为你想要的访问密码,比如 PASSWORD=mysecret123。如果不设,默认密码会随机生成,可以在容器日志里找到。

在飞牛界面操作时,具体路径是:创建容器 -> 高级设置 -> 端口设置和存储设置。存储挂载时,记得在NAS上先建好目录,例如:

mkdir -p /vol1/docker/vscode/project

第二步:配置反向代理和HTTPS(可选但推荐)

直接通过IP加端口访问虽然能用,但每次都要记IP,而且密码明文传输不安全。飞牛NAS自带一个Nginx反向代理功能,在「控制面板」->「网络」->「反向代理」里添加一条规则。

假设你的NAS域名是 nas.example.com,添加如下配置:

  • 监听端口:443(或你用其他端口)
  • 转发地址:http://127.0.0.1:8443
  • 开启SSL,上传你的证书(或者用飞牛自带的Let's Encrypt)

这样访问 https://nas.example.com 就能直接打开VSCode了。如果你不想折腾域名,直接用IP+端口也完全没问题,只是建议加上密码保护。

第三步:初始化VSCode Server环境

容器启动后,打开浏览器访问 http://你的NASIP:8443,输入你设置的密码,就能看到熟悉的VSCode界面了。首次进入会有一个欢迎页,接下来我们需要做一些个性化设置。

1. 安装简体中文语言包

点击左侧扩展图标(四个方块),搜索 Chinese,安装 Chinese (Simplified) Language Pack。安装完成后根据提示重启界面,就变成中文了。

2. 配置Git身份

在终端(Ctrl+`)里执行:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

3. 安装必备扩展

我个人推荐这几个必装扩展:Python(如果你写Python)、ESLint(前端)、Prettier(格式化)、Remote - SSH(虽然我们用不到,但有些场景需要)。直接在扩展面板搜索安装即可,非常方便。

第四步:设置开机自启和资源限制

飞牛的Docker容器默认支持重启策略。在容器详情页的「重启策略」里选择「除非停止,否则始终重启」,这样NAS重启后VSCode会自动恢复。

对于资源限制,我建议限制一下内存,防止某个大型编译任务拖垮NAS。在创建容器时,可以在「资源限制」里设置内存上限为 4096 MB,CPU限制为 200%(即最多使用2个核心)。这个可以根据你的NAS性能灵活调整。

第五步:进阶玩法:挂载NAS其他目录

默认我们只挂载了 /project 目录,但很多时候我们需要访问NAS上的其他文件夹,比如挂载一个数据盘。在容器创建时,可以添加额外的存储映射。

比如我想把 /vol1/data 挂载到容器内的 /mnt/data,只需要在存储设置里再添加一条映射。进入容器后,你就能在VSCode里直接打开 /mnt/data 下的文件了。注意,这样操作时请确保容器用户有对应的读写权限(默认是coder用户,UID 1000)。

常见问题排查

问题1:打不开页面,显示502或无法连接

检查端口映射是否正确,容器日志有没有报错。用 docker logs 容器ID 查看日志,通常会给出明确提示。最常见的是端口被占用或挂载目录权限不对。

问题2:扩展装不上或下载慢

code-server官方镜像默认使用微软的扩展市场,国内网络有时不稳定。可以在容器环境变量里添加 EXTENSIONS_GALLERY 指向国内镜像源(比如VSCodium的镜像),或者手动下载VSIX文件后拖拽安装。我个人建议用VSIX方式,简单可靠。

问题3:代码里的中文乱码

在VSCode设置里搜索 files.autoGuessEncoding,开启自动猜测编码。或者直接设置 files.encodingutf8(默认就是)。

问题4:内存占用过高

如果发现NAS内存经常爆满,检查是不是开了太多扩展。在VSCode里运行 Process Explorer 查看内存占用,关掉不用的扩展。另外,可以限制容器内存,让系统强制回收。

总结

通过以上步骤,你的飞牛NAS就成功变身为一台随时在线的云端开发机了。整个过程大概耗时15分钟,之后你会发现,用iPad躺在床上改bug,或者在办公室电脑上接着家里的进度写代码,都变成了一件非常自然的事情。飞牛NAS的Docker生态相当完善,VSCode Server只是其中一个小例子,同样思路还可以部署Jupyter、Gitea等开发工具。希望这篇教程能帮到你,快去试试吧。

💬 评论区
发表评论

暂无评论,来说两句吧