Initial commit: MyBlog full stack blog
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# ============================================================
|
||||
# MyBlog 后端 systemd 服务
|
||||
# ------------------------------------------------------------
|
||||
# 部署位置:/etc/systemd/system/myblog.service
|
||||
# 生效命令:
|
||||
# sudo systemctl daemon-reload
|
||||
# sudo systemctl enable --now myblog # 开机自启 + 立即启动
|
||||
# 常用命令:
|
||||
# sudo systemctl status myblog # 查看状态
|
||||
# sudo systemctl restart myblog # 重启
|
||||
# journalctl -u myblog -f # 跟踪日志
|
||||
# ============================================================
|
||||
|
||||
[Unit]
|
||||
Description=MyBlog FastAPI Backend
|
||||
# 等待网络就绪后再启动(uvicorn 需要绑定端口)
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
# 专用运行账号:系统用户、禁止登录,只拥有项目文件权限
|
||||
User=blog
|
||||
Group=blog
|
||||
|
||||
# 工作目录必须是项目根目录(backend 包、.env、uploads 都相对它定位)
|
||||
WorkingDirectory=/var/www/blog
|
||||
|
||||
# 启动命令:使用项目虚拟环境里的 uvicorn,只监听本机 8080(禁止公网直连)
|
||||
ExecStart=/var/www/blog/venv/bin/uvicorn backend.main:app --host 127.0.0.1 --port 8080
|
||||
|
||||
# 崩溃后 3 秒自动重启;开机自启由 enable 管理
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
|
||||
# 环境变量说明:
|
||||
# .env 不需要写进 EnvironmentFile —— 应用启动时会在代码里
|
||||
# 自动读取项目根目录 .env(backend/database.py 的 load_dotenv),
|
||||
# 这样也能避免 systemd 解析中文值/注释行时出错。
|
||||
# 部署时请务必在 /var/www/blog/.env 中配置 JWT_SECRET,否则后端拒绝启动。
|
||||
|
||||
# ---------- 安全加固(可选) ----------
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectSystem=full
|
||||
ProtectHome=true
|
||||
# 允许写入:上传目录(用户上传文件)与 backend 目录(SQLite 数据库 backend/blog.db)
|
||||
ReadWritePaths=/var/www/blog/uploads /var/www/blog/backend
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user