Initial commit: WordLoop 单词学习应用
Vue 前端 + FastAPI 后端,含部署脚本与词典数据。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env bash
|
||||
# 在 105 服务器上为 w.tkmind.cn 签发 Let's Encrypt 并 reload nginx
|
||||
set -euo pipefail
|
||||
|
||||
DOMAIN=w.tkmind.cn
|
||||
WEBROOT=/root/wordloop/frontend/dist
|
||||
EMAIL="${CERTBOT_EMAIL:-admin@tkmind.cn}"
|
||||
|
||||
# 先确保 80 可访问(用于 ACME)
|
||||
cp /root/wordloop/deploy/wordloop-locations.inc /etc/nginx/conf.d/wordloop-locations.inc
|
||||
cp /root/wordloop/deploy/nginx-production.conf /etc/nginx/conf.d/wordloop.conf
|
||||
# 若尚无证书,临时注释 443 块会导致语法错误 — 仅用 certbot 独立签发的 80 配置
|
||||
if [ ! -f "/etc/letsencrypt/live/${DOMAIN}/fullchain.pem" ]; then
|
||||
cat > /etc/nginx/conf.d/wordloop.conf <<'NGINX80'
|
||||
server {
|
||||
listen 80;
|
||||
server_name w.tkmind.cn;
|
||||
root /root/wordloop/frontend/dist;
|
||||
location /.well-known/acme-challenge/ { root /root/wordloop/frontend/dist; }
|
||||
location / { try_files $uri $uri/ /index.html; }
|
||||
}
|
||||
NGINX80
|
||||
nginx -t && systemctl reload nginx
|
||||
certbot certonly --webroot -w "$WEBROOT" -d "$DOMAIN" \
|
||||
--non-interactive --agree-tos -m "$EMAIL" \
|
||||
--preferred-challenges http
|
||||
fi
|
||||
|
||||
cp /root/wordloop/deploy/wordloop-locations.inc /etc/nginx/conf.d/wordloop-locations.inc
|
||||
cp /root/wordloop/deploy/nginx-production.conf /etc/nginx/conf.d/wordloop.conf
|
||||
nginx -t
|
||||
systemctl reload nginx
|
||||
echo "SSL ready for https://${DOMAIN}/"
|
||||
Reference in New Issue
Block a user