菜单

配置

相关源文件

本文档涵盖了 code-server 的配置选项和系统。它解释了如何通过命令行参数、配置文件和环境变量来配置 code-server。

概述

code-server 通过多种来源提供灵活的配置

  1. 命令行参数
  2. 配置文件 (YAML)
  3. 环境变量

这些配置选项控制身份验证、网络、文件访问、扩展和外观等方面。

来源: src/node/cli.ts323-459 src/node/cli.ts500-631 src/node/entry.ts7-61

配置源和优先级

code-server 按以下顺序加载配置,后面的来源会覆盖前面的来源

  1. 默认值
  2. 配置文件
  3. 命令行参数
  4. 环境变量 (部分设置)

命令行参数

命令行参数是配置 code-server 最直接的方式。运行 code-server --help 查看所有可用选项。

示例

配置文件

配置文件使用 YAML 格式,默认位置如下:

  • Linux/macOS: ~/.config/code-server/config.yaml
  • Windows: %USERPROFILE%\AppData\Roaming\code-server\config.yaml

您可以使用 --config 标志或 CODE_SERVER_CONFIG 环境变量指定自定义配置文件位置。

示例配置文件

环境变量

几个环境变量可以覆盖配置选项

  • PASSWORD: 设置身份验证密码
  • HASHED_PASSWORD: 设置哈希密码(优先级高于 PASSWORD
  • GITHUB_TOKEN: 设置 GitHub 身份验证令牌
  • PORT: 覆盖 bind-addr 中指定的端口
  • CODE_SERVER_HOST: 覆盖 bind-addr 中指定的宿主
  • CS_DISABLE_FILE_DOWNLOADS: 设置为 "1" 或 "true" 时禁用文件下载
  • CODE_SERVER_CONFIG: 指定配置文件路径

来源: src/node/cli.ts574-603 src/node/cli.ts665-690 src/node/cli.ts696-723

配置选项

下表显示了可通过命令行标志、配置文件或环境变量设置的关键配置选项

选项描述默认CLI 标志环境变量
身份验证类型身份验证类型password--auth-
密码用于认证的密码(已生成)--passwordPASSWORD
哈希密码Argon2 哈希密码---hashed-passwordHASHED_PASSWORD
绑定地址要绑定的地址127.0.0.1:8080--bind-addr-
主机要绑定的宿主localhost--hostCODE_SERVER_HOST
端口要绑定的端口8080--portPORT
HTTPS 证书SSL 证书路径(自签名)--cert-
用户数据目录用户数据路径(特定于平台)--user-data-dir-
扩展目录扩展路径(在用户数据目录中)--extensions-dir-
禁用遥测关闭遥测false--disable-telemetry-
禁用更新检查关闭更新检查false--disable-update-check-
禁用文件下载阻止文件下载false--disable-file-downloadsCS_DISABLE_FILE_DOWNLOADS
禁用文件上传阻止文件上传false--disable-file-uploads-
代理域用于代理端口的域---proxy-domain-
禁用代理禁用域和路径代理false--disable-proxyCS_DISABLE_PROXY
GitHub 认证GitHub 身份验证令牌---github-authGITHUB_TOKEN
应用名称窗口标题中的名称code-server--app-name-
欢迎文本登录时显示的文本(默认)--welcome-text-

来源: src/node/cli.ts139-292 src/node/cli.ts574-623

认证配置

code-server 支持两种身份验证类型

  1. 密码身份验证 (--auth password): 要求用户输入密码
  2. 无身份验证 (--auth none): 允许任何人访问服务器

来源: src/node/util.ts177-201 src/node/util.ts223-262 src/node/util.ts272-291 src/node/http.ts100-139 src/node/routes/login.ts71-121

密码配置

有几种配置密码的方法

  1. 明文密码:

    • 在配置文件中: password: your-password
    • 环境变量: PASSWORD=your-password
  2. 哈希密码:

    • 在配置文件中: hashed-password: $argon2i$v=19$m=4096...
    • 环境变量: HASHED_PASSWORD=$argon2i$v=19$m=4096...

哈希密码的优先级高于明文密码。出于安全考虑,建议使用哈希密码。

当未显式设置密码时,code-server 在首次运行时会生成一个随机密码并将其保存在配置文件中。

来源: src/node/cli.ts574-594 src/node/cli.ts648-654 src/node/cli.ts677-680

网络配置

绑定到地址

您可以控制 code-server 在哪里监听连接

或者,使用 --bind-addr 标志,或者同时设置 --host--port

HTTPS/TLS 配置

对于 HTTPS,您可以提供证书和密钥

如果启用了 cert 但未提供路径,code-server 会生成自签名证书。

代理配置

code-server 可以将请求代理到本地运行的服务

这允许 code-server 将类似 8080.example.com 的请求代理到 localhost:8080

您可以使用 --disable-proxy 或设置 CS_DISABLE_PROXY=1 来禁用代理。

来源: src/node/cli.ts725-775 src/node/cli.ts89-108 src/node/http.ts78-95

扩展和 GitHub 集成

安装扩展

您可以在启动时安装扩展

GitHub 身份验证

启用扩展中的 GitHub 功能

您也可以通过 GITHUB_TOKEN 环境变量来设置此项。

来源: src/node/cli.ts573-598

文件系统配置

用户数据目录

用户数据目录包含设置、扩展和其他用户特定数据

如果未指定,则默认为

  • Linux: ~/.local/share/code-server
  • macOS: ~/Library/Application Support/code-server
  • Windows: %APPDATA%\code-server

扩展目录

扩展目录包含已安装的 VS Code 扩展

默认情况下,它位于用户数据目录中。

文件操作

您可以限制文件操作

来源: src/node/cli.ts504-514 src/node/util.ts58-87

部署特定配置

Docker 环境变量

在 Docker 中运行 code-server 时,您可以设置环境变量

Helm Chart 配置

对于使用 Helm 的 Kubernetes 部署,values.yaml 中的关键值包括

您还可以配置额外的参数、环境变量等。

来源: ci/helm-chart/values.yaml1-209 ci/helm-chart/Chart.yaml1-24

默认配置

当 code-server 首次运行时没有配置文件,它会在标准位置创建一个默认配置文件,其中包含

来源: src/node/cli.ts648-654 src/node/cli.ts665-690

调试配置

如果您遇到配置问题,您可以

  1. 运行并增加日志记录:--log debug--verbose
  2. 通过检查服务器日志来查看实际使用的配置
  3. 使用 code-server --help 验证配置文件路径

来源: src/node/cli.ts519-554

配置示例

基本密码认证

带自定义域名的 HTTPS

在反向代理后面

本地开发无需认证

自定义扩展和 GitHub 集成

来源: src/node/cli.ts139-292 src/node/cli.ts500-631