【Linux】CodeServer:云IDE部署

news2024/9/25 11:11:46

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

配置说明:

  • bind-addr: 设置为 0.0.0.0:8080 以允许从外部访问。你可以根据需要修改端口号。
  • auth: 设置为 password 表示使用密码进行身份验证。
  • password: 在此处设置你的访问密码,以确保安全性。
  • cert: 设置为 false 以禁用 HTTPS。如果需要 HTTPS,请参考官方文档配置证书。

启动 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-server
   Loaded: 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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2084000.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EtherCAT 转 ModbusTCP 网关

设备简介 本产品是 EtherCAT 和 Modbus TCP 网关&#xff0c;使用数据映射方式工作。 本产品在 EtherCAT 侧作为 EtherCAT 从站&#xff0c;接 TwinCAT 、 CodeSYS 、 PLC等&#xff1b;在 ModbusTCP 侧做为 ModbusTCP 主站&#xff08; Client &#xff09;或从站…

<数据集>无人机识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;9229张 标注数量(xml文件个数)&#xff1a;9229 标注数量(txt文件个数)&#xff1a;9229 标注类别数&#xff1a;1 标注类别名称&#xff1a;[UAV] 使用标注工具&#xff1a;labelImg 标注规则&#xff1a;对类别…

我如何解决 java.lang.ClassNotFoundException:javax.xml.bind.DatatypeConverter

优质博文&#xff1a;IT-BLOG-CN 问题 我如何解决java.lang.ClassNotFoundException&#xff1a;javax.xml.bind.DatatypeConverter 2024-08-25T02:31:25.46202:00 ERROR 21868 --- [fintonic-oauth] [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet…

springAI框架学习总结

springAI 1.springAI基本介绍 springAI是一个AI工程应用框架&#xff0c;其目标是将 Spring 生态系统设计原则&#xff08;例如可移植性和模块化设计&#xff09;应用于 AI 领域&#xff0c;并推广使用 POJO 作为 AI 领域应用程序的构建块。 2.特性 灵活的AIP支持chat,text…

Matlab R2022b使用Camera Calibrator工具箱张正友标定法进行相机标定附带标定前后对比代码

打开Camera Calibrator 在这添加你拍摄的图片 根据你每个方块的实际边长填写&#xff0c;我是15mm。 通俗一点&#xff0c;要k3就选3 Coefficients&#xff0c;否则为0&#xff1b;要p1、p2就选Tangential Distortion。然后进行计算。 可以点击右侧误差高的选中图像进行移…

【计算机网络】计算机网络的分层结构

为什么要分层&#xff1f;为什么要制定协议&#xff1f; 计算机网络功能复杂→采用分层结构&#xff0c;将诸多功能合理地划分在不同层次→对等层之间制定协议&#xff0c;以实现功能。

探索Scratch编程:重温《西游记-大战蜘蛛精》

小虎鲸Scratch资源站-免费Scratch作品源码,素材,教程分享平台! 在编程教育的浪潮中&#xff0c;Scratch以其简单易用的特点&#xff0c;成为了孩子们学习编程的热门选择。今天&#xff0c;我们很高兴向大家介绍一款精彩的Scratch教学案例作品——《西游记-大战蜘蛛精》。这不仅…

【JAVA入门】Day27 - 集合体系结构综述

【JAVA入门】Day27 - 集合体系结构综述 文章目录 【JAVA入门】Day27 - 集合体系结构综述一、单列集合体系结构1.1 Collection 集合的基本方法1.2 Collection 集合的遍历方式1.2.1 迭代器遍历1.2.2 增强 for 遍历1.2.3 利用 Lambda 表达式进行遍历 1.3 List 集合的基本方法1.4 L…

pyhton __init__.py

文章目录 包和模块__init__.py概述导入包和使用模块控制导入行为 包和模块 在这样一个工程中&#xff0c;pkg是包(package)&#xff0c;module1.py和module2.py是模块(module)&#xff0c;在模块中还有定义的方法、变量等&#xff0c;可以统称为功能。 import可以导入包&…

Node-RED解析巴法云/小米的传感器数据

在前面的博文&#xff08;Node-RED订阅巴法云的数据并展示-CSDN博客&#xff09;中提到过&#xff0c;Node-RED对JSON格式的数据很友好&#xff0c;直接可以解析。不过巴法云默认的格式是小米所采用的格式&#xff0c;即&#xff1a;#温度#湿度#开关#。采用这种格式的好处就是巴…

【C++二分查找】2271. 毯子覆盖的最多白色砖块数

本文涉及的基础知识点 C二分查找 LeetCode2271. 毯子覆盖的最多白色砖块数 给你一个二维整数数组 tiles &#xff0c;其中 tiles[i] [li, ri] &#xff0c;表示所有在 li < j < ri 之间的每个瓷砖位置 j 都被涂成了白色。 同时给你一个整数 carpetLen &#xff0c;表…

C++ | Leetcode C++题解之第381题O(1)时间插入、删除和获取随机元素-允许重复

题目&#xff1a; 题解&#xff1a; class RandomizedCollection { public:unordered_map<int, unordered_set<int>> idx;vector<int> nums;/** Initialize your data structure here. */RandomizedCollection() {}/** Inserts a value to the collection. …

笔记报警管理

1. IOT创建新产品 睡眠检测带 2. 养老后台 添加了一个设备 睡眠检测带_201_1 3. 新增了模拟器(3个模拟js运行) 4. 创建了消费者组(默认DEFAULT) 5. 创建订阅(3个产品的上报信息 传给DEFAULT)消息处理 前面我们已经完成了设备的管理&#xff0c;现在&#xff0c;我们就来处…

50.x86游戏实战-XXX副本内瞬图

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

《前端攻城狮 · Snowflake 雪花算法》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

Ruff :是一个用Rust编写的极快的 Python linter 和代码格式化程序

安装 pip install ruff 语法检查 要对代码运行 linter&#xff0c;我们使用 ruff check . 如果你想在单个文件上运行它&#xff0c;请这样做 ruff check <filename.py> 总共有 415 个错误。其中 33 个可以修复&#xff01; 为了修复它们&#xff0c;我们使用标志--f…

深度学习实用方法 - 选择超参数篇

序言 在深度学习的浩瀚领域中&#xff0c;超参数的选择无疑是通往卓越模型性能的一把关键钥匙。超参数&#xff0c;作为训练前设定的、用于控制学习过程而非通过学习自动获得的参数&#xff0c;如学习率、批量大小、网络层数及节点数等&#xff0c;直接影响着模型的收敛速度、…

LLMOP 面向LLM编程,让你的接口和代码对LLM更友好!

LLM Oriented Programming ApiHug Lint 检查报告 - ApiHugApihug quality lint tools to check api design violationshttps://apihug.com/zhCN-docs/tool/apihug-lint ​LLMOP 面向LLM编程&#xff08;LLMOP&#xff09;代表了我们构思和设计API的范式转变。该方法旨在创建不…

TRIZ理论在传感技术创新中的应用优势

传感技术作为连接物理世界与数字世界的桥梁&#xff0c;正以前所未有的速度推动着社会进步与产业升级。而TRIZ&#xff08;发明问题解决理论&#xff09;这一强大的创新方法论&#xff0c;也开始悄然在传感技术领域绽放异彩&#xff0c;为创新者提供了前所未有的设计灵感与解决…

CCF CSP题解:因子化简(202312-2)

链接和思路 OJ链接&#xff1a;传送门。 问题重述 本题基于一个基本事实&#xff0c;即任何一个大整数 n n n都可以唯一地分解为如下形式 n p 1 t 1 p 2 t 2 ⋯ p m t m n p_1^{t_1} \times p_2^{t_2} \times \cdots \times p_m^{t_m} np1t1​​p2t2​​⋯pmtm​​其中…