跑在浏览器的 vscode | code-server

    源代码地址: 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

    评论栏