# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: claude-code-hub
spec:
    description: |
        Deploy Claude Code Hub with PostgreSQL and Redis on Zeabur.
        This template uses the published Docker image and is suitable for one-click setup.
    icon: https://raw.githubusercontent.com/ding113/claude-code-hub/main/public/globe.svg
    tags:
        - AI API Tool
        - Productivity
        - Database
    readme: |
        # Claude Code Hub

        This template deploys Claude Code Hub with PostgreSQL 17 and Redis 7.

        ## After deployment

        1. Open the generated public URL for the `claude-code-hub` service.
        2. Open the `claude-code-hub` service variables and copy the generated `ADMIN_TOKEN`.
        3. Use that token to log in.
        4. If you bind a custom domain later, update `APP_URL` to match it.
    services:
        - name: cchdb
          icon: https://raw.githubusercontent.com/zeabur/service-icons/main/marketplace/postgresql.svg
          template: PREBUILT_V2
          spec:
            id: cchdb
            source:
                image: postgres:17.4
            ports:
                - id: database
                  port: 5432
                  type: TCP
            volumes:
                - id: data
                  dir: /var/lib/postgresql/data
            env:
                CCH_POSTGRES_CONNECTION_STRING:
                    default: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${CCH_POSTGRES_HOST}:${CCH_POSTGRES_PORT}/${POSTGRES_DB}
                    expose: true
                CCH_POSTGRES_HOST:
                    default: ${CONTAINER_HOSTNAME}
                    expose: true
                CCH_POSTGRES_PORT:
                    default: ${DATABASE_PORT}
                    expose: true
                POSTGRES_DB:
                    default: claude_code_hub
                POSTGRES_PASSWORD:
                    default: ${PASSWORD}
                    expose: true
                POSTGRES_USER:
                    default: postgres
            healthCheck:
                type: TCP
                port: database
        - name: redis
          icon: https://raw.githubusercontent.com/zeabur/service-icons/main/marketplace/redis.svg
          template: PREBUILT_V2
          spec:
            id: redis
            source:
                image: redis:7.4.2-alpine
            ports:
                - id: database
                  port: 6379
                  type: TCP
            volumes:
                - id: data
                  dir: /data
            env:
                REDIS_CONNECTION_STRING:
                    default: redis://:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT}
                    expose: true
                REDIS_HOST:
                    default: ${CONTAINER_HOSTNAME}
                    expose: true
                REDIS_PASSWORD:
                    default: ${PASSWORD}
                    expose: true
                REDIS_PORT:
                    default: ${DATABASE_PORT}
                    expose: true
            healthCheck:
                type: TCP
                port: database
        - name: claude-code-hub
          icon: https://raw.githubusercontent.com/zeabur/service-icons/refs/heads/main/git/docker/default.svg
          template: PREBUILT_V2
          spec:
            id: claude-code-hub
            source:
                image: ghcr.io/ding113/claude-code-hub:last
            ports:
                - id: web
                  port: 3000
                  type: HTTP
            env:
                ADMIN_TOKEN:
                    default: ${PASSWORD}
                APP_URL:
                    default: ${ZEABUR_WEB_URL}
                AUTO_MIGRATE:
                    default: "true"
                DSN:
                    default: ${CCH_POSTGRES_CONNECTION_STRING}
                ENABLE_SECURE_COOKIES:
                    default: "true"
                NODE_ENV:
                    default: production
                REDIS_URL:
                    default: ${REDIS_CONNECTION_STRING}
                TZ:
                    default: Asia/Shanghai
            healthCheck:
                type: TCP
                port: web
localization:
    ja-JP:
        description: |
            Zeabur 上で Claude Code Hub を PostgreSQL 17 と Redis 7 と一緒にワンクリックでデプロイします。
            公開済みの Docker イメージを利用するため、テンプレートとして再利用しやすい構成です。
        readme: |
            # Claude Code Hub

            このテンプレートは Claude Code Hub、PostgreSQL 17、Redis 7 をまとめてデプロイします。

            ## デプロイ後

            1. `claude-code-hub` サービスに割り当てられた公開 URL を開きます。
            2. `claude-code-hub` サービスの環境変数ページで、自動生成された `ADMIN_TOKEN` を確認します。
            3. そのトークンを使ってログインします。
            4. 後で独自ドメインを設定した場合は、`APP_URL` も同じ URL に更新してください。
    zh-CN:
        description: |
            在 Zeabur 上一键部署 Claude Code Hub，包含 PostgreSQL 17 和 Redis 7。
            使用项目已发布的 Docker 镜像，适合模板化安装。
        readme: |
            # Claude Code Hub

            这个模板会同时部署 Claude Code Hub、PostgreSQL 17 和 Redis 7。

            ## 部署后

            1. 打开 `claude-code-hub` 服务生成的公网地址。
            2. 进入 `claude-code-hub` 服务的变量页面，复制自动生成的 `ADMIN_TOKEN`。
            3. 使用这个令牌登录。
            4. 如果后续绑定自定义域名，请同步更新应用里的 `APP_URL`。
    zh-TW:
        description: |
            在 Zeabur 上一鍵部署 Claude Code Hub，包含 PostgreSQL 17 與 Redis 7。
            使用專案已發布的 Docker 映像，適合以模板方式重複部署。
        readme: |
            # Claude Code Hub

            這個模板會同時部署 Claude Code Hub、PostgreSQL 17 與 Redis 7。

            ## 部署後

            1. 打開 `claude-code-hub` 服務產生的公開網址。
            2. 進入 `claude-code-hub` 服務的變數頁面，複製自動產生的 `ADMIN_TOKEN`。
            3. 使用這個令牌登入。
            4. 如果之後綁定自訂網域，請同步更新應用中的 `APP_URL`。
