安装traefik时创建traefik.yml文件并传入email变量以便使用用户的邮箱申请ssl证书
This commit is contained in:
parent
5d03d9a221
commit
8a52c54ddb
59
jsite.sh
59
jsite.sh
@ -41,6 +41,7 @@ PUBLIC_IP="" # 公网IP地址 (用于内网IP不可用时)
|
|||||||
|
|
||||||
# .env文件参数
|
# .env文件参数
|
||||||
SITE_URL="example.com"
|
SITE_URL="example.com"
|
||||||
|
SITE_EMAIL="email@example.com"
|
||||||
REVALIDATE_TOKEN=""
|
REVALIDATE_TOKEN=""
|
||||||
BACKEND_SERVER_URL="https://admin.example.com"
|
BACKEND_SERVER_URL="https://admin.example.com"
|
||||||
BACKEND_API_KEY=""
|
BACKEND_API_KEY=""
|
||||||
@ -179,6 +180,10 @@ while [[ $# -gt 0 ]]; do
|
|||||||
BACKEND_API_SECRET="$2"
|
BACKEND_API_SECRET="$2"
|
||||||
shift 2
|
shift 2
|
||||||
;;
|
;;
|
||||||
|
--site-email)
|
||||||
|
SITE_EMAIL="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
|
||||||
# 帮助信息
|
# 帮助信息
|
||||||
-h|--help)
|
-h|--help)
|
||||||
@ -215,9 +220,10 @@ while [[ $# -gt 0 ]]; do
|
|||||||
echo " --public-ip IP 公网IP地址 (用于内网IP不可用时)"
|
echo " --public-ip IP 公网IP地址 (用于内网IP不可用时)"
|
||||||
echo ""
|
echo ""
|
||||||
echo ".env文件配置:"
|
echo ".env文件配置:"
|
||||||
echo " --site-url URL 网站URL (默认: starrbud.com)"
|
echo " --site-url URL 网站URL (默认: example.com)"
|
||||||
|
echo " --site-email EMAIL 网站邮箱 (默认: email@example.com)"
|
||||||
echo " --revalidate-token TK 重新验证令牌"
|
echo " --revalidate-token TK 重新验证令牌"
|
||||||
echo " --backend-server-url URL 服务器URL (默认: https://admin.jingrow.com)"
|
echo " --backend-server-url URL 服务器URL (默认: https://admin.example.com)"
|
||||||
echo " --backend-api-key KEY API密钥"
|
echo " --backend-api-key KEY API密钥"
|
||||||
echo " --backend-api-secret SECRET API密钥"
|
echo " --backend-api-secret SECRET API密钥"
|
||||||
echo ""
|
echo ""
|
||||||
@ -1303,6 +1309,45 @@ install_traefik() {
|
|||||||
chown -R jingrow:jingrow /home/jingrow/traefik-docker
|
chown -R jingrow:jingrow /home/jingrow/traefik-docker
|
||||||
log_success "设置traefik目录权限"
|
log_success "设置traefik目录权限"
|
||||||
|
|
||||||
|
# 删除已存在的traefik.yml配置文件(如果存在)
|
||||||
|
rm -f "/home/jingrow/traefik-docker/traefik.yml"
|
||||||
|
|
||||||
|
# 创建traefik.yml配置文件
|
||||||
|
log_info "创建traefik.yml配置文件..."
|
||||||
|
cat > "/home/jingrow/traefik-docker/traefik.yml" << EOF
|
||||||
|
entryPoints:
|
||||||
|
web:
|
||||||
|
address: ":80"
|
||||||
|
websecure:
|
||||||
|
address: ":443"
|
||||||
|
traefik:
|
||||||
|
address: ":8080"
|
||||||
|
|
||||||
|
api:
|
||||||
|
dashboard: true
|
||||||
|
insecure: false # 生产环境建议关闭
|
||||||
|
|
||||||
|
providers:
|
||||||
|
docker:
|
||||||
|
exposedByDefault: false
|
||||||
|
file:
|
||||||
|
directory: /etc/traefik/conf.d
|
||||||
|
watch: true
|
||||||
|
|
||||||
|
certificatesResolvers:
|
||||||
|
myresolver:
|
||||||
|
acme:
|
||||||
|
email: $SITE_EMAIL
|
||||||
|
storage: /etc/traefik/acme.json
|
||||||
|
httpChallenge:
|
||||||
|
entryPoint: web
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# 设置traefik.yml文件权限
|
||||||
|
chown jingrow:jingrow "/home/jingrow/traefik-docker/traefik.yml"
|
||||||
|
chmod 664 "/home/jingrow/traefik-docker/traefik.yml"
|
||||||
|
log_success "traefik.yml配置文件创建完成"
|
||||||
|
|
||||||
# 设置 acme.json 文件权限(Let's Encrypt 要求 600 权限)
|
# 设置 acme.json 文件权限(Let's Encrypt 要求 600 权限)
|
||||||
if [ -f "/home/jingrow/traefik-docker/acme.json" ]; then
|
if [ -f "/home/jingrow/traefik-docker/acme.json" ]; then
|
||||||
chmod 600 /home/jingrow/traefik-docker/acme.json
|
chmod 600 /home/jingrow/traefik-docker/acme.json
|
||||||
@ -1573,6 +1618,13 @@ show_deployment_info() {
|
|||||||
echo " - .env文件不存在"
|
echo " - .env文件不存在"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
log_info "Traefik配置信息:"
|
||||||
|
echo " - 网站配置文件: /home/jingrow/traefik-docker/conf.d/website/$SITE_NAME.yml"
|
||||||
|
echo " - 主配置文件: /home/jingrow/traefik-docker/traefik.yml"
|
||||||
|
echo " - SSL证书邮箱: $SITE_EMAIL"
|
||||||
|
echo " - 访问域名: $SITE_URL"
|
||||||
|
echo " - 后端端口: $(get_or_assign_port "$SITE_NAME")"
|
||||||
|
|
||||||
log_info "PM2管理命令:"
|
log_info "PM2管理命令:"
|
||||||
echo " - 查看状态: su - jingrow -c 'export NVM_DIR=\"\$HOME/.nvm\" && [ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\" && pm2 list'"
|
echo " - 查看状态: su - jingrow -c 'export NVM_DIR=\"\$HOME/.nvm\" && [ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\" && pm2 list'"
|
||||||
echo " - 查看日志: su - jingrow -c 'export NVM_DIR=\"\$HOME/.nvm\" && [ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\" && pm2 logs $SITE_NAME'"
|
echo " - 查看日志: su - jingrow -c 'export NVM_DIR=\"\$HOME/.nvm\" && [ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\" && pm2 logs $SITE_NAME'"
|
||||||
@ -1867,6 +1919,8 @@ create_and_start_site() {
|
|||||||
echo " - Traefik目录: /home/jingrow/traefik-docker"
|
echo " - Traefik目录: /home/jingrow/traefik-docker"
|
||||||
echo " - Traefik管理界面: http://localhost:8080"
|
echo " - Traefik管理界面: http://localhost:8080"
|
||||||
echo " - Traefik网站配置: $TRAEFIK_CONFIG_DIR/$SITE_NAME.yml"
|
echo " - Traefik网站配置: $TRAEFIK_CONFIG_DIR/$SITE_NAME.yml"
|
||||||
|
echo " - Traefik主配置: /home/jingrow/traefik-docker/traefik.yml"
|
||||||
|
echo " - SSL证书邮箱: $SITE_EMAIL"
|
||||||
echo " - PM2配置文件: $JSITE_BASE_DIR/$SITE_NAME/ecosystem.config.cjs"
|
echo " - PM2配置文件: $JSITE_BASE_DIR/$SITE_NAME/ecosystem.config.cjs"
|
||||||
echo " - PM2日志目录: $JSITE_BASE_DIR/$SITE_NAME/logs"
|
echo " - PM2日志目录: $JSITE_BASE_DIR/$SITE_NAME/logs"
|
||||||
|
|
||||||
@ -2166,6 +2220,7 @@ main() {
|
|||||||
echo ""
|
echo ""
|
||||||
log_info ".env文件参数:"
|
log_info ".env文件参数:"
|
||||||
echo " - 网站URL: $SITE_URL"
|
echo " - 网站URL: $SITE_URL"
|
||||||
|
echo " - 网站邮箱: $SITE_EMAIL"
|
||||||
echo " - 站点名称: $SITE_NAME"
|
echo " - 站点名称: $SITE_NAME"
|
||||||
echo " - 服务器URL: $BACKEND_SERVER_URL"
|
echo " - 服务器URL: $BACKEND_SERVER_URL"
|
||||||
echo " - 重新验证令牌: $REVALIDATE_TOKEN"
|
echo " - 重新验证令牌: $REVALIDATE_TOKEN"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user