Update nginx
This commit is contained in:
122
nginx
122
nginx
@@ -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
|
sleep 5
|
||||||
COMPOSE_CMD="docker compose"
|
|
||||||
fi
|
|
||||||
|
|
||||||
$COMPOSE_CMD -f "$COMPOSE_FILE" -p "$PROJECT_NAME" up -d
|
echo "=================================================="
|
||||||
|
echo "Nginx Proxy Manager 部署完成!"
|
||||||
# 检查服务状态
|
|
||||||
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 "管理界面: 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
|
||||||
|
|||||||
Reference in New Issue
Block a user