Update nginx

This commit is contained in:
2025-10-26 15:58:46 +08:00
committed by GitHub
parent 4af86f2908
commit 34167da3ce

122
nginx
View File

@@ -1,103 +1,89 @@
#!/bin/bash #!/bin/bash
# 设置变量 # 设置变量,提高可维护性
SCRIPT_DIR="/boot/scripts" DATA_DIR="/data"
COMPOSE_FILE="$SCRIPT_DIR/nginx-proxy-manager.yaml" SCRIPT_DIR="/boot/脚本"
PROJECT_NAME="nginx-proxy-manager" COMPOSE_FILE="$SCRIPT_DIR/ru.yaml"
echo "正在部署 Nginx Proxy Manager..." # 检查是否以 root 权限运行
if [ "$EUID" -ne 0 ]; then
# 检查 Docker 是否安装 echo "请使用 sudo 运行此脚本"
if ! command -v docker &> /dev/null; then
echo "错误: Docker 未安装,请先安装 Docker"
exit 1 exit 1
fi fi
# 检查 Docker Compose 是否可用 # 创建目录
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then echo "创建必要的目录..."
echo "错误: Docker Compose 不可用" mkdir -p "$DATA_DIR"
exit 1
fi
# 创建目录(使用当前用户权限)
echo "创建目录..."
mkdir -p "$SCRIPT_DIR" mkdir -p "$SCRIPT_DIR"
mkdir -p "$SCRIPT_DIR/data"
mkdir -p "$SCRIPT_DIR/letsencrypt"
# 设置目录权限 # 检查目录是否创建成功
sudo chown -R $USER:$USER "$SCRIPT_DIR" if [ ! -d "$SCRIPT_DIR" ]; then
chmod -R 755 "$SCRIPT_DIR" echo "错误:无法创建目录 $SCRIPT_DIR"
exit 1
fi
# 创建 Docker Compose 配置文件 # 创建 Docker Compose 配置文件
echo "创建配置文件..." echo "创建 Docker Compose 配置文件..."
cat > "$COMPOSE_FILE" << 'EOF' cat > "$COMPOSE_FILE" << 'EOF'
# Nginx Proxy Manager 配置 # Nginx Proxy Manager 配置
# 访问地址: http://服务器IP:81 # 初始登录信息:
# 默认账号: admin@example.com # 邮箱: admin@example.com
# 默认密码: changeme # 密码: changeme
# 管理界面: http://服务器IP:81
version: '3.8'
services: services:
nginx-proxy-manager: app:
image: docker.io/jc21/nginx-proxy-manager:latest image: 'docker.io/jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager container_name: nginx-proxy-manager
restart: unless-stopped restart: unless-stopped
ports: ports:
- '80:80' # HTTP 流量 - '80:80' # HTTP 流量
- '443:443' # HTTPS 流量
- '81:81' # 管理界面 - '81:81' # 管理界面
environment: - '443:443' # HTTPS 流量
- DISABLE_IPV6=false
volumes: volumes:
- ./data:/data - ./data:/data
- ./letsencrypt:/etc/letsencrypt - ./letsencrypt:/etc/letsencrypt
networks: environment:
- npm-network - DISABLE_IPV6=false
networks:
npm-network:
driver: bridge
volumes:
data:
letsencrypt:
EOF EOF
echo "配置文件已创建: $COMPOSE_FILE" # 检查文件是否创建成功
if [ ! -f "$COMPOSE_FILE" ]; then
echo "错误:无法创建配置文件 $COMPOSE_FILE"
exit 1
fi
# 切换到脚本目录
cd "$SCRIPT_DIR" || exit 1
# 检查 Docker 是否运行
if ! systemctl is-active --quiet docker; then
echo "启动 Docker 服务..."
systemctl start docker
sleep 5
fi
# 部署服务 # 部署服务
echo "启动 Nginx Proxy Manager..." echo "启动 Nginx Proxy Manager..."
cd "$SCRIPT_DIR" docker compose -p nginx -f "$COMPOSE_FILE" up -d
# 检测使用 docker-compose 还是 docker compose # 检查部署是否成功
if command -v docker-compose &> /dev/null; then if [ $? -eq 0 ]; then
COMPOSE_CMD="docker-compose" echo "等待服务启动..."
else
COMPOSE_CMD="docker compose"
fi
$COMPOSE_CMD -f "$COMPOSE_FILE" -p "$PROJECT_NAME" up -d
# 检查服务状态
sleep 5 sleep 5
if docker ps | grep -q "nginx-proxy-manager"; then
echo "✓ Nginx Proxy Manager 启动成功!" echo "=================================================="
echo "" echo "Nginx Proxy Manager 部署完成!"
echo "=================== 访问信息 ==================="
echo "管理界面: http://$(hostname -I | awk '{print $1}'):81" echo "管理界面: http://$(hostname -I | awk '{print $1}'):81"
echo "默认邮箱: admin@example.com" echo "初始账号: admin@example.com"
echo "默认密码: changeme" echo "初始密码: changeme"
echo "================================================" echo "=================================================="
echo "" echo ""
echo "重要提示:" echo "重要提示"
echo "1. 首次登录后请立即修改密码" echo "1. 首次登录后请立即修改密码"
echo "2. 数据存储在: $SCRIPT_DIR/" echo "2. 确保防火墙已开放端口 80、81、443"
echo "3. 查看日志: docker logs nginx-proxy-manager" echo "3. 数据保存在: $SCRIPT_DIR/data"
echo "4. 停止服务: cd $SCRIPT_DIR && $COMPOSE_CMD -p $PROJECT_NAME down"
else else
echo "✗ 服务启动失败,请检查日志" echo "错误:容器启动失败"
docker logs nginx-proxy-manager 2>/dev/null || echo "无法获取容器日志"
exit 1 exit 1
fi fi