安装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文件参数
|
||||
SITE_URL="example.com"
|
||||
SITE_EMAIL="email@example.com"
|
||||
REVALIDATE_TOKEN=""
|
||||
BACKEND_SERVER_URL="https://admin.example.com"
|
||||
BACKEND_API_KEY=""
|
||||
@ -179,6 +180,10 @@ while [[ $# -gt 0 ]]; do
|
||||
BACKEND_API_SECRET="$2"
|
||||
shift 2
|
||||
;;
|
||||
--site-email)
|
||||
SITE_EMAIL="$2"
|
||||
shift 2
|
||||
;;
|
||||
|
||||
# 帮助信息
|
||||
-h|--help)
|
||||
@ -215,9 +220,10 @@ while [[ $# -gt 0 ]]; do
|
||||
echo " --public-ip IP 公网IP地址 (用于内网IP不可用时)"
|
||||
echo ""
|
||||
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 " --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-secret SECRET API密钥"
|
||||
echo ""
|
||||
@ -1303,6 +1309,45 @@ install_traefik() {
|
||||
chown -R jingrow:jingrow /home/jingrow/traefik-docker
|
||||
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 权限)
|
||||
if [ -f "/home/jingrow/traefik-docker/acme.json" ]; then
|
||||
chmod 600 /home/jingrow/traefik-docker/acme.json
|
||||
@ -1573,6 +1618,13 @@ show_deployment_info() {
|
||||
echo " - .env文件不存在"
|
||||
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管理命令:"
|
||||
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'"
|
||||
@ -1867,6 +1919,8 @@ create_and_start_site() {
|
||||
echo " - Traefik目录: /home/jingrow/traefik-docker"
|
||||
echo " - Traefik管理界面: http://localhost:8080"
|
||||
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/logs"
|
||||
|
||||
@ -2166,6 +2220,7 @@ main() {
|
||||
echo ""
|
||||
log_info ".env文件参数:"
|
||||
echo " - 网站URL: $SITE_URL"
|
||||
echo " - 网站邮箱: $SITE_EMAIL"
|
||||
echo " - 站点名称: $SITE_NAME"
|
||||
echo " - 服务器URL: $BACKEND_SERVER_URL"
|
||||
echo " - 重新验证令牌: $REVALIDATE_TOKEN"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user