websoft9/apphub
2023-11-20 11:06:44 +08:00
..
apidocs update apidocs template 2023-10-24 14:49:44 +08:00
docs Update user.md 2023-11-20 11:06:44 +08:00
src update 2023-11-20 09:34:32 +08:00
tests update 2023-10-11 17:09:54 +08:00
install.sh update 2023-10-19 11:36:31 +08:00
README.md update 2023-10-11 17:39:25 +08:00
requirements.txt add update.sh 2023-10-27 10:41:24 +08:00
setup.py update 2023-10-19 11:36:31 +08:00

apphub cli

Usage: apphub [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  genkey     Generate a new API key
  getconfig  Get a config value
  setconfig  Set a config value

项目结构

src

  • src

    • main.py # 主程序入口
    • api # API路由和端点相关的代码(对外发布的API)
      • v1 # 版本1的API路由和端点代码
        • routers # 版本1的所有路由器
          • app.py # 应用相关的路由和端点代码
            • @router.get("/apps/") # 获取所有应用的列表
            • @router.post("/apps/install") # 安装新的应用
            • @router.post("/apps/{app_id}/start") # 启动指定ID的应用
            • @router.post("/apps/{app_id}/stop") # 停止指定ID的应用
            • @router.post("/apps/{app_id}/restart") # 重启指定ID的应用
            • @router.post("/apps/{app_id}/redeploy") # 重新部署指定ID的应用
            • @router.delete("/apps/{app_id}/uninstall") # 卸载指定ID的应用
          • settings.py # 配置相关的路由和端点代码
            • @router.get("/settings") # 获取当前的设置
            • @router.put("/settings") # 更新当前的设置
          • proxy.py
            • @router.get("/proxy/{app_id}") # 获取指定应用的代理信息
            • @router.post("/proxy/{app_id}") # 为指定的应用创建一个新的代理
            • @router.put("/proxy/{app_id}") # 更新指定应用的代理信息
            • @router.delete("/proxy/{app_id}") # 删除指定应用的代理
      • v2 # 版本2的API路由和端点代码
    • config # 项目的配置代码,例如环境变量、常量等
      • system.ini # 系统级别的配置
      • config.ini # 应用级别的配置
  • core # 项目的核心代码

    • api_key.py # 处理API密钥的模块
    • config.py
      • config.get_value() # 获取配置值
      • config.set_value() # 设置配置值
      • config.remove_value() # 删除配置值
      • config.remove_section() # 删除配置的一个区块
    • logger.py # 日志处理模块 -logger.access() # 记录访问日志 -logger.error() # 记录错误日志
  • external # 与外部系统交互的代码第三方API

    • gitea_api.py # Gitea交互的API调用代码

    • nginx_proxy_manager_api.py # Nginx Proxy Manager交互的API调用代码

      • get_token() # 获取访问Nginx Proxy Manager API的令牌
      • get_proxy_hosts() # 获取所有的代理主机列表
      • create_proxy_host() # 创建一个新的代理主机
      • update_proxy_host() # 更新一个已存在的代理主机
      • delete_proxy_host() # 删除一个已存在的代理主机
    • portainer_api.py # Portainer交互的API调用代码

  • schemas # 存放Pydantic模型定义用于请求和响应的数据验证

    • appInstall.py # 定义与应用安装相关的请求和响应模型
    • proxy.py
  • services # 存放服务层的代码,处理业务逻辑

    • app_manager.py # 处理应用管理相关的业务逻辑,如应用的查询、创建、卸载、启动、停止、重启、重建等
      • get_app() # 查询应用
      • install_app() # 创建新的应用
      • uninstall_app() # 卸载已存在的应用
      • start_app() # 启动已存在的应用
      • stop_app() # 停止已运行的应用
      • restart_app() # 重启已存在的应用
      • rebuild_app() # 重建已存在的应用
    • gitea_manager.py # 处理与Gitea相关的业务逻辑如仓库的创建、删除、更新等
      • get_repo() # 查询仓库
      • create_repo() # 创建新的仓库
      • update_repo() # 更新已存在的仓库
      • delete_repo() # 删除已存在的仓库
    • portainer_manager.py # 处理与Portainer相关的业务逻辑如Stack的创建、删除、启动、停止、重启重建等
      • get_stack() # 查询Stack
      • create_stack() # 创建新的Stack
      • delete_stack() # 删除已存在的Stack
      • start_stack() # 启动已存在的Stack
      • stop_stack() # 停止已运行的Stack
      • restart_stack() # 重启已存在的Stack
      • rebuild_stack() # 重建已存在的Stack
    • proxy_manager.py # 处理代理管理相关的业务逻辑,如代理的查询、创建、删除、更新等
      • get_proxy() # 查询代理
      • create_proxy() # 创建新的代理
      • update_proxy() # 更新已存在的代理
      • delete_proxy() # 删除已存在的代理
    • settings_manager.py # 处理设置管理相关的业务逻辑,如设置的读取和更新等
      • get_settings() # 获取设置
      • update_settings() # 更新设置
  • utils # 存放工具函数和工具类