当前位置: 首页 > news >正文

【Linux】CodeServer:云IDE部署

Code-server 是一个开源项目,它允许你在任何地方通过浏览器访问 Visual Studio Code(VS Code)编辑器。这意味着你可以在远程服务器或云端运行 VS Code,并通过浏览器进行编码、调试和开发,而不需要在本地安装 VS Code。

安装与部署

下载 code-server

首先,你需要从 code-server 的 GitHub 发布页面下载 .tar.gz 压缩包。以下命令将下载 code-server 版本 4.92.2 的压缩包:

wget https://github.com/coder/code-server/releases/download/v4.92.2/code-server-4.92.2-linux-amd64.tar.gz

此命令会将压缩包下载到当前工作目录。

解压压缩包

下载完成后,使用以下命令解压缩包:

tar -xzf code-server-4.92.2-linux-amd64.tar.gz

这会在当前目录下创建一个名为 code-server-4.92.2-linux-amd64 的文件夹,里面包含 code-server 的所有必要文件。

创建符号链接

为了方便使用,将 code-server 的二进制文件创建一个符号链接到 /usr/local/bin/usr/bin 目录。这样你可以在任何地方直接使用 code-server 命令。执行以下命令:

sudo ln -s $PWD/code-server-4.92.2-linux-amd64/bin/code-server /usr/local/bin/code-server

如果你更愿意将符号链接放到 /usr/bin 目录,也可以使用以下命令:

sudo ln -s $PWD/code-server-4.92.2-linux-amd64/bin/code-server /usr/bin/code-server

验证安装

验证 code-server 是否安装成功,可以运行以下命令查看其版本信息:

code-server --version

如果输出了版本信息,如 4.92.2,则说明 code-server 安装成功。

配置 code-server

在默认配置下,code-server 只允许本地访问。你需要配置它以便远程访问。首先,创建配置目录和文件:

mkdir -p ~/.config/code-server
vi ~/.config/code-server/config.yaml

config.yaml 文件中添加以下配置:

bind-addr: 0.0.0.0:8080
auth: password
password: yourpassword
cert: false

以下是 config.yaml 文件中各参数的详细解释,以表格形式展示:

参数名类型默认值说明
bind-addrstring127.0.0.1:8080指定 code-server 的监听地址和端口。例如,0.0.0.0:8080 可以让 code-server 接收来自任何外部设备的连接,使用端口 8080
authstringpassword指定用户认证方式。password 使用密码保护访问;none 禁用认证。
passwordstring如果 auth 设置为 password,此项用于指定访问 code-server 的密码。未设置时,code-server 将生成随机密码并在启动时打印在控制台上。
hashed-passwordstring使用 SHA-256 散列存储密码而不是明文存储。如果配置了 hashed-passwordpassword 将被忽略。
certbooleanfalse是否启用 HTTPS 访问。设置为 true 时,将加载 SSL 证书。
cert-keystring指定 SSL 证书的私钥路径。需与 cert 参数配合使用以启用 HTTPS。
cert-filestring指定 SSL 证书的路径。需与 cert 参数配合使用以启用 HTTPS。
disable-telemetrybooleanfalse是否禁用 code-server 的遥测功能。遥测功能收集匿名使用数据以改进产品。
disable-updatesbooleanfalse是否禁用 code-server 自动更新检查功能。
disable-workspace-trustbooleanfalse是否禁用工作区信任功能,设置为 true 可能影响部分扩展的行为。
enable-authbooleantrue是否启用身份验证功能,通常与 auth 参数一起使用。设置为 false 可以完全禁用身份验证。
log-levelstringinfo设置 code-server 的日志记录级别。可选值:trace, debug, info, warn, error
max-old-space-sizenumber无(依赖系统设置)限制 code-server 使用的最大内存大小(以 MB 为单位),以防止在高负载下占用过多的系统内存。
proxy-domainarray of strings设置多个域名作为代理域名,允许通过这些域名访问 code-server。适用于多域名或子域名场景。
enable-localserverbooleantrue启用或禁用本地服务器访问。设置为 false 时,即使 bind-addr 设置为 127.0.0.1,本地访问也将被禁用。

启动 code-server

你可以使用以下命令直接启动 code-server

code-server

如果你希望将 code-server 放在后台运行,可以使用 nohup

nohup code-server &

code-server 默认会在 localhost:8080 上运行,你可以通过浏览器访问它。

服务管理

systemd 是 Linux 的初始化系统和服务管理器。你可以创建一个 systemd 服务文件来管理 code-server 的启动和停止。

创建服务文件

创建一个新的 systemd 服务文件,例如 /etc/systemd/system/code-server.service

sudo vi /etc/systemd/system/code-server.service

编辑服务文件

在服务文件中添加以下内容:

[Unit]
Description=code-server
Documentation=https://coder.com/docs/code-server/
After=network.target[Service]
Type=simple
User=<your-username>
ExecStart=/usr/local/bin/code-server --config /home/<your-username>/.config/code-server/config.yaml
Restart=on-failure[Install]
WantedBy=multi-user.target

替换 <your-username> 为实际的用户名。确保 ExecStart 指向你的 code-server 二进制文件和配置文件的位置

重新加载 systemd 配置

执行以下命令以重新加载 systemd 配置,使新创建的服务文件生效:

sudo systemctl daemon-reload

启动 code-server 服务

启动 code-server 服务:

sudo systemctl start code-server

启用 code-server 服务

设置 code-server 在系统启动时自动启动:

sudo systemctl enable code-server

检查服务状态

确认 code-server 服务正在运行:

sudo systemctl status code-server

你应该看到类似如下的输出,显示 code-server 正在运行:

● code-server.service - code-serverLoaded: loaded (/etc/systemd/system/code-server.service; enabled; vendor preset: enabled)Active: active (running) since ...

访问 code-server

一旦 code-server 启动,你可以通过浏览器访问它,默认情况下是在 http://<your-server-ip>:8080

在这里插入图片描述

卸载与解除操作

停止 code-server 服务

首先,确保 code-server 服务已停止。如果服务正在运行,可以使用以下命令停止它:

sudo systemctl stop code-server

禁用 code-server 服务

为了确保在系统启动时不会自动启动 code-server,你需要禁用该服务:

sudo systemctl disable code-server

删除 systemd 服务文件

删除 code-serversystemd 服务文件以完全移除它的服务管理配置:

sudo rm /etc/systemd/system/code-server.service

重新加载 systemd 配置

删除服务文件后,重新加载 systemd 配置以应用更改:

sudo systemctl daemon-reload

删除 code-server 文件

根据你之前的安装方法,删除 code-server 的安装文件和符号链接:

sudo rm /usr/local/bin/code-server
sudo rm -rf /root/code-server-4.92.2-linux-amd64

注意:确保路径正确,如果你将 code-server 安装在其他目录,请调整相应的路径。

删除 code-server 配置文件

如果你不再需要 code-server 的配置文件,可以删除它们:

rm -rf ~/.config/code-server

这将删除用户目录下的 code-server 配置文件。

检查服务状态

确认 code-server 服务已经完全被移除,并且没有在运行:

sudo systemctl status code-server

如果一切正确,你会看到 code-server 服务已经被卸载,不会再出现在系统中。

检查端口

如果之前 code-server 使用了特定的端口,如 8080,你可以检查该端口是否已被释放:

sudo netstat -tulnp | grep 8080

确保没有其他服务占用这个端口,以避免冲突。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • word并排查看,同步滚动
  • springboot定时任务@scheduled自定义配置定时开关
  • 软考高项彻底没用了?谁说的?站出来,我保证不笑场!
  • 微知-nandflash和norflash名字为什么叫nand和nor?主要区别是什么?
  • Java Script网页设计案例
  • MySQL大量数据偏移查询优化:从LIMIT偏移到基于ID的数据读取
  • JavaEE 第16节 线程安全的集合类
  • 华为设备默认密码
  • 【人工智能】多模态AI:如何通过融合文本、图像与音频重塑智能系统未来
  • 【数仓建模过程】Spark数据清洗篇
  • 深入理解DPO(Direct Preference Optimization)算法
  • erlang学习:用OTP构建系统1
  • 单链表——随机链表的复制
  • Mask R-CNN论文原理讲解
  • 【C#】静态成员(static)与实例成员(非静态成员)的理解
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • Android交互
  • Codepen 每日精选(2018-3-25)
  • ES6--对象的扩展
  • Invalidate和postInvalidate的区别
  • Javascript设计模式学习之Observer(观察者)模式
  • Sass 快速入门教程
  • Spark学习笔记之相关记录
  • SpingCloudBus整合RabbitMQ
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 从0实现一个tiny react(三)生命周期
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 每天10道Java面试题,跟我走,offer有!
  • 你不可错过的前端面试题(一)
  • 深入 Nginx 之配置篇
  • 实现菜单下拉伸展折叠效果demo
  • 说说动画卡顿的解决方案
  • 追踪解析 FutureTask 源码
  • 7行Python代码的人脸识别
  • 从如何停掉 Promise 链说起
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • #HarmonyOS:Web组件的使用
  • %@ page import=%的用法
  • (07)Hive——窗口函数详解
  • (1)Android开发优化---------UI优化
  • (2022 CVPR) Unbiased Teacher v2
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (Java入门)学生管理系统
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • (纯JS)图片裁剪
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)计算机毕业设计ssm电影分享网站
  • (一一四)第九章编程练习
  • (转)Mysql的优化设置
  • (状压dp)uva 10817 Headmaster's Headache
  • .Family_物联网