OpenWrt软路由(NanoPi For NAS All In One R4S ):codeserver浏览器中的VSCode

NO.1
code-server简介

github地址

https://github.com/coder/code-server

文档地址

https://coder.com/docs/code-server/latest

浏览器中的 VS Code

在任何地方的任何机器上运行VS Code并在浏览器中访问它

img

NO.2
使用场景

不太习惯openWrt上docker的可视化面板操作

虽然该有的变量都有,也都翻译为中文,简单的镜像可以立即拉取并运行

但是docker-compose.yml用惯了还是觉得相对简单一些

img

docker-compose.yml的方式方便扩展一些面板没有的变量,比如.env配置文件

同时设置数据卷和文件目录相对可控,可以选择自定义文件夹存放项目,如相对路径,设置单个文件夹和单个文件权限

方便其他设备或者下次复用docker-compose.yml配置文件,一行docker-compose up直接启动,无需多次反复面板勾选确认和输入,容易迁移和备份

img

但是对于openWrt而言,如果没有设置aapanel面板,一些拖拽文件和编辑代码的功能,使用编辑docker-compose.yml的操作比可视化面板更为复杂一些

如使用vi,和nano编辑,通常要记住一些快捷键,且是键盘操作,鼠标不起作用,不能快速定位和修改

这个时候就要用到code-server,一个运行在浏览器的VSCode

可以在浏览器中打开openWrt的VScode编辑界面,可以直接编辑文件,可以开启终端,也可以拖拽文件

有了它,我们可以远程开发代码,部署项目,网页ssh,大部分操作就是ctrl+c,ctrl+v

NO.3
code-server安装

官方文档

https://coder.com/docs/code-server/latest/install#docker

docker文档

https://hub.docker.com/r/linuxserver/code-server

使用文档的docker-compose.yml

img

新建docker-compose.yml的配置文件 

注意,下列配置文件设置的参数有

密码为password(可以修改为你自己的密码

code-server可以查看和修改的文件目录路径为 / (也就是整个linux系统)

端口映射为3002(后续使用IP:3002访问)

version: "2.1"
services:
code-server:
image: lscr.io/linuxserver/code-server:latest
container_name: code-server
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- PASSWORD=password #optional
- HASHED_PASSWORD= #optional
- SUDO_PASSWORD=password #optional
- SUDO_PASSWORD_HASH= #optional
- PROXY_DOMAIN=code-server.my.domain #optional
- DEFAULT_WORKSPACE=/config/workspace #optional
volumes:
- ./config:/config
- /:/config/workspace
ports:
- 3002:8443
restart: unless-stopped

拉取镜像并运行

docker-compose up

img

运行成功

img

开放端口

点击菜单,网络->防火墙->通信协议

添加codeServer,端口3002

img

NO.4
code-server使用

访问ip:端口

http://192.168.100.1:3002/

进入页面,需要输入密码(password)

img

勾选并定义信任这个设备

img

点击选择VSCode主题样式

img

本文选择Dark+(暗色)

img

点击标记完成

点击右下角的弹框,标识明白

img

点击右侧目录

尝试编辑文件,如本文的docker-compose.yml配置文件

可以在浏览器中直接编辑了

还可以安装各种语法插件,其他辅助插件等

img

点击红框区域,可以建立新的终端

可以看到直接在浏览器终端,进入对应的目录,无需单独ssh

img

更多方式参考官方使用说明即可,和平时使用VScode基本一致

NO.5
Tips

目前解决了代码编辑的方式,使用code-server

后续会尝试使用filebrowser,来解决文件夹可视化和浏览器文件交互的问题(使用docker)

特别注意

原本打算使用npm全局安装code-server的方式,但是发现它会占用软件包的空间,不仅提示空间不足导致无法安装,还会因为npm缓存把软件包空间占满

所以不要随便尝试npm的方法,能够docker就使用docker

END.

推荐阅读

OpenWrt软路由(NanoPi For NAS All In One R4S ):Docker安装HomeAssistant

OpenWrt软路由(NanoPi For NAS All In One R4S ):HomeAssistant中hacs安装

OpenWrt软路由(NanoPi For NAS All In One R4S ):网易云音乐 Node.js API