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秒了。。但最终文件还是上传成功了就是。。