start.rst 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. ==============
  2. 如何运行
  3. ==============
  4. -------------
  5. 开发环境
  6. -------------
  7. - 将settings/dev.py.sample在settings目录下复制一份并重命名为config.py
  8. - 创建数据库并修改settings/config.py中相应配置(数据库配置、redis地址配置、日志路径配置等等)
  9. - 创建python虚拟环境: python3.10.x(python3.10最新稳定版)
  10. - 安装依赖包: pip install -r requirements/dev.txt
  11. - 启动redis(用于生成唯一的工单流水号+celery异步任务[执行脚本、状态hook、通知hook])
  12. - 初始化数据库
  13. ::
  14. python manage.py makemigrations
  15. python manage.py migrate
  16. # 如果只是本地测试,无需二次开发,也可以直接参考生产环境部署中直接导入初始sql(初始sql中包含admin用户)
  17. - 创建初始账户: python manage.py createsuperuser
  18. - 启动开发环境: python manage.py runserver 6060
  19. - 安装node v14
  20. - 安装前端依赖
  21. 进入到frontend目录下执行npm i
  22. - 启动前端开发环境
  23. 进入到frontend目录下执行npm run dev
  24. - 启动celery任务: celery -A tasks worker -l info -Q loonflow (用于执行任务脚本、触发任务hook、通知hook。本地开发二次开发如果不需要这些功能时可以不启动)
  25. - 访问http://127.0.0.1:8000即可
  26. -------------
  27. 生产环境源码部署
  28. -------------
  29. - 生产环境建议使用nginx+uwsgi的方式部署
  30. - 将settings/pro.py.sample在settings目录下复制一份并重命名为config.py
  31. - 创建数据库并修改settings/pro.py中相应配置(数据库配置、redis地址配置、日志路径配置等等)
  32. - 创建python虚拟环境: python3.10.x(python3.10最新稳定版)
  33. - 安装依赖包: pip install -r requirements/pro.txt
  34. - 编译前端
  35. ::
  36. 进入frontend目录下,依次执行npm i 和npm run build (主要需要事先安装好node,建议安装node v14版本)
  37. - 启动redis(用于生成唯一的工单流水号+celery异步任务[执行脚本、状态hook、通知hook],centos7下redis service配置文件可参考https://github.com/blackholll/loonflow-helper/tree/master/deploy)
  38. - 初始化数据库,导入初始化sql, 命令如下
  39. ::
  40. mysql -uroot -p loonflow_2_0 < loonflow2.0.0.sql # 生产环境不建议使用migrate. 用户名及数据库需要根据你的实际情况也即config.py中的配置做相应修改
  41. - 初始admin账号密码为admin/123456
  42. - 启动celery任务: celery multi start -A tasks worker -l info -c 8 -Q loonflow --logfile=xxx.log --pidfile=xxx.pid # -c参数为启动的celery进程数,注意logfile和pidfile前面是两个-, logfile为日志文件路径, pidfile为pid文件路径,可自行视情况调整
  43. - 如需优雅停止celery服务:
  44. ::
  45. celery multi stopwait -A tasks worker -l info -c 8 -Q loonflow --logfile=xxx.log --pidfile=xxx.pid
  46. - 如需优雅重启celery服务:
  47. ::
  48. celery multi restart -A tasks worker -l info -c 8 -Q loonflow --logfile=xxx.log --pidfile=xxx.pid
  49. - 启动uwsgi
  50. uwsgi配置文件参考docker_compose_deploy/loonflow-web目录下uwsgi.ini
  51. - 启动nginx
  52. nginx配置文件参考docker_compose_deploy/loonflow-web目录下nginx.conf
  53. --------------------------------
  54. 生产环境docker compose方式部署
  55. --------------------------------
  56. - 准备工作:
  57. ::
  58. 准备一台linux服务器
  59. 安装好python3(请自行百度或者google)
  60. 安装好docker-compose(请自行百度或者google)
  61. 配置容器镜像加速(请自行百度或者google)
  62. - 启动/停止服务
  63. ::
  64. # 启动服务
  65. cd docker_compose_deploy
  66. docker compose -f docker-compose.yml up -d
  67. # 停止服务
  68. docker compose -f docker-compose.yml stop
  69. - 启动/停止服务(使用已有mysql)
  70. ::
  71. # 进入mysql后创建数据库并授权
  72. mysql> create database loonflow character set utf8mb4; # 注意要使用utf8mb4字符集
  73. mysql> grant all privileges on loonflow.* to loonflow@'%' identified by '123456';
  74. # 移除及更新docker-compose.yml中mysql相关配置
  75. 移除loonflow-mysql服务
  76. 移除loonflow-task和loonflow-web服务中depends_on的oonflow-mysql
  77. 修改loonflow-task和loonflow-web服务中的mysql地址、用户、密码
  78. # 启动服务
  79. cd docker_compose_deploy
  80. docker compose -f docker-compose.yml up -d
  81. # 停止服务
  82. docker compose -f docker-compose.yml stop
  83. - 访问服务
  84. http://{service's ip}
  85. -------------
  86. 常见问题
  87. -------------
  88. - 部署完后访问用户及密码是多少
  89. docker compose方式会自动导入初始数据,用户及密码为admin/123456,其他已经用户的密码应该也是123456。
  90. - docker-compose方式如何修改mysql的密码
  91. 容器mysql服务的root密码:docker_compose_deploy/docker-compose.yml中MYSQL_ROOT_PASSWORD(需要第一次启动服务之前修改)
  92. 容器mysql服务loonflow的密码: docker_compose_deploy/loonflow-mysql/init/create_database.sql(需要第一次启动服务之前修改)
  93. - docker-compose方式如何修改redis的密码
  94. docker_compose_deploy/docker-compose.yml中loonflow-redis中requirepass及其他服务环境变量中的密码
  95. - docker-compose方式支持ARM架构下启动么
  96. 别折腾了,找个linux服务器吧, 我搞了一整天没成功build所有的arm image。