源代码地址: https://github.com/cdr/code-server
docker 安装
基于 Docker 安装, 更多安装方式详见 https://github.com/cdr/code-server/blob/v3.8.0/doc/install.md
拉取镜像
docker pull codercom/code-server:latest
启动
# This will start a code-server container and expose it at http://127.0.0.1:8080.
# It will also mount your current directory into the container as `/home/coder/project`
# and forward your UID/GID so that all file system operations occur as your user outside
# the container.
#
# Your $HOME/.config is mounted at $HOME/.config within the container to ensure you can
# easily access/modify your code-server config in $HOME/.config/code-server/config.json
# outside the container.
mkdir -p ~/.config
docker run -it --name code-server -p 50191:8080 \
-v "$HOME/.config:/home/coder/.config" \
-v "/storage/g/app/coder:/home/coder/project" \
-e PASSWORD=password \
-u "$(id -u):$(id -g)" \
codercom/code-server:latest
打开 http://127.0.0.1:8080 就可看到了. 密码: password
本地安装
Ubuntu 20.04, 参考 https://github.com/cdr/code-server/blob/v3.8.0/doc/install.md
下载安装
curl -fOL https://github.com/cdr/code-server/releases/download/v3.8.0/code-server_3.8.0_amd64.deb
sudo dpkg -i code-server_3.8.0_amd64.deb
sudo systemctl enable --now code-server@$USER
运维
命令已集成到 systemd 中. 通过 systemd 管理
root@jansora:~/storage/app/coder# systemctl status code-server@root.service
● code-server@root.service - code-server
Loaded: loaded (/lib/systemd/system/code-server@.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-12-25 22:48:38 CST; 43s ago
Main PID: 140805 (node)
Tasks: 22 (limit: 8829)
Memory: 48.5M
CGroup: /system.slice/system-code\x2dserver.slice/code-server@root.service
├─140805 /usr/lib/code-server/lib/node /usr/lib/code-server
└─140866 /usr/lib/code-server/lib/node /usr/lib/code-server
Dec 25 22:48:38 jansora systemd[1]: Starting code-server...
Dec 25 22:48:38 jansora systemd[1]: Started code-server.
Dec 25 22:48:38 jansora code-server[140805]: [2020-12-25T14:48:38.765Z] info Wrote default config file to ~/.config/code-server/config.yaml
Dec 25 22:48:39 jansora code-server[140805]: [2020-12-25T14:48:39.109Z] info code-server 3.8.0 c4610f7829701aadb045d450013b84491c30580d
Dec 25 22:48:39 jansora code-server[140805]: [2020-12-25T14:48:39.110Z] info Using user-data-dir ~/.local/share/code-server
Dec 25 22:48:39 jansora code-server[140805]: [2020-12-25T14:48:39.124Z] info Using config file ~/.config/code-server/config.yaml
Dec 25 22:48:39 jansora code-server[140805]: [2020-12-25T14:48:39.124Z] info HTTP server listening on http://127.0.0.1:8080
Dec 25 22:48:39 jansora code-server[140805]: [2020-12-25T14:48:39.124Z] info - Authentication is enabled
Dec 25 22:48:39 jansora code-server[140805]: [2020-12-25T14:48:39.124Z] info - Using password from ~/.config/code-server/config.yaml
Dec 25 22:48:39 jansora code-server[140805]: [2020-12-25T14:48:39.124Z] info - Not serving HTTPS
MAC 安装
brew install code-server
==> Caveats
==> code-server
The launchd service runs on http://127.0.0.1:8080. Logs are located at /usr/local/var/log/code-server.log.
To start code-server:
brew services start code-server
Or, if you don't want/need a background service you can just run:
/usr/local/opt/code-server/bin/code-server
==> mongodb-community
To have launchd start mongodb/brew/mongodb-community now and restart at login:
brew services start mongodb/brew/mongodb-community
Or, if you don't want/need a background service you can just run:
mongod --config /usr/local/etc/mongod.conf
Brew release has been installed.
Run with:
code-server
配置
配置文件位于 ~/.config/code-server/config.yaml
bind-addr: 127.0.0.1:8080
auth: password
password: mewkmdasosafuio3422 # This is randomly generated for each config.yaml
cert: false
集成到 nginx 并启用 https
请自行修改 端口号, https 证书, 自定义域名
vs.conf
upstream vs {
server 127.0.0.1:8080;
}
server {
listen 443 ssl;
server_name sub.example.com;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /etc/nginx/certs/lets-encrypt/sub.example.com.cer;
ssl_certificate_key /etc/nginx/certs/lets-encrypt/sub.example.com.key;
location / {
proxy_pass http://vs;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
}
}
server {
listen 80;
server_name sub.example.com;
return https://sub.example.com$request_uri ;
}
常见疑问
https://github.com/cdr/code-server/blob/v3.8.0/doc/FAQ.md#docker-in-code-server-container