1 Star 0 Fork 0

吴宇航 / PythonServiceDeployment

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

PythonServiceDeployment

平台简介

用于快速部署多主机python/nginx项目, 并提供一些web-shell, web-sftp实用功能
该平台支持windows/linux平台部署, uvicorn单进程启动(如多进程启动(--workers)必须使用nginx代理 + ip hash负载均衡, 因一些任务锁使用的是进程锁)

技术架构

  • 前端: vue-next-admin-template, 基于该平台进行二次开发
  • 后端: fastapi + sqlalchemy + asyncssh, 使用asyncio全异步实现所有功能

在线体验

内置功能

  • 角色管理: 分配接口权限

  • 用户管理: 用户是系统操作者,该功能主要完成系统用户配置。

  • 定时任务: 使用apscheduler实现的单进程定时任务

  • WEB-SHELL: ssh模拟终端工具, 暂时设计为仅支持用户名密码登录, 所有模拟终端前端均适配任意尺寸屏幕

  • WEB-SFTP: 基于sftp协议实现的文件管理功能, 针对当前部署服务器/远程ssh服务

    • 包括但不限下述功能
    • 创建文件/目录
    • 上传文件/上传目录(支持断点续传, 使用md5进行校验)
    • 修改文件/目录权限
    • 压缩/解压.tar, .tar.gz文件
    • 搜索文件
    • 在当前目录打开ssh模拟终端
    • 跨服务器文件传输, 使用Ctrl + c/ Ctrl + v, 支持暂停, 断点续传
    • 远程文件下载, 支持分块下载, 使用http range实现
    • 文件编辑功能(双击文件进入编辑模式), 对任意 < 3MB文件进行编辑操作, 并提供N种文件后缀格式, 4种主题
    • tail -f 流式查看日志文件, 支持的后缀(.log, .out), 使用http chunk实现, 并基于心跳机制关闭子进程
  • 实例管理: 用于管理远程云主机

    • 初始化服务时为目标主机安装conda/nginx/supervisor, 安装到pydep-user用户下, 不会影响远程主机原有服务
  • 项目管理: 用于进程管理的项目基项

  • 构建模板: 用于进程构建配置模板(暂未完成)

  • 进程管理: 以分组的形式管理nginx/python进程

    • nginx支持(nginx暂时功能未完成)
      • 负载均衡
      • 反向代理
      • Cli(vite/webpack等前端项目)
      • 纯静态
      • 一键SSL配置
    • python支持
      • gunicorn(用于部署wsgi应用, 例如django, flask等)
      • uvicorn(用于部署asgi应用, 如fastapi)
      • python(python或任意命令时执行应用)

源码地址

gitee地址:https://gitee.com/wuyuhang409_user/PythonServiceDeployment.git

开发环境

前端: 
    建议使用nvm管理node版本
    node==v16.14.2

后端:
    建议使用conda管理虚拟环境, 如miniconda
    Python==3.10.12  # 建议3.10<=version<=3.12
    # 建议使用postgresql, mysql, sqlite也可以, 修改sqlalchemy.url即可
    # 需要注意的时, 需要安装相应sqlalchemy异步支持方言, 如asyncpg, asyncmy等
    Postgresql-14

快速开始

前端

# 进入web前端目录
cd web

# 安装依赖
npm install

# .env.development: 修改VITE_API_URL参数设置后台接口地址
# vite.config.ts: server 默认使用开发代理模式连接后台

# 运行项目
npm run dev

后端

# 创建虚拟环境
conda create -n pythonServiceDeployment python=3.10

# 激活虚拟环境
conda activate pythonServiceDeployment
# 上述操作根据自身情况看是否需要

# 安装依赖
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# 创建postgresql数据库
create database pydep-db2

# 复配配置文件, 修改db引擎
cp core/settings.py core/local_settings.py
# 该配置写入local_settings.py, 根据自己的pg数据库信息
DATABASE_ENGINE = 'postgresql+asyncpg://postgres:123456@127.0.0.1:5432/pydep-db2'

# 修改alembic.ini中sqlalchemy.url配置, 注意, 此处需使用同步db引擎, 需自行安装, pg: pip install psycopg2 ...等
sqlalchemy.url = postgresql+psycopg2://postgres:123456@127.0.0.1:5432/pydep-db2

# 初始化数据库, 具体参数alembic/README.md
alembic revision --autogenerate -m "init_database"  # 创建迁移版本文件
alembic upgrade head  # 执行迁移文件

# 创建超级用户
python manage.py createsuperuser

# 启动服务
uvicorn server_main:app --host 127.0.0.1 --port 8003

docker部署

docker compose up -d  # 较高docker版本原生支持compose

docker-compose up -d  # 较低docker版本, 需自行安装docker-compose

演示图

image-01 image-02 image-03 image-04 image-05 image-06 image-07 image-08 image-09 image-10 image-11 image-12 image-13 image-14 image-15 image-16 image-17 image-18 image-19 image-20 image-21 image-22 image-23 image-24 image-25 image-26 image-27 image-28

空文件

简介

用于快速部署多主机python/nginx项目, 并提供一些web-shell, web-sftp实用功能 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/wuyuhang409_user/PythonServiceDeployment.git
git@gitee.com:wuyuhang409_user/PythonServiceDeployment.git
wuyuhang409_user
PythonServiceDeployment
PythonServiceDeployment
master

搜索帮助