Update WebSSH
This commit is contained in:
97
WebSSH
97
WebSSH
@@ -1,58 +1,61 @@
|
|||||||
va#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# NexTerm 一键安装脚本
|
echo "🚀 NexTerm 一键安装(Docker Compose + 随机端口)"
|
||||||
set -e
|
|
||||||
|
|
||||||
echo "🚀 开始安装 NexTerm..."
|
# 生成加密密钥
|
||||||
|
ENCRYPTION_KEY=$(openssl rand -hex 32)
|
||||||
|
echo "🔑 生成加密密钥: $ENCRYPTION_KEY"
|
||||||
|
|
||||||
# 定义变量
|
# 创建配置目录
|
||||||
CONTAINER_NAME="nexterm"
|
mkdir -p /boot/docker-apps
|
||||||
PORT="6989"
|
|
||||||
VOLUME_NAME="nexterm"
|
|
||||||
IMAGE="germannewsmaker/nexterm:1.0.5-OPEN-PREVIEW"
|
|
||||||
|
|
||||||
# 生成安全的加密密钥(如果未提供)
|
# 创建 Docker Compose 配置文件
|
||||||
if [ -z "$ENCRYPTION_KEY" ]; then
|
cat > /boot/docker-apps/nexterm.yml << EOF
|
||||||
echo "🔑 生成加密密钥..."
|
version: '3.8'
|
||||||
ENCRYPTION_KEY=$(openssl rand -hex 32)
|
|
||||||
echo "生成的加密密钥: $ENCRYPTION_KEY"
|
|
||||||
echo "请妥善保存此密钥!"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 停止并删除已存在的容器
|
services:
|
||||||
echo "🛑 清理现有容器..."
|
nexterm:
|
||||||
docker rm -f $CONTAINER_NAME 2>/dev/null || true
|
image: germannewsmaker/nexterm:1.0.5-OPEN-PREVIEW
|
||||||
|
container_name: nexterm
|
||||||
|
ports:
|
||||||
|
- "3000" # 随机端口
|
||||||
|
environment:
|
||||||
|
- ENCRYPTION_KEY=$ENCRYPTION_KEY
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
volumes:
|
||||||
|
- nexterm_data:/app/data
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
# 创建数据卷
|
volumes:
|
||||||
echo "💾 创建数据卷..."
|
nexterm_data:
|
||||||
docker volume create $VOLUME_NAME 2>/dev/null || true
|
EOF
|
||||||
|
|
||||||
# 运行容器
|
echo "📁 配置文件已创建: /boot/docker-apps/nexterm.yml"
|
||||||
echo "🐳 启动 NexTerm 容器..."
|
|
||||||
docker run -d \
|
|
||||||
--name $CONTAINER_NAME \
|
|
||||||
--hostname $CONTAINER_NAME \
|
|
||||||
-p $PORT:6989 \
|
|
||||||
-e ENCRYPTION_KEY=$ENCRYPTION_KEY \
|
|
||||||
-e TZ=Asia/Shanghai \
|
|
||||||
--restart=unless-stopped \
|
|
||||||
--log-opt max-size=10m \
|
|
||||||
--log-opt max-file=3 \
|
|
||||||
-v $VOLUME_NAME:/app/data \
|
|
||||||
$IMAGE
|
|
||||||
|
|
||||||
# 等待服务启动
|
# 停止并删除旧版本(如果存在)
|
||||||
|
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 "🔑 加密密钥: $ENCRYPTION_KEY"
|
echo "✅ 安装完成!"
|
||||||
echo "💾 数据卷: $VOLUME_NAME"
|
echo "🌐 访问地址: http://$SERVER_IP:$ACTUAL_PORT"
|
||||||
else
|
echo "🔑 加密密钥: $ENCRYPTION_KEY"
|
||||||
echo "❌ 容器启动失败,请检查日志:docker logs $CONTAINER_NAME"
|
echo ""
|
||||||
exit 1
|
echo "📋 管理命令:"
|
||||||
fi
|
echo " 启动: docker compose -f /boot/docker-apps/nexterm.yml start"
|
||||||
|
echo " 停止: docker compose -f /boot/docker-apps/nexterm.yml stop"
|
||||||
|
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"
|
||||||
|
|||||||
Reference in New Issue
Block a user