群晖搭建 VSCode 服务器与 Syncthing 服务
这次我尝试在群晖上搭建 VSCode 服务器与 Syncthing 服务,实现电脑与 NAS 间的代码同步与网页中的 Coding。
VSCode 网页版的实现
偶遇服务器软件
刷 RSS 时我看到 V2EX 上一个帖子分享了一个实用工具:github+1s
这个项目可以实现在 网页版 VSCode 中打开 GitHhub 上的代码。
这个项目使用的 code-server 引起了我的兴趣。
code-server 的部署
群晖自带的 Docker 套件简化了部署的过程。
在注册表中搜索 code-server 下载 image;
打开 image 进行配置:
- 使用高权限执行容器
- 在
高级设置-环境
页面中添加环境变量PASSWORD
,值设定为你的登陆密码(由于在 Docker 页面中以明文保存,请注意密码安全)。
启动容器,并使用 Docker 内置的 终端机
打开一个新的 bash
。换源、更新 apt 、安装常用软件我就不再赘述。
code-server 的外网访问
code-server 没有自带 HTTPS 相关的配置,需要使用网站服务器进行反向代理。
目前比较流行的有 Caddy 和 NGINX 两款。
鉴于 Caddy 配置简单且 HTTPS 优先,我这次使用 Caddy。
或使用一键安装脚本
curl https://getcaddy.com | bash -s personal
如果有开放的 443 端口,则可使用 Caddy 的自动 HTTPS 功能进行快速配置。
若像我一样在家中的 NAS 上配置 code-server,则需要自己申请 tls 证书 (如 Let`s Encrypt),并按照 Caddy-tls 配置。
反向代理配置可参考 code-server 官方的反代配置教程。
一些疑难杂症
一些插件无法安装
目前 code-server 的 VSCode 版本为 1.51.1, VSCode 官方则为 1.54.3 ,因此某些较新的插件可能无法使用。
可以前往 VS插件市场 下载旧版插件并手动安装。
Docker 内挂载的目录无写权限
使用 sudo chmod 777 ./
给 coder 用户赋予读写权力。
Docker 内 Caddy 无法自启
这个我也还没有解决。暂且手动启动。
code-server 的各种性能问题
等待更多的更新吧,我接下来会尝试在 Docker 里编译原版 VSCode 并开启 Web 模式,对比二者性能。
Syncthing 服务搭建
Syncthing 官网 已经给出了十分详尽的安装教程,也有群晖的安装包,我就不再赘述安装过程。
Syncthing 的管理页面端口为 8384
,若想在外网访问请使用 HTTPS。可以使用群晖内置的反向代理服务器进行反代。
要注意把 22000
端口的 TCP
与 UDP
全部开放,才可在外网顺利与 NAS 同步。