# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Hysteria
spec:
    description: Hysteria UDP proxy with TLS password auth and HTTP masquerade.
    icon: https://raw.githubusercontent.com/2dust/v2rayN/refs/heads/master/v2rayN/v2rayN/Resources/v2rayN.ico
    readme: "# Hysteria - Point & Click Setup\n\n## ⚠️ Important Notes\n- At first start, there is **no TLS certificate** under `/etc/hysteria/ssl`, which will cause the server to **crash in a loop**.\n- To avoid this, temporarily change the **CMD** to `sleep infinity`, upload your certs, then change CMD back to the hysteria server command.\n- On Zeabur, **UDP ports are not shown in the dashboard UI**, but they work normally. You need to SSH into the workspace and run:\n  - `kubectl get services --all-namespaces`\n  - Then find the NodePort like `6445/xxxxx/UDP`, and use `xxxxx` as the public port.\n\n## \U0001F3AE 4-Step Mouse Operation\n1. **Check Port**: Services → Port Mapping (6445/udp → random public port, via `kubectl get services --all-namespaces`)\n2. **Upload Certs**: Mount `/etc/hysteria/ssl` (inside `/etc/hysteria` volume) with your TLS cert and key\n3. **Edit Config**: Config Editor → `/etc/hysteria/server.yaml` (if needed)\n4. **Restart**: Click **Restart button**\n\nMake sure port mapping uses **UDP** and your certificates are valid.\n\n### Example Server Command (CMD)\n- Normal run:\n  - `/usr/bin/hysteria server -c /etc/hysteria/server.yaml`\n- First-time init (no cert yet):\n  - `sleep infinity` (upload certs, then switch back to the server command)\n"
    services:
        - name: Hysteria
          icon: https://raw.githubusercontent.com/2dust/v2rayN/refs/heads/master/v2rayN/v2rayN/Resources/v2rayN.ico
          template: PREBUILT_V2
          spec:
            id: hysteria
            source:
                image: teddysun/hysteria:latest
            ports:
                - id: port
                  port: 6445
                  type: UDP
            volumes:
                - id: hysteria
                  dir: /etc/hysteria
            configs:
                - path: /etc/hysteria/server.yaml
                  template: |-
                    listen: :6445

                    tls:
                      cert: /etc/hysteria/ssl/fullchain.pem
                      key: /etc/hysteria/ssl/privkey.pem

                    auth:
                      type: password
                      password: yourpassword

                    masquerade:
                      type: proxy
                      proxy:
                        url: https://www.microsoft.com/
                        rewriteHost: true
                  permission: null
                  envsubst: null
localization:
    zh-CN:
        description: Hysteria UDP 代理，密码认证 + TLS + 站点伪装。
        readme: "# Hysteria\n\n## ⚠️ 注意事项\n- 首次启动时 `/etc/hysteria/ssl` 下没有证书，Hysteria 会因为找不到证书而**不断重启**。\n- 为避免这个问题，可以先把 CMD 改成 `sleep infinity`，上传证书后再改回 Hysteria 启动命令。\n- 在 Zeabur 上，控制台**不会显示 UDP 端口**，但实际是正常映射的，需要通过 SSH 进入 Workspace，执行：\n  - `kubectl get services --all-namespaces`\n  - 找到形如 `6445/xxxxx/UDP` 的端口，其中 `xxxxx` 即为公网 NodePort。\n\n## \U0001F3AE 4 步鼠标操作\n1. **查端口**：通过 SSH 执行 `kubectl get services --all-namespaces`，找到 6445 对应的 UDP 公网端口（形如 `6445/xxxxx/UDP`）\n2. **上传证书**：挂载 `/etc/hysteria/ssl`（位于 `/etc/hysteria` 卷内），放入 TLS 证书和私钥\n3. **编辑配置**：文件编辑器 → `/etc/hysteria/server.yaml`（如需修改）\n4. **重启**：点击**重启按钮**\n\n### 示例启动命令（CMD）\n- 正常运行：\n  - `/usr/bin/hysteria server -c /etc/hysteria/server.yaml`\n- 首次初始化（还没有证书）：\n  - `sleep infinity`（上传证书后改回上面的命令）\n\n请确保端口映射为 **UDP** 且证书有效。\n"
    zh-TW:
        description: Hysteria UDP 代理，密碼驗證 + TLS + 網站偽裝。
        readme: "# Hysteria\n\n## ⚠️ 注意事項\n- 首次啟動時 `/etc/hysteria/ssl` 底下沒有憑證，Hysteria 會因找不到憑證而**一直重啟**。\n- 為避免此問題，可以先把 CMD 改成 `sleep infinity`，上傳憑證後再改回 Hysteria 啟動命令。\n- 在 Zeabur 上，控制台**不會顯示 UDP 端口**，但實際映射是正常的，需要透過 SSH 進入 Workspace，執行：\n  - `kubectl get services --all-namespaces`\n  - 找到類似 `6445/xxxxx/UDP` 的端口，其中 `xxxxx` 即為對外的 NodePort。\n\n## \U0001F3AE 4 步滑鼠操作\n1. **查端口**：透過 SSH 執行 `kubectl get services --all-namespaces`，找到 6445 對應的 UDP 公網端口（如 `6445/xxxxx/UDP`）\n2. **上傳憑證**：掛載 `/etc/hysteria/ssl`（位於 `/etc/hysteria` 卷內），放入 TLS 憑證和私鑰\n3. **編輯配置**：檔案編輯器 → `/etc/hysteria/server.yaml`（如需修改）\n4. **重啟**：點擊**重啟按鈕**\n\n### 範例啟動命令（CMD）\n- 正常運行：\n  - `/usr/bin/hysteria server -c /etc/hysteria/server.yaml`\n- 首次初始化（尚未有憑證）：\n  - `sleep infinity`（上傳憑證後改回上述命令）\n\n請確認端口映射為 **UDP** 並且憑證有效。\n"
