3. 部署手册¶
本文档主要说明如何在 Linux 服务器上部署 易科 1.0 系统。
3.2. 初始部署¶
第一次或者在全新环境进行部署的说明。
发布的文件直接从 GitHub 库 dashingsoft/eke 的发布中获取
第一次发布的版本号 v0.1
注解
用户需要权限才能访问 Github 库,用户启用 2fa 的简单方式:
选择使用 App 方式验证,会弹出一个二维码
使用微信扫描该二维码,会显示其对应的文本,其中 TOKEN 对应的是一串字符,例如 EHILBUEILMSHNK
安装 Python 包 pip install pyotp
执行下面的 Python 语句,注意需要替换 EHILBUEILMSHNK 为实际值
$ python >>> import pyotp >>> pyotp.TOTP("EHILBUEILMSHNK").now() 580286
把最后打印出来的一串数字输入到 Github 验证页面即可
3.2.1. 输入文件¶
第一次发布的文件包 eke-0.1-py310.tar.gz 解压后的目录:
- src/ 包括 Django 工程的源文件和其他相关的 Python 包
- meta/ 相关的模版文件
- webroot/ 所有需要放到 Web 服务器下面的文件
3.2.2. 服务器目录¶
第一次发布需要在服务器上创建一些目录
代码目录,默认是 /opt/eke/ ,子目录对其他用户只读,包括
- src/ 存放发布包中 src 下面的文件
- meta/ 存放发布包中 meta 下面的文件
- bin/ 存放辅助脚本
数据目录,默认是 /var/eke/ ,子目录需要 web 用户可读可选,包括
- usr/ 存放注册用户的数据
- fly/ 存放临时用户的数据
网站根目录,存放发布包中的 webroot 中的文件
创建目录链接 /opt/eke/src/ekengineer
cd /opt/eke/src ln -s /opt/eke/meta/ekengineer
3.2.4. Django 配置¶
Django 的配置文件为 src/ekesite/settings.py 需要进行相关的配置
- SECRET_KEY 使用外部文件
- STATIC_URL 默认配置为 https://eke.dashingsoft.com/static/
- DEBUG 必须修改为 False
- ALLOWED_HOSTS 默认配置为 [‘eke.dashingsoft.com’]
- DATABASES 配置为使用 MariaDB 引擎的 ekedb
参考 Django Deployment checklist
接下来创建数据表:
$ cd /opt/eke/src
$ rm -rf {tasks,works,stacks}/migrations
$ python manage.py makemigrations
$ python manage.py migrate
以及后台管理超级用户:
$ python manage.py createsuperuser
3.2.5. 配置 Supervisor 后台启动 Django¶
创建 Django 的启动脚本 /opt/eke/bin/start-server.sh:
cd /opt/eke/src
python manage.py runserver 20528
创建配置文件 /etc/supervisor/eke.conf:
[program:eke]
command=bash bin/start-server.sh
user=eke
directory=/opt/eke
stopwaitsecs=60
stopasgroup=true
stdout_logfile=/opt/eke/log/supervisor_stdout.log
stderr_logfile=/opt/eke/log/supervisor_stderr.log
autostart = true
3.2.6. 配置 Nginx¶
外部访问地址 https://eke.dashingsoft.com
需要把下列路径的请求转发到 Django 后台
- /admin/
- /api/
- /pub/
参考配置如下:
server {
server_name eke.dashingsoft.com;
...
location /admin/ {
proxy_pass http://localhost:20528/admin/;
}
location /pub/ {
proxy_pass http://localhost:20528/pub/;
}
location /api/ {
proxy_pass http://localhost:20528/api/;
}
}
3.2.7. 文档发布¶
使用下面的脚本进行发布:
$ cd /path/to/eke/docs
$ make build
$ cp _build/html /path/to/webroot/docs/
3.3. 更新部署¶
在发布版本升级之后的部署说明。
每次更新之后会有新的版本号 X.Y
3.3.1. 输入文件¶
根据输入的版本号 X.Y 可以从下面的地址:
https://github.com/dashingsoft/eke/releases/tag/vX.Y
下载发布包 eke-X.Y-py310.tar.gz
注意需要替换 X.Y 为实际的版本号,例如 0.2
发布的文件包解压后的目录基本同第一次发布是一样的
- src/
- meta/
- webroot/
分别拷贝到相应的服务器目录,覆盖原来的文件
如果数据库结构发上了变化,需要执行下面的更新:
$ cd /opt/eke/src
$ python manage.py makemigrations
$ python manage.py migrate