diff --git a/nginx b/nginx index ea482f2..87fe5c8 100644 --- a/nginx +++ b/nginx @@ -1,25 +1,103 @@ -sudo mkdir -p /data -sudo mkdir -p /boot/脚本 -file_path="/boot/脚本/ru.yaml" -echo "# 方便检查的备注 +#!/bin/bash + +# 设置变量 +SCRIPT_DIR="/boot/scripts" +COMPOSE_FILE="$SCRIPT_DIR/nginx-proxy-manager.yaml" +PROJECT_NAME="nginx-proxy-manager" + +echo "正在部署 Nginx Proxy Manager..." + +# 检查 Docker 是否安装 +if ! command -v docker &> /dev/null; then + echo "错误: Docker 未安装,请先安装 Docker" + exit 1 +fi + +# 检查 Docker Compose 是否可用 +if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then + echo "错误: Docker Compose 不可用" + exit 1 +fi + +# 创建目录(使用当前用户权限) +echo "创建目录..." +mkdir -p "$SCRIPT_DIR" +mkdir -p "$SCRIPT_DIR/data" +mkdir -p "$SCRIPT_DIR/letsencrypt" + +# 设置目录权限 +sudo chown -R $USER:$USER "$SCRIPT_DIR" +chmod -R 755 "$SCRIPT_DIR" + +# 创建 Docker Compose 配置文件 +echo "创建配置文件..." +cat > "$COMPOSE_FILE" << 'EOF' +# Nginx Proxy Manager 配置 +# 访问地址: http://服务器IP:81 +# 默认账号: admin@example.com +# 默认密码: changeme + +version: '3.8' + services: - app: - image: 'docker.io/jc21/nginx-proxy-manager:latest' + nginx-proxy-manager: + image: docker.io/jc21/nginx-proxy-manager:latest + container_name: nginx-proxy-manager restart: unless-stopped ports: - - '80:80' - - '81:81' - - '443:443' + - '80:80' # HTTP 流量 + - '443:443' # HTTPS 流量 + - '81:81' # 管理界面 + environment: + - DISABLE_IPV6=false volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt - #Email: admin@example.com -#Password: changeme http://127.0.0.1:81 + networks: + - npm-network -" > "$file_path" -sleep 1 -docker compose -p nginx -f /boot/脚本/ru.yaml up -d -sleep 2 -echo "端口81 初始账号:admin@example.com 初始密码:changeme" -echo "初始账号:admin@example.com" -echo "初始密码:changeme" +networks: + npm-network: + driver: bridge + +volumes: + data: + letsencrypt: +EOF + +echo "配置文件已创建: $COMPOSE_FILE" + +# 部署服务 +echo "启动 Nginx Proxy Manager..." +cd "$SCRIPT_DIR" + +# 检测使用 docker-compose 还是 docker compose +if command -v docker-compose &> /dev/null; then + COMPOSE_CMD="docker-compose" +else + COMPOSE_CMD="docker compose" +fi + +$COMPOSE_CMD -f "$COMPOSE_FILE" -p "$PROJECT_NAME" up -d + +# 检查服务状态 +sleep 5 +if docker ps | grep -q "nginx-proxy-manager"; then + echo "✓ Nginx Proxy Manager 启动成功!" + echo "" + echo "=================== 访问信息 ===================" + echo "管理界面: http://$(hostname -I | awk '{print $1}'):81" + echo "默认邮箱: admin@example.com" + echo "默认密码: changeme" + echo "================================================" + echo "" + echo "重要提示:" + echo "1. 首次登录后请立即修改密码" + echo "2. 数据存储在: $SCRIPT_DIR/" + echo "3. 查看日志: docker logs nginx-proxy-manager" + echo "4. 停止服务: cd $SCRIPT_DIR && $COMPOSE_CMD -p $PROJECT_NAME down" +else + echo "✗ 服务启动失败,请检查日志" + docker logs nginx-proxy-manager 2>/dev/null || echo "无法获取容器日志" + exit 1 +fi