|
1 | 1 | 截图及步骤请看
|
2 | 2 | http://codingcrush.me/2017/04/16/weekly-report/
|
3 | 3 |
|
4 |
| -## 安装说明 |
5 |
| -+ 配置数据库 |
6 |
| -数据库没有限制,可选择使用sqlite,跳过数据库安装,方便快捷。 |
7 |
| -``` |
8 |
| - SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(os.getcwd(), 'wr_prd.sqlite') |
9 |
| -``` |
10 |
| - |
11 |
| -项目中集成了是docker化的postgres,cd到postgres目录下,pull镜像,启动container。 |
12 |
| -数据库URI地址由数据库名、用户名、密码、主机、端口号构造。 |
13 |
| -``` |
14 |
| -SQLALCHEMY_DATABASE_URI = 'postgresql://postgres:postgres@localhost/wr_prd' |
15 |
| -``` |
16 |
| - |
17 |
| -```docker |
18 |
| -1.docker pull daocloud.io/postgres:9.6 |
19 |
| -2.docker run -d \ |
20 |
| - --restart=always \ |
21 |
| - --name wr-postgres \ |
22 |
| - --net='host' \ |
23 |
| - -v /etc/localtime:/etc/localtime:ro \ |
24 |
| - -e "LANG=en_US.UTF-8" \ |
25 |
| - -v $PWD/pg96_data:/var/lib/postgresql/data \ |
26 |
| - -e POSTGRES_DB=wr_prd \ |
27 |
| - -e POSTGRES_USER=postgres \ |
28 |
| - -e POSTGRES_PASSWORD=postgres \ |
29 |
| - daocloud.io/postgres:9.6 |
30 |
| -``` |
31 |
| - |
32 |
| -+ 配置nginx |
33 |
| - 必要性不大,可略过 |
34 |
| - |
35 |
| -+ 配置config.py |
36 |
| - |
37 |
| -重命名config.py.sample为config.py并进行配置: |
38 |
| - |
39 |
| -`SECRET_KEY`随机产生,可以当做环境变量在初始化容器时注入 |
| 4 | +## 配置说明 |
| 5 | + `-w <N>`为开启的gunicorn worker进程数 |
40 | 6 |
|
41 |
| -`FLASK_ADMIN_EMAIL `:修改管理员邮箱,使用这个邮箱注册的用户自动成为管理员 |
| 7 | +```bash |
| 8 | +git clone https://github.com/CodingCrush/WeeklyReport && \ |
42 | 9 |
|
43 |
| -`ProductionConfig:`此处需要根据不同的数据库构造SQLALCHEMY_DATABASE_URI |
| 10 | +cd WeeklyReport && \ |
44 | 11 |
|
45 |
| -`DEPARTMENTS`:`这个元组存储着部门列表,根据初始化到数据库中,用户在注册时便可以选择部门。 |
| 12 | +docker build -t weeklyreport:0.2 . && \ |
46 | 13 |
|
47 |
| -`default: ProductionConfig`修改为生产环境配置,也可以用FLASK_CONFIG这个环境变量指定当前选择的环境,通常是docker启动时使用生产环境,自己在本地使用开发环境与SQLite进行修改调试 |
| 14 | +docker run -d \ |
| 15 | + --restart=unless-stopped \ |
| 16 | + --name weeklyreport-server \ |
| 17 | + -p 8000:80 \ |
| 18 | + -v /etc/localtime:/etc/localtime:ro \ |
| 19 | + -v $PWD:/opt/weeklyreport \ |
| 20 | + weeklyreport:0.2 \ |
| 21 | + gunicorn wsgi:app --bind 0.0.0.0:80 -w 2 --log-file logs/awsgi.log --log-level=DEBUG |
| 22 | +``` |
48 | 23 |
|
49 |
| -`MAIL_USERNAME` : 用来发送邮件通知的邮箱账号 |
| 24 | +## 更新说明 |
| 25 | +V0.2: 简化了部署步骤 |
50 | 26 |
|
51 |
| -`MAIL_PASSWORD` : 密码 |
| 27 | +## 配置说明 |
52 | 28 |
|
53 |
| -+ 制作镜像 |
| 29 | ++ 配置数据库 |
| 30 | +数据库默认使用sqlite,方便快捷。 |
54 | 31 |
|
55 |
| -在weeklyreport目录下,运行 |
56 |
| -```docker |
57 |
| -docker build -t weeklyreport:20170609 . |
| 32 | +或者可以使用postgres container,cd到postgres目录下,pull镜像,启动。 |
| 33 | +数据库URI地址由数据库名、用户名、密码、主机、端口号构造。 |
58 | 34 | ```
|
59 |
| -`yymmdd`是日期标签,自行修改。 |
60 |
| - |
61 |
| -+ 启动container |
| 35 | +SQLALCHEMY_DATABASE_URI = 'postgresql://postgres:postgres@localhost/wr_prd' |
| 36 | +``` |
| 37 | +步骤见postgres目录下的readme.md |
62 | 38 |
|
63 |
| - `<host>:<port>`为监听的ip与端口号 |
64 |
| - |
65 |
| - `-w <N>`为开启的gunicorn worker进程数 |
| 39 | ++ 配置config.py |
66 | 40 |
|
67 |
| -```docker |
68 |
| - docker run \ |
69 |
| - -d --restart=always \ |
70 |
| - --name wr-server \ |
71 |
| - --net='host' \ |
72 |
| - -v /etc/localtime:/etc/localtime:ro \ |
73 |
| - -v $PWD:/opt/weeklyreport \ |
74 |
| - weeklyreport:20170609 \ |
75 |
| - gunicorn wsgi:app --bind localhost:8000 -w 4 --log-file logs/awsgi.log --log-level=DEBUG |
| 41 | +修改config.py并进行配置: |
76 | 42 |
|
77 |
| -``` |
| 43 | +`DEPARTMENTS`:`这个元组为部门列表,第一次打开时自动初始化到数据库中,用户在注册时可以选择部门。 |
78 | 44 |
|
79 |
| -+ 数据库初始化 |
| 45 | +`MAIL_USERNAME` : 用来发送邮件通知的邮箱账号 |
80 | 46 |
|
81 |
| -这时打开localhost:8000会出现错误,因为还未初始化数据库,在bash中执行初始化deploy命令 |
82 |
| -```bash |
83 |
| -docker exec weeklyreport-server bash -c 'python3.6 manage.py deploy' |
84 |
| -``` |
| 47 | +`MAIL_PASSWORD` : 用来发送邮件通知的邮箱密码 |
85 | 48 |
|
86 |
| -配置完成,注册用户吧 |
87 | 49 |
|
88 | 50 | ## 后台管理
|
89 | 51 |
|
90 |
| -首先使用`FLASK_ADMIN_EMAIL`邮箱注册管理员账户,可以登录后台。 |
91 |
| - |
92 |
| -以后其他用户注册后,可以指定角色。 |
| 52 | +第一次注册的用户为超级管理员,永远有登录后台的权限。 |
| 53 | +管理员可以修改其他角色 |
93 | 54 |
|
94 | 55 | 默认用户角色为`EMPLOYEE`,仅具有读写自己的周报的权限,
|
95 | 56 |
|
|
0 commit comments