Files
dock/nginx
2025-10-26 15:58:46 +08:00

90 lines
2.2 KiB
Bash

#!/bin/bash
# 设置变量,提高可维护性
DATA_DIR="/data"
SCRIPT_DIR="/boot/脚本"
COMPOSE_FILE="$SCRIPT_DIR/ru.yaml"
# 检查是否以 root 权限运行
if [ "$EUID" -ne 0 ]; then
echo "请使用 sudo 运行此脚本"
exit 1
fi
# 创建目录
echo "创建必要的目录..."
mkdir -p "$DATA_DIR"
mkdir -p "$SCRIPT_DIR"
# 检查目录是否创建成功
if [ ! -d "$SCRIPT_DIR" ]; then
echo "错误:无法创建目录 $SCRIPT_DIR"
exit 1
fi
# 创建 Docker Compose 配置文件
echo "创建 Docker Compose 配置文件..."
cat > "$COMPOSE_FILE" << 'EOF'
# Nginx Proxy Manager 配置
# 初始登录信息:
# 邮箱: admin@example.com
# 密码: changeme
# 管理界面: http://服务器IP:81
services:
app:
image: 'docker.io/jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80' # HTTP 流量
- '81:81' # 管理界面
- '443:443' # HTTPS 流量
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
environment:
- DISABLE_IPV6=false
EOF
# 检查文件是否创建成功
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..."
docker compose -p nginx -f "$COMPOSE_FILE" up -d
# 检查部署是否成功
if [ $? -eq 0 ]; then
echo "等待服务启动..."
sleep 5
echo "=================================================="
echo "Nginx Proxy Manager 部署完成!"
echo "管理界面: http://$(hostname -I | awk '{print $1}'):81"
echo "初始账号: admin@example.com"
echo "初始密码: changeme"
echo "=================================================="
echo ""
echo "重要提示:"
echo "1. 首次登录后请立即修改密码"
echo "2. 确保防火墙已开放端口 80、81、443"
echo "3. 数据保存在: $SCRIPT_DIR/data"
else
echo "错误:容器启动失败"
exit 1
fi