群晖搭建 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。

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 同步。


群晖搭建 VSCode 服务器与 Syncthing 服务
https://blog.udon.eu.org/archives/375e7789.html
作者
Kare Udon
发布于
2021年3月20日
许可协议