mcpField
L
lazycat-dynamic-deploy

lazycat-dynamic-deploy

github.com/whoamihappyhackingクラウド・DevOps59224 回インストール3 週間前に更新
リポジトリ

lazycat-dynamic-deploy について

懒猫微服向けアプリをパッケージ化する開発者向けの動的デプロイスキルです。インストール時の入力、Manifest のテンプレート描画、アプリのフロントエンドを変更しないページへの JavaScript 注入を扱います。

主な機能

  1. 01インストール時パラメーターの定義
  2. 02Go テンプレートによる Manifest 描画
  3. 03ユーザー・システムパラメーターの利用
  4. 04指定ページへのスクリプト注入
  5. 05パッケージ内のカスタム JavaScript の参照

活用シーン

  1. 01インストール時にアプリ設定を収集
  2. 02サービスに対象 IP を渡す
  3. 03Seed から安定したパスワードを生成
  4. 04サードパーティーのページに自動ログインを追加

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/whoamihappyhacking/lazycat-skills --skill lazycat-dynamic-deploy

インストール後、Claude Code で/lazycat-dynamic-deployを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
deploy-params.md
injects.md
manifest-render.md

詳細

プロジェクトの README より

懒猫微服动态部署与注入指南

你是一个专业的懒猫微服应用架构师。当开发者需要向用户索要自定义配置(如密码、远程 IP 等),或者需要在不修改原应用代码的情况下,强行向应用的前端页面注入 JavaScript 脚本时,请遵循本指南。

1. 动态部署参数与模板渲染 (v1.3.8+)

懒猫微服支持在安装应用前,弹出一个 UI 界面让用户填写参数,然后利用这些参数动态渲染 lzc-manifest.yml。

步骤 A: 编写 lzc-deploy-params.yml

在项目根目录创建此文件,定义需要用户填写的字段。

params:
  - id: target_ip
    type: string
    name: "目标服务器 IP"
    description: "你要代理的内网服务器 IP"
  - id: enable_debug
    type: bool
    name: "开启 Debug"
    default_value: "false"
    optional: true

类型支持: string, bool, secret, lzc_uid

步骤 B: 在 lzc-manifest.yml 中使用模板渲染

使用 Go 模板语法 ({{ ... }}) 读取参数。

  • 用户参数使用 .U.参数ID (例如: {{ .U.target_ip }})。如果 ID 包含 .,需使用 index (如 {{ index .U "my.param" }})。
  • 系统参数使用 .S (例如: .S.BoxDomain, .S.IsMultiInstance)。
  • 随机密码生成函数: {{ stable_secret "admin_password" | substr 0 8 }} (同一个微服,相同的 seed 永远生成相同的字符串)。

示例:

services:
  myapp:
    image: xxx
    environment:
      - REMOTE_IP={{ .U.target_ip }}
      - DB_PASS={{ stable_secret "db_root_pass" }}

2. 网页脚本注入 (application.injects) (v1.5.0+)

适用于在不修改第三方 Docker 镜像前端代码的情况下,向特定网页强行注入 JS 脚本(比如用来自动填充难以修改的默认密码)。

核心逻辑: 只有满足 include(白名单)且不命中 exclude(黑名单)的 HTML 页面才会被注入。

示例:实现第三方系统的自动登录

application:
  injects:
    - id: auto-login
      mode: exact # 支持 exact(精确) 或 prefix(前缀)
      include:
        - "/login"      # 当访问 /login 时注入
        - "/#signin"    # 也能匹配 hash 路由
      scripts:
        # 使用懒猫内置的表单填充脚本
        - src: builtin://simple-inject-password
          params:
            user: "admin"
            password: "{{ stable_secret "app_admin_pass" }}"
            autoSubmit: true

自定义注入脚本: 如果你想注入自己写的脚本,可以将 JS 文件放在打包目录中,通过 file:///lzcapp/pkg/content/myscript.js 引用。在脚本内部,可以通过 __LZC_INJECT_PARAMS__ 获取传入的 params 参数。

平台兼容性说明

如果需要查看详细的内置模板函数列表、系统参数列表(SysParams)或了解脚本注入的 builtin://simple-inject-password 的详细参数配置(如修改选择器),请主动读取本技能包 references/ 目录下的相关 Markdown 文档。

コメント