# EasyNode > 一个简易的个人Linux服务器管理面板(基于Node.js). > 前端仓库地址:https://github.com/chaos-zhu/easynode_web - [功能简介](#功能简介) - [安装指南](#安装指南) - [服务端安装](#服务端安装) - [Docker镜像](#docker镜像) - [一键脚本](#一键脚本) - [手动部署](#手动部署) - [客户端安装](#客户端安装) - [X86架构](#x86架构) - [ARM架构](#arm架构) - [升级指南](#升级指南) - [服务端](#服务端) - [客户端](#客户端) - [版本日志](#版本日志) - [安全与说明](#安全与说明) - [开发](#开发) - [Q&A](#qa) - [感谢Star](#感谢star) - [License](#license) ## 功能简介 > 多服务器管理; 通过`websocket实时更新`服务器基本信息: **系统、公网IP、CPU、内存、硬盘、网卡**等 ![服务器面板](./images/v1.2-1.png) > 基于浏览器解决`SSH&SFTP跨端`烦恼——**Web SSH**&**Web SFTP** ![websftp功能](./images/v1.2-2.png) > 在线编辑文件 ![edit](./images/v1.2-3.png) ## 安装指南 ### 服务端安装 - 依赖Node.js环境 - 占用端口:8082(http端口)、22022(客户端端口) - 建议使用**境外服务器**(最好延迟低)安装服务端,客户端信息监控与webssh功能都将以`该服务器作为跳板机` #### Docker镜像 > 注意:网速统计功能可能受限,docker网络将使用host模式(与宿主机共享端口,占用: 8082、22022) - 如果你是第一次运行,先创建一个volume用于保存数据 ```shell docker volume create --name easynode-server ``` ```shell docker run -d --net=host --name=easynode-server -v easynode-server:/easynode-server/app/storage/ chaoszhu/easynode:v1.2.1 ``` - 如果你想清除容器与数据 ```shell docker rm -f easynode-server && docker volume remove easynode-server ``` 访问:http://yourip:8082 #### 一键脚本 - **依赖Linux基础命令工具:curl wget git zip tar;如未安装请先安装:** > ubuntu/debian: `apt install curl wget git zip tar -y` > > centos: `yum install curl wget git zip tar -y` - 运行环境:[Node.js](https://nodejs.org/en/download/) **v14+** ```shell wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubusercontent.com/chaos-zhu/easynode/v1.2/easynode-server-install.sh | bash ``` 访问:http://yourip:8082 - 查看日志:`pm2 log easynode-server` - 启动服务:`pm2 start easynode-server` - 停止服务:`pm2 stop easynode-server` - 删除服务:`pm2 delete easynode-server` #### 手动部署 1. 安装Node.js 2. 安装pm2、安装yarn 3. 拉取代码:git clone https://github.com/chaos-zhu/easynode.git 4. 安装依赖:yarn 5. 启动服务:pm2 start server/app/main.js --name easynode-server 6. 访问:http://yourip:8082 - 默认登录密码:admin(首次部署完成后请及时修改). --- ### 客户端安装 - 占用端口:22022 #### X86架构 ```shell wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubusercontent.com/chaos-zhu/easynode/v1.2/easynode-client-install-x86.sh | bash ``` #### ARM架构 ```shell wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubusercontent.com/chaos-zhu/easynode/v1.1/easynode-client-install-arm.sh | bash ``` > 卸载 ```shell wget -qO- --no-check-certificate https://ghproxy.com/https://raw.githubusercontent.com/chaos-zhu/easynode/v1.2/easynode-client-uninstall.sh | bash ``` > 查看客户端状态:`systemctl status easynode-client` > > 查看客户端日志: `journalctl --follow -u easynode-client` > > 查看详细日志:journalctl -xe --- ## 升级指南 - **v1.2 to v1.3** 因储存方式变更,需重新安装服务 - **v1.1 to v1.2** ### 服务端 > v1.1对所有的敏感信息全部加密,所有的v1.0为加密的信息全部失效. 主要影响已存储的ssh密钥. > > **还原客户端列表:** 先备份`app\config\storage\host-list.json`, 使用一键脚本或者手动部署的同志安装好使用备份文件覆盖`\app\storage`下的同名文件即可。 > > 由于加密文件调整,使用docker镜像的v1.1一键脚本自己从镜像里把备份抠出来再重新构建镜像. ### 客户端 > v1.2未对客户端包进行改动,客户端无需重复安装. 不会备份的在面板重新添加客户端机器即可. ### 版本日志 - [CHANGELOG](./CHANGELOG.md) ## 安全与说明 > 本人非专业后端,此服务全凭兴趣开发. 由于知识受限,并不能保证没有漏洞的存在,重要生产服务器最好不要使用此服务!!! > 所有服务器信息相关接口已做`jwt鉴权`, 安全信息均使用加密传输与储存! > webssh功能需要的密钥信息全部保存在服务端服务器的`app\storage\ssh-record.json`中. 在保存ssh密钥信息到服务器储存与传输过程皆已加密,`不过最好还是套https使用` ## 开发 1. 拉取代码,环境 `nodejs``>=20` 2. cd到项目根目录,`yarn install` 执行安装依赖 3. `yarn dev`启动项目 4. web: `http://localhost:18090/` ## Q&A - [Q&A](./Q%26A.md) ## 感谢Star - 你的Star是我更新的动力,感谢~ ## License [MIT](LICENSE). Copyright (c).