飞牛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的登录密码,请设置一个足够复杂的值。PUID 和 PGID 建议设为你的管理员账号,这样创建的文件权限不会出问题。
保存文件后,执行:
cd /vol1/docker/code-server
docker-compose up -d
如果飞牛NAS的Docker套件没有集成docker-compose命令,也可以直接在Docker GUI里新建容器,但需要手动填写上面的环境变量和端口映射,会麻烦一些。
第三步:配置访问与安全
容器启动后,在浏览器访问 http://你的NAS内网IP:8443,第一次会要求输入密码,就是你在环境变量里设置的 PASSWORD。登录后你会看到一个完整的VSCode界面,熟悉的味道扑面而来。
这里有几个重要的安全建议:
- 不要直接把8443端口暴露到公网,除非你配置了HTTPS和强认证。建议通过飞牛NAS自带的远程访问功能(如frp或WebDAV)或者VPN来访问。
- 如果你有域名,可以用反向代理(比如Nginx Proxy Manager)给code-server加上TLS证书,这样浏览器地址栏会有小锁头,密码也不会明文传输。
- 建议在
~/.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跑起来,体验一下随时随地写代码的自由吧。
暂无评论,来说两句吧