威联通:“私人定制”在线代码编辑器
0x00 前言
本文基于以下软硬件系统测试,不能完全保证其他系统的兼容性。
QNAP TS-453Bmini 2+8G 内存
QTS 4.4.1.1216
code-server 1.41.1 with chinese-language-pack 1.41.0
基于docker的code-server安装教程有很多,比如站内这一篇群晖的安装。打包好的镜像也有很多,官方的codercom/code-server,第三方的比如linuxserver/code-server(官方之外最热门的)、xiumu/code-server-zh-cn(版本比较低,1.39,好在内置中文语言包)。另外你也可以自己打包,容器的好处确实很多,即开即用,但是我的原则就是能上实机就上实机,能瞎折腾就瞎折腾(瞎说)。
废话不多说,直接开始!
0x01 安装
警告:任何基于实机的操作都有可能造成QTS系统无法挽回的错误,除非你很明确知道这条命令要做什么。
从code-server项目的release页面根据你的机型选择linux-arm64或者linux-x86_64下载下来,解压到NAS上,注意code-server这个文件就是我们所需的已经编译好的程序文件。
ssh连接到NAS系统,切换到code-server所在目录。
首先我们先安装中文语言包插件,从vscode官方市场下载适配的中文语言包。目前code-server最新的版本是1.41.1,我测试了1.41.0版本的中文语言包能够正常使用,通过浏览器抓包(F12)得到下载地址,替换相应的版本号即可构造需要版本的地址。
https://marketplace.visualstudio.com/_apis/public/gallery/publishers/MS-CEINTL/vsextensions/vscode-language-pack-zh-hans/<version>/vspackage
插件安装命令
./code-server --install-extension <your-language-pack-path>
插件卸载命令
./code-server --uninstall-extension <extension-id>
extesion-id在/<your-user-path>/.local/share/code-server/extensions目录下面查看。
更多code-server命令请使用帮助命令查看。
code-server -h
由于ssh直接启动code-server,断开ssh以后会关闭,而且也需要避免重启和系统升级带来的问题,所以需要写个shell脚本加入计划任务和开机启动。
启用默认级别日志,不启用ssl证书,不启用密码认证,默认使用8080端口,如果与其他服务有冲突请使用--port <port-number>自行修改。有需要可以使用--cert <your-cert-path>和--cert-key <your-cert-key-path>选项启用ssl证书(腾讯云有免费一年的TrustAsia证书),使用--auth password选项,同时设置系统环境变量export PASSWORD="your-own-password"来设置密码认证。
#!/bin/sh
#
case "$1" in
start)
sudo /<your-code-server-path>/code-server --locale zh-cn --auth none &>/dev/null
;;
stop)
sudo killall -9 code-server &>/dev/null
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
本来想通过修改daemon_mgr.conf守护进程配置文件加入后台,发现重启NAS后会丢失用户修改的内容,还是只能通过计划任务和开机启动脚本来实现稳定运行。
QTS的计划任务配置文件在/etc/config/crontab,可以按照自己的需求设置定时重启任务。
0 0 * * * /<your-shell-script-path>/<you-shell-script> restart &>/dev/null
crontab命令编写可以参考此处。
QTS自带也有autorun.sh开机脚本管理,虽然重启NAS不会丢失,但是QTS系统升级后会丢失,所以推荐安装第三方商店里的BashIT来管理。想要做到完美也许要打包成qpkg安装了,作为新手啃不动开发文档只能摊手了。
daemon_mgr code-server start "/<your-shell-script-path>/<you-shell-script> start" &>/dev/null
重启NAS后,管理脚本会自动运行code-server,浏览器打开http://<your-nas-ip>:8080/即可使用。
0x02 后记
如果你的Windows上安装了vscode,那么可以把%userprofile%/.vscode/下面的extensions目录直接复制到/<your-user-path>/.local/share/code-server/下面覆盖相应的插件目录,如果插件能够兼容,启动code-server后就能直接使用了。(不推荐使用,避免隐形的不兼容问题)
查看log来定位问题
/<your-user-path>/.local/share/code-server/logs
搜索issues来解决问题
本文只是介绍编辑器的安装,不是集成开发环境的IDE的部署,所以能不能兼容大多数开发环境就不清楚了,希望有大佬能够分享下QDK的开发使用。
苦瓜坊主
校验提示文案
candura
校验提示文案
苦瓜坊主
校验提示文案
candura
校验提示文案