# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Google Tag Manager Server-Side
spec:
    description: Google Tag Manager Server-Side (SST) deployment template, supporting Preview Server and Tagging Server.
    icon: https://www.svgrepo.com/show/353827/google-tag-manager.svg
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: Domain
          description: Your GTM Server-Side main domain (Tagging Server entry).
        - key: PREVIEW_DOMAIN
          type: DOMAIN
          name: Preview Domain
          description: Your GTM Preview Server domain (recommended to use subdomain).
        - key: CONTAINER_CONFIG
          type: STRING
          name: Container Config
          description: The Container Config string obtained from the GTM backend > Container ID > Manually provision tagging server.
    tags:
        - Google
        - Tag Manager
        - Analytics
        - Tracking
    readme: |-
        # Google Tag Manager Server-Side (SST) on Zeabur

        This template helps you quickly deploy Google Tag Manager Server-Side (SST), including Preview Server and Tagging Server.

        ## Steps
        1. Go to the GTM Server Container backend, click the container ID in the top right corner, select "Manually provision tagging server", and copy the Container Config.
        2. Set the domains for Preview Server and Tagging Server (recommended to use different subdomains).
        3. After deployment, fill in the public URL of the Tagging Server into the GTM backend Admin > Container Settings > Server container URL.
        4. Refer to the official documentation for verification and health checks.

        - Official documentation: https://developers.google.com/tag-platform/tag-manager/server-side/manual-setup-guide

        ## Health checks
        - You can check the service status through the `/healthz` path, for example `https://your-domain/healthz`.

        ## Notes
        - Preview Server can only have one instance, and must set `RUN_AS_PREVIEW_SERVER=true`.
        - After changing the preview server domain, you should restart the tagging server to apply the new domain.
        - It is recommended to bind the two services to different subdomains.
    services:
        - name: preview-server
          icon: https://www.svgrepo.com/show/353827/google-tag-manager.svg
          template: PREBUILT
          spec:
            source:
                image: gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
            ports:
                - id: web
                  port: 8080
                  type: HTTP
            env:
                CONTAINER_CONFIG:
                    default: ${CONTAINER_CONFIG}
                PREVIEW_SERVER_URL:
                    default: https://${ZEABUR_WEB_DOMAIN}
                    expose: true
                RUN_AS_PREVIEW_SERVER:
                    default: "true"
          domainKey: PREVIEW_DOMAIN
        - name: tagging-server
          icon: https://www.svgrepo.com/show/353827/google-tag-manager.svg
          template: PREBUILT
          spec:
            source:
                image: gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
            ports:
                - id: web
                  port: 8080
                  type: HTTP
            env:
                CONTAINER_CONFIG:
                    default: ${CONTAINER_CONFIG}
                CORS_ORIGIN_REGEX:
                    default: .*
          domainKey: PUBLIC_DOMAIN
localization:
    zh-CN:
        description: Google Tag Manager Server-Side（SST）部署模板，支持 Preview Server 和 Tagging Server。
        readme: |-
            # Google Tag Manager Server-Side（SST）

            本模板帮助你快速在 Zeabur 部署 Google Tag Manager Server-Side（SST），包括 Preview Server 和 Tagging Server。

            ## 步骤
            1. 前往 GTM Server Container 后台，点击右上角容器 ID，选择「Manually provision tagging server」，复制 Container Config。
            2. 分别设置 Preview Server 和 Tagging Server 的域名（建议使用不同子域名）。
            3. 部署后，将 Tagging Server 的公开 URL 填入 GTM 后台 Admin > Container Settings > Server container URL。
            4. 参考官方文档进行验证和健康检查。

            - 官方文档：https://developers.google.com/tag-platform/tag-manager/server-side/manual-setup-guide

            ## 健康检查
            - 你可以通过 `/healthz` 路径检查服务状态，例如 `https://your-domain/healthz`。

            ## 注意事项
            - Preview Server 只能有一个实例，且必须设置 `RUN_AS_PREVIEW_SERVER=true`。
            - 更换 Preview Server 域名后，需要重新启动 Tagging Server 来应用新域名。
            - 建议将两个服务分别绑定不同子域名。
    zh-TW:
        description: Google Tag Manager Server-Side（SST）部署模板，支援 Preview Server 與 Tagging Server。
        readme: |-
            # Google Tag Manager Server-Side（SST）

            本模板協助你快速在 Zeabur 部署 Google Tag Manager Server-Side（SST），包含 Preview Server 及 Tagging Server。

            ## 步驟
            1. 前往 GTM Server Container 後台，點擊右上角容器 ID，選擇「Manually provision tagging server」，複製 Container Config。
            2. 分別設定 Preview Server 與 Tagging Server 的網域（建議使用不同子網域）。
            3. 部署後，將 Tagging Server 的公開網址填入 GTM 後台 Admin > Container Settings > Server container URL。
            4. 參考官方文件進行驗證與健康檢查。

            - 官方文件：https://developers.google.com/tag-platform/tag-manager/server-side/manual-setup-guide

            ## 健康檢查
            - 你可以透過 `/healthz` 路徑檢查服務狀態，例如 `https://your-domain/healthz`。

            ## 注意事項
            - Preview Server 只能有一個實例，且必須設定 `RUN_AS_PREVIEW_SERVER=true`。
            - 更換 Preview Server 網域後，需要重新啟動 Tagging Server 來套用新網域。
            - 建議將兩個服務分別綁定不同子網域。
