47
apps/termix/README.md
Normal file
47
apps/termix/README.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# Termix
|
||||
|
||||
服务器管理平台
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## 简介
|
||||
|
||||
Termix 是一个基于 Web 的服务器管理平台,具有 SSH 终端、隧道和文件编辑功能。
|
||||
|
||||
## 特性
|
||||
|
||||
### SSH 终端访问
|
||||
|
||||
功能齐全的终端,支持分屏(最多 4 个面板)和选项卡系统
|
||||
|
||||
### SSH 隧道管理
|
||||
|
||||
通过自动重新连接和运行状况监控创建和管理 SSH 隧道
|
||||
|
||||
### 远程文件编辑器
|
||||
|
||||
使用语法突出显示、文件管理功能(上传、删除、重命名、删除文件)直接在远程服务器上编辑文件
|
||||
|
||||
### SSH 主机管理器
|
||||
|
||||
使用标签和文件夹保存、组织和管理您的 SSH 连接
|
||||
|
||||
### 服务器统计信息
|
||||
|
||||
查看任何 SSH 服务器上的 CPU、内存和 HDD 使用情况
|
||||
|
||||
### 用户身份验证
|
||||
|
||||
通过管理控制和 OIDC 支持进行安全用户管理,并计划提供更多身份验证类型
|
||||
|
||||
### 现代 UI
|
||||
|
||||
使用 React、Tailwind CSS 和 Shadcn 构建的干净界面
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||

|
||||
14
apps/termix/data.yml
Normal file
14
apps/termix/data.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
additionalProperties:
|
||||
key: termix
|
||||
name: Termix
|
||||
tags:
|
||||
- WebSite
|
||||
- Local
|
||||
shortDescZh: 服务器管理平台
|
||||
shortDescEn: Server management platform
|
||||
type: website
|
||||
crossVersionUpdate: true
|
||||
limit: 0
|
||||
website: https://docs.termix.site/
|
||||
github: https://github.com/LukeGus/Termix/
|
||||
document: https://docs.termix.site/
|
||||
17
apps/termix/latest/data.yml
Normal file
17
apps/termix/latest/data.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
additionalProperties:
|
||||
formFields:
|
||||
- default: "/home/termix"
|
||||
edit: true
|
||||
envKey: TERMIX_ROOT_PATH
|
||||
labelZh: 数据持久化路径
|
||||
labelEn: Data persistence path
|
||||
required: true
|
||||
type: text
|
||||
- default: 8080
|
||||
edit: true
|
||||
envKey: PANEL_APP_PORT_HTTP
|
||||
labelZh: WebUI 端口
|
||||
labelEn: WebUI port
|
||||
required: true
|
||||
rule: paramPort
|
||||
type: number
|
||||
23
apps/termix/latest/docker-compose.yml
Normal file
23
apps/termix/latest/docker-compose.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
|
||||
services:
|
||||
termix:
|
||||
image: ghcr.io/lukegus/termix:latest
|
||||
container_name: ${CONTAINER_NAME}
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
restart: always
|
||||
networks:
|
||||
- 1panel-network
|
||||
ports:
|
||||
- ${PANEL_APP_PORT_HTTP}:8080
|
||||
env_file:
|
||||
- ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
|
||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
||||
volumes:
|
||||
- ${TERMIX_ROOT_PATH}/data:/app/data
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
- PORT=8080
|
||||
2
apps/termix/latest/envs/default.env
Normal file
2
apps/termix/latest/envs/default.env
Normal file
@@ -0,0 +1,2 @@
|
||||
# copyright© 2024 XinJiang Ms Studio
|
||||
ENV_FILE=.env
|
||||
2
apps/termix/latest/envs/global.env
Normal file
2
apps/termix/latest/envs/global.env
Normal file
@@ -0,0 +1,2 @@
|
||||
# copyright© 2024 XinJiang Ms Studio
|
||||
TZ=Asia/Shanghai
|
||||
17
apps/termix/latest/scripts/init.sh
Normal file
17
apps/termix/latest/scripts/init.sh
Normal file
@@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
# setup-1 add default values
|
||||
CURRENT_DIR=$(pwd)
|
||||
sed -i '/^ENV_FILE=/d' .env
|
||||
sed -i '/^GLOBAL_ENV_FILE=/d' .env
|
||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
||||
10
apps/termix/latest/scripts/uninstall.sh
Normal file
10
apps/termix/latest/scripts/uninstall.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
||||
17
apps/termix/latest/scripts/upgrade.sh
Normal file
17
apps/termix/latest/scripts/upgrade.sh
Normal file
@@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
# setup-1 add default values
|
||||
CURRENT_DIR=$(pwd)
|
||||
sed -i '/^ENV_FILE=/d' .env
|
||||
sed -i '/^GLOBAL_ENV_FILE=/d' .env
|
||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
||||
BIN
apps/termix/logo.png
Normal file
BIN
apps/termix/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.6 KiB |
80
apps/termix/logo.svg
Normal file
80
apps/termix/logo.svg
Normal file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="201.47884mm"
|
||||
height="168.06284mm"
|
||||
viewBox="0 0 201.47884 168.06284"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<defs
|
||||
id="defs2"/>
|
||||
<g
|
||||
id="layer1"
|
||||
transform="translate(-99.862555,-88.982953)">
|
||||
<g
|
||||
id="g2"
|
||||
transform="matrix(1.238566,0,0,1.238566,-497.97829,-269.39983)">
|
||||
<path
|
||||
id="path68"
|
||||
style="fill:#3f3f45;fill-opacity:1;stroke:none;stroke-width:3.175;stroke-linecap:square;stroke-miterlimit:8;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 493.79462,290.70621 h 140.28116 c 5.3225,0 9.6074,4.28488 9.6074,9.60736 v 113.30061 c 0,5.32248 -4.2849,9.60737 -9.6074,9.60737 H 493.79462 c -5.3224,0 -9.6073,-4.28489 -9.6073,-9.60737 V 300.31357 c 0,-5.32248 4.2849,-9.60736 9.6073,-9.60736 z"/>
|
||||
<path
|
||||
id="path69"
|
||||
style="baseline-shift:baseline;display:inline;overflow:visible;vector-effect:none;fill:#090909;fill-opacity:1;stroke-linecap:square;stroke-miterlimit:8;enable-background:accumulate;stop-color:#000000"
|
||||
d="m 493.88312,289.353 c -6.1745,0 -11.1952,5.02069 -11.1952,11.19518 v 113.30058 c 0,6.1745 5.0207,11.1957 11.1952,11.1957 h 140.28066 c 6.1745,0 11.1952,-5.0212 11.1952,-11.1957 V 300.54818 c 0,-6.1745 -5.0207,-11.19518 -11.1952,-11.19518 z m 0,3.17552 h 140.28066 c 4.4705,0 8.0197,3.5492 8.0197,8.01966 V 385.0717 H 485.86132 v -84.52352 c 0,-4.47046 3.5513,-8.01966 8.0218,-8.01966 z m -8.0218,95.71818 h 156.32216 v 25.60206 c 0,4.47047 -3.5492,8.01966 -8.0197,8.01966 H 493.88312 c -4.4705,0 -8.0218,-3.54919 -8.0218,-8.01966 z"/>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-weight:800;font-size:25.1593px;line-height:1.25;font-family:'Argentum Sans';-inkscape-font-specification:'Argentum Sans, Ultra-Bold';letter-spacing:0px;word-spacing:0px;fill:#e4e4e4;fill-opacity:1;stroke-width:0.336953"
|
||||
x="497.09778"
|
||||
y="410.97794"
|
||||
id="text69"><tspan
|
||||
id="tspan69"
|
||||
style="fill:#e4e4e4;fill-opacity:1;stroke-width:0.336953"
|
||||
x="497.09778"
|
||||
y="410.97794">>_</tspan></text>
|
||||
<path
|
||||
style="fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:6.11001;stroke-linecap:square;stroke-miterlimit:8;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 503.38876,299.01072 c -1.3765,0 -2.4846,1.10862 -2.4846,2.48512 v 14.07976 c 0,1.37651 1.1081,2.48461 2.4846,2.48461 h 115.66187 c 1.3765,0 2.4851,-1.1081 2.4851,-2.48461 v -14.07976 c 0,-1.3765 -1.1086,-2.48512 -2.4851,-2.48512 z"
|
||||
id="rect31"/>
|
||||
<rect
|
||||
style="fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.170087;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4.4"
|
||||
id="rect2"
|
||||
width="87.026749"
|
||||
height="16.21431"
|
||||
x="500.90417"
|
||||
y="321.50845"
|
||||
ry="2.1688685"/>
|
||||
<rect
|
||||
style="fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.170086;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4.4"
|
||||
id="rect3"
|
||||
width="113.76796"
|
||||
height="10.175971"
|
||||
x="500.90417"
|
||||
y="341.17099"
|
||||
ry="1.3611646"/>
|
||||
<rect
|
||||
style="fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.170086;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4.4"
|
||||
id="rect4"
|
||||
width="101.98421"
|
||||
height="10.175971"
|
||||
x="500.90417"
|
||||
y="354.79523"
|
||||
ry="1.3611646"/>
|
||||
<rect
|
||||
style="fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.170086;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4.4"
|
||||
id="rect5"
|
||||
width="52.736389"
|
||||
height="10.175971"
|
||||
x="500.90417"
|
||||
y="368.41943"
|
||||
ry="1.3611646"/>
|
||||
<path
|
||||
d="m 519.16076,303.77439 h -5.40281 l -3.07739,12.02691 h -3.35346 l 3.07738,-12.02691 h -5.32 l 0.63032,-2.46336 h 14.07626 z m 11.15437,11.98551 h -7.05883 q -1.63534,0 -2.95578,-0.7452 -1.42877,-0.80732 -1.84795,-2.56685 -0.3985,-1.75954 0.14176,-3.87096 0.53497,-2.09077 1.79731,-3.78819 1.38223,-1.84233 3.21402,-2.69105 1.00665,-0.45541 1.86162,-0.6417 0.8757,-0.18631 1.93142,-0.18631 h 6.54132 l -0.65679,2.56684 h -6.04451 q -0.80731,0 -1.42449,0.22771 -0.59119,0.207 -1.2724,0.76592 -0.68123,0.5589 -1.02594,1.09712 -0.33942,0.51751 -0.5407,1.30411 h 9.52219 l -0.65679,2.56688 h -9.48078 q -0.1801,0.70379 -0.13152,1.24201 0.0539,0.51751 0.38701,1.07642 0.35379,0.55892 0.79715,0.84872 0.46405,0.28979 1.18856,0.28979 h 6.35503 z m 16.95364,0 h -4.07798 l -2.30077,-5.65121 h -3.89167 l -1.446,5.65121 h -3.47767 l 3.7077,-14.49027 h 10.5986 q 1.80093,0 2.62068,1.40764 0.82503,1.38692 0.33776,3.29136 -0.38668,1.51112 -1.67114,2.56684 -1.28444,1.05574 -2.90582,1.32482 z m -2.07376,-9.93617 q 0.25953,-1.01434 -0.36867,-1.55254 -0.6022,-0.55891 -1.88565,-0.55891 h -4.34706 l -1.03815,4.05729 h 4.45057 q 0.97291,0 1.85007,-0.43472 1.08995,-0.53821 1.33889,-1.51112 z m 20.97321,9.93617 h -3.12576 l 2.83373,-11.0747 -6.93241,11.0747 h -3.72607 l -1.32558,-11.32311 -2.89729,11.32311 h -3.02227 l 3.70769,-14.49027 h 4.84389 l 1.30922,11.46801 7.01234,-11.46801 h 5.0302 z m 5.98242,0 h -3.87097 l 3.70769,-14.49027 h 3.87098 z m 17.84375,0 h -4.22289 l -2.46594,-4.84389 -4.68629,4.8853 h -4.32637 l 7.49976,-7.22442 -3.65727,-7.30727 h 4.34708 l 2.07794,4.82318 4.77388,-4.82318 h 4.22289 l -7.42224,7.24515 z"
|
||||
id="path45"
|
||||
style="font-size:19.7556px;line-height:1.25;font-family:Denmark;-inkscape-font-specification:'Denmark, Normal';letter-spacing:0px;word-spacing:0px;fill:#26262b;fill-opacity:1;stroke-width:0.264583"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.3 KiB |
Reference in New Issue
Block a user