静看光阴荏苒
不管不顾不问不说也不念

Termix:开源的一体化服务器管理平台

Termix是一个开源、永久免费、自托管的一体化服务器管理平台。它提供了一个基于网页的解决方案,通过一个直观的界面管理你的服务器和基础设施。Termix提供SSH终端访问、SSH隧道功能以及远程文件编辑,还会陆续添加更多工具。

目前已实现的功能:

SSH 终端访问 – 功能完整的终端,支持分屏(最多 4 个面板)和标签系统
SSH 隧道管理 – 创建和管理 SSH 隧道,支持自动重连和健康监控
远程文件编辑器 – 直接在远程服务器编辑文件,支持语法高亮和文件管理功能(上传、删除、重命名等)
SSH 主机管理器 – 保存、组织和管理 SSH 连接,支持标签和文件夹
服务器统计 – 查看任意 SSH 服务器的 CPU、内存和硬盘使用情况
用户认证 – 安全的用户管理,支持管理员控制、OIDC 和双因素认证(TOTP)
现代化界面 – 使用 React、Tailwind CSS 和 Shadcn 构建的简洁界面
语言支持 – 内置中英文支持

计划功能:

增强管理员控制 – 提供更精细的用户和管理员权限控制、共享主机等功能
主题定制 – 修改所有工具的主题风格
增强终端支持 – 添加更多终端协议,如 VNC 和 RDP(有类似 Apache Guacamole 的 RDP 集成经验者请通过创建 issue 联系我)
移动端支持 – 支持移动应用或 Termix 网站移动版,让你在手机上管理服务器

安装Docker和NGINX:

apt -y update
apt -y install curl nginx python3-certbot-nginx
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

创建目录/compose文件:

mkdir /opt/termix && cd /opt/termix

写入如下配置:

services:
  termix:
    image: ghcr.io/lukegus/termix:latest
    container_name: termix
    restart: unless-stopped
    environment:
      PORT: "8080"
    ports:
      - "127.0.0.1:8080:8080"
    volumes:
      - termix-data:/app/data
volumes:
  termix-data:
    driver: local

启动:

docker compose up -d

配置NGINX反向代理:

nano /etc/nginx/sites-available/termix

写入如下配置:

upstream termix {    
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name termix.example.com;
    client_max_body_size 0;

    access_log /var/log/nginx/termix_access.log;
    error_log /var/log/nginx/termix_error.log;

    location / {
        proxy_pass http://termix;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

启用站点:

ln -s /etc/nginx/sites-available/termix /etc/nginx/sites-enabled/termix

签发SSL证书:

certbot --nginx --email example@lala.im --agree-tos --no-eff-email

目前的版本有个问题,Termix在容器里面也是用的NGINX,但是容器里面的这个NGINX没有配置接收客户端的X-Forwarded-For标头,这会导致Termix获取不到客户端的真实IP,不过这问题下个版本应该就修了

访问termix.example.com创建管理员账号,登录进去后,如果你是自用的话建议把这个用户注册的功能关闭掉:

效果:

这个文件管理的功能非常牛逼,可以预览图片、听音乐,还能播放视频:

这个文件管理目前有个问题,上传大文件的时候会提示上传失败,控制台会报一个超时错误,不知道什么时候能够修复=-=我在反代的NGINX配置了下面的内容也不行:

proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;

好像是程序硬编码超时时间为30秒了。。但最终文件还是上传成功了就是。。

赞(1)
未经允许不得转载:荒岛 » Termix:开源的一体化服务器管理平台
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

分享创造快乐

广告合作资源投稿