Update WebSSH

This commit is contained in:
2025-11-02 17:37:28 +08:00
committed by GitHub
parent c2f09380be
commit e0411b1324

97
WebSSH
View File

@@ -1,58 +1,61 @@
va#!/bin/bash #!/bin/bash
# NexTerm 一键安装脚本 echo "🚀 NexTerm 一键安装Docker Compose + 随机端口)"
set -e
echo "🚀 开始安装 NexTerm..." # 生成加密密钥
# 定义变量
CONTAINER_NAME="nexterm"
PORT="6989"
VOLUME_NAME="nexterm"
IMAGE="germannewsmaker/nexterm:1.0.5-OPEN-PREVIEW"
# 生成安全的加密密钥(如果未提供)
if [ -z "$ENCRYPTION_KEY" ]; then
echo "🔑 生成加密密钥..."
ENCRYPTION_KEY=$(openssl rand -hex 32) ENCRYPTION_KEY=$(openssl rand -hex 32)
echo "生成加密密钥: $ENCRYPTION_KEY" echo "🔑 生成加密密钥: $ENCRYPTION_KEY"
echo "请妥善保存此密钥!"
fi
# 停止并删除已存在的容器 # 创建配置目录
echo "🛑 清理现有容器..." mkdir -p /boot/docker-apps
docker rm -f $CONTAINER_NAME 2>/dev/null || true
# 创建数据卷 # 创建 Docker Compose 配置文件
echo "💾 创建数据卷..." cat > /boot/docker-apps/nexterm.yml << EOF
docker volume create $VOLUME_NAME 2>/dev/null || true version: '3.8'
# 运行容器 services:
echo "🐳 启动 NexTerm 容器..." nexterm:
docker run -d \ image: germannewsmaker/nexterm:1.0.5-OPEN-PREVIEW
--name $CONTAINER_NAME \ container_name: nexterm
--hostname $CONTAINER_NAME \ ports:
-p $PORT:6989 \ - "3000" # 随机端口
-e ENCRYPTION_KEY=$ENCRYPTION_KEY \ environment:
-e TZ=Asia/Shanghai \ - ENCRYPTION_KEY=$ENCRYPTION_KEY
--restart=unless-stopped \ - TZ=Asia/Shanghai
--log-opt max-size=10m \ volumes:
--log-opt max-file=3 \ - nexterm_data:/app/data
-v $VOLUME_NAME:/app/data \ restart: unless-stopped
$IMAGE
# 等待服务启动 volumes:
nexterm_data:
EOF
echo "📁 配置文件已创建: /boot/docker-apps/nexterm.yml"
# 停止并删除旧版本(如果存在)
echo "🔄 清理旧版本..."
docker compose -f /boot/docker-apps/nexterm.yml down 2>/dev/null || true
# 启动服务
echo "🐳 启动 NexTerm..."
docker compose -f /boot/docker-apps/nexterm.yml up -d
# 等待启动
echo "⏳ 等待服务启动..." echo "⏳ 等待服务启动..."
sleep 10 sleep 10
# 检查容器状态 # 获取实际端口
if docker ps | grep -q $CONTAINER_NAME; then ACTUAL_PORT=$(docker compose -f /boot/docker-apps/nexterm.yml port nexterm 3000 | cut -d: -f2)
echo "✅ NexTerm 安装成功!" SERVER_IP=$(curl -s ipv4.icanhazip.com 2>/dev/null || hostname -I | awk '{print $1}')
echo "📊 容器名称: $CONTAINER_NAME"
echo "🌐 访问地址: http://$(curl -s ipv4.icanhazip.com 2>/dev/null || hostname -I | awk '{print $1}'):$PORT" echo ""
echo "✅ 安装完成!"
echo "🌐 访问地址: http://$SERVER_IP:$ACTUAL_PORT"
echo "🔑 加密密钥: $ENCRYPTION_KEY" echo "🔑 加密密钥: $ENCRYPTION_KEY"
echo "💾 数据卷: $VOLUME_NAME" echo ""
else echo "📋 管理命令:"
echo "❌ 容器启动失败请检查日志docker logs $CONTAINER_NAME" echo " 启动: docker compose -f /boot/docker-apps/nexterm.yml start"
exit 1 echo " 停止: docker compose -f /boot/docker-apps/nexterm.yml stop"
fi echo " 重启: docker compose -f /boot/docker-apps/nexterm.yml restart"
echo " 卸载: docker compose -f /boot/docker-apps/nexterm.yml down"
echo " 日志: docker compose -f /boot/docker-apps/nexterm.yml logs"