进阶技巧

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

为什么要在飞牛NAS上跑一个VSCode Server?

作为一名开发者,你可能遇到过这样的场景:出差在外,临时要改个Bug,却发现笔记本上没装开发环境;或者主力机在办公室,家里只有一台轻薄本,跑个大型项目卡得不行。VSCode Server(即code-server)能把微软家的编辑器跑在你的飞牛NAS上,通过浏览器随时随地访问,所有计算和存储都在NAS上完成,终端设备只需要一个现代浏览器即可。配合飞牛NAS的Docker套件,部署过程不到十分钟,而且数据直接落在你的NAS硬盘上,天然具备备份和远程访问能力。

准备工作:在飞牛NAS上开启Docker

飞牛NAS的Docker套件(fnOS内置)已经非常成熟。首先登录飞牛NAS的管理后台,进入「应用中心」,确认Docker应用已经安装并运行。如果尚未安装,点击安装即可。然后打开「终端」或通过SSH连接到你的飞牛NAS,后续所有命令都在这里执行。

第一步:创建持久化数据目录

在NAS上创建两个目录,一个用来存放code-server的工作区(你的代码项目),另一个存放配置和扩展数据。这样即使容器重建,数据也不会丢失。

sudo mkdir -p /vol1/docker/code-server/projects
sudo mkdir -p /vol1/docker/code-server/config

如果你的NAS存储路径不同(比如挂载点是 /vol2/mnt),请相应调整。飞牛NAS默认的存储池一般挂载在 /vol1 下。

第二步:用docker-compose部署(推荐)

飞牛NAS的Docker应用支持docker-compose,这是最优雅的部署方式。在NAS上新建一个目录存放compose文件:

sudo mkdir -p /vol1/docker/code-server
sudo nano /vol1/docker/code-server/docker-compose.yml

把以下内容粘贴进去:

version: "3.8"

services:
  code-server:
    image: lscr.io/linuxserver/code-server:latest
    container_name: code-server
    environment:
      - PUID=1000          # 你的用户ID,可在终端用 id -u 查看
      - PGID=1000          # 你的组ID,可用 id -g 查看
      - TZ=Asia/Shanghai   # 时区,按需修改
      - PASSWORD=yourpassword   # 访问密码,务必改成强密码
      # - SUDO_PASSWORD=yourpassword  # 如果需要容器内sudo权限,取消注释
    volumes:
      - /vol1/docker/code-server/config:/config
      - /vol1/docker/code-server/projects:/home/coder/project
    ports:
      - 8443:8443
    restart: unless-stopped

注意 PASSWORD 字段,这是你访问VSCode Server的登录密码,请设置一个足够复杂的值。PUIDPGID 建议设为你的管理员账号,这样创建的文件权限不会出问题。

保存文件后,执行:

cd /vol1/docker/code-server
docker-compose up -d

如果飞牛NAS的Docker套件没有集成docker-compose命令,也可以直接在Docker GUI里新建容器,但需要手动填写上面的环境变量和端口映射,会麻烦一些。

第三步:配置访问与安全

容器启动后,在浏览器访问 http://你的NAS内网IP:8443,第一次会要求输入密码,就是你在环境变量里设置的 PASSWORD。登录后你会看到一个完整的VSCode界面,熟悉的味道扑面而来。

这里有几个重要的安全建议:

  1. 不要直接把8443端口暴露到公网,除非你配置了HTTPS和强认证。建议通过飞牛NAS自带的远程访问功能(如frp或WebDAV)或者VPN来访问。
  2. 如果你有域名,可以用反向代理(比如Nginx Proxy Manager)给code-server加上TLS证书,这样浏览器地址栏会有小锁头,密码也不会明文传输。
  3. 建议在 ~/.local/share/code-server/User/settings.json 中关闭遥测,保护隐私。

第四步:安装你常用的扩展

登录后,左侧的扩展面板和本地VSCode完全一样。你可以在容器里安装任何扩展,比如Python、Go、Java、C++等语言支持,或者GitLens、Remote-SSH、Live Share等效率工具。注意,扩展数据会持久化到 /config 目录,所以重启容器后扩展依然存在。

对于需要编译的C/C++项目,你可能需要进入容器终端安装编译工具链。在VSCode里按 Ctrl+~ 打开终端,然后执行:

sudo apt update
sudo apt install build-essential gdb

如果你在环境变量里设置了 SUDO_PASSWORD,就可以用 sudo 提权安装需要的软件包。

第五步:挂载NAS上的其他存储

很多用户希望code-server能直接访问NAS上的其他共享文件夹(比如照片库或文档库)。你可以修改docker-compose.yml,把其他卷挂载进来:

    volumes:
      - /vol1/docker/code-server/config:/config
      - /vol1/docker/code-server/projects:/home/coder/project
      - /vol1/文档:/home/coder/docs    # 挂载现有共享文件夹
      - /vol1/代码仓库:/home/coder/repo

修改后重启容器:

docker-compose down
docker-compose up -d

这样你在VSCode里就能直接浏览和编辑NAS上的所有文件了,非常方便。

进阶技巧:使用Git集成

code-server自带Git支持,你可以在 /home/coder/project 下克隆你的远程仓库:

git clone https://github.com/yourname/yourrepo.git

然后使用VSCode的源代码管理面板进行提交、推送。如果使用SSH密钥,记得把私钥放到 /config/.ssh 目录下,并设置好权限。

故障排查

如果访问不了,先检查防火墙是否放行了8443端口。飞牛NAS在「控制面板」-「安全」-「防火墙」里,确保有一条允许规则。另外,查看容器日志:

docker logs code-server

如果看到 Permission denied 之类的错误,多半是PUID/PGID设置不对。用 id 命令确认你的用户ID,然后修正compose文件。

总结

通过以上五步,你就拥有了一台随时待命的云端开发环境。无论是出差、居家还是多设备协同,只要浏览器能访问飞牛NAS,你就能继续写代码。得益于Docker的隔离性,这个环境不会影响NAS其他服务;而数据持久化保证了重启无忧。最重要的是,你的代码、配置、扩展都掌握在自己手里,不依赖任何第三方云服务。现在,试着把VSCode Server跑起来,体验一下随时随地写代码的自由吧。

💬 评论区
发表评论

暂无评论,来说两句吧