Skip to main content
Version: Current

生产部署

拓扑​

生产 .env 要点​

至少:DEBUG=False、独立 SECRET_KEY、ALLOWED_HOSTS=portal.bucssa.org、CSRF_TRUSTED_ORIGINS=https://portal.bucssa.org、SECURE_SSL_REDIRECT=true、SITE_URL=https://portal.bucssa.org、Neon DB_* + DB_SSLMODE=require。再配 Google、Resend、R2。

证书申请/续期、Nginx 站点文件见 域名与 HTTPS。本机路径与 unit 见 基础设施概览。

本机落点​

项值
代码/root/CSSAPortal
systemdcssaportal.service
监听127.0.0.1:8000(gunicorn,3 workers)
Nginx/etc/nginx/sites-available/portal.bucssa.org
发布脚本/root/deploy.sh

日常发布(脚本会 checkout master、pull、migrate、collectstatic、systemctl restart cssaportal):

sudo /root/deploy.sh

不要把脚本里的注释或任何口令抄进仓库。首次初始化仍用下面的管理命令;之后发布走脚本即可。

初始化顺序​

python manage.py migrate
python manage.py seed_departments
python manage.py setup_google_oauth
python manage.py create_admin your-email@gmail.com
python manage.py collectstatic --noinput

gunicorn 示例(应由 systemd ExecStart 调用,不要无托管地挂在 SSH 会话里):

gunicorn cssaportal.wsgi:application --bind 127.0.0.1:8000 --workers 3

Nginx 必须满足的行为​

  • location / 反代到 gunicorn
  • 转发 Host、X-Forwarded-For、X-Forwarded-Proto
  • 未使用 R2 时,为 /media/ 配置 alias 到 MEDIA_ROOT

证书申请/续期属于服务器运维,不在本 Django 仓库。

Google 生产客户端​

  • Origin:https://portal.bucssa.org
  • Callback:https://portal.bucssa.org/accounts/google/login/callback/