# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Seq
spec:
    description: A centralized structured logging platform for .NET applications and microservices.
    coverImage: https://datalust.co/assets/screenshot-header-light.png
    icon: https://pbs.twimg.com/profile_images/1036829600632819712/8CQMKpyX_400x400.jpg
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: Domain
          description: What is the domain of your Seq?
    tags:
        - Logging
        - Monitoring
        - Analytics
    readme: |
        ## What is Seq?

        Seq is a centralized structured logging platform that makes it easy to search, analyze, and alert on application log data. It's designed for modern .NET applications and microservices, providing real-time log ingestion, powerful query capabilities, and rich visualization features.

        ## Key Features

        - **Structured Logging**: Native support for structured log events with properties and context
        - **Real-time Search**: Fast, full-text search across all log data with advanced filtering
        - **Powerful Queries**: SQL-like query language for complex log analysis
        - **Dashboards & Alerts**: Create custom dashboards and set up intelligent alerts
        - **API Integration**: REST API for programmatic access and integration
        - **Multi-tenant**: Support for multiple applications and environments

        ## Environment Variables

        After deployment, you can access the following environment variables in other services:

        - `SEQ_URL`: The URL to access your Seq instance
        - `SEQ_SERVER_URL`: The internal server URL for applications to send logs
        - `SEQ_FIRSTRUN_ADMINUSERNAME`: The administrator username (default: admin)
        - `SEQ_FIRSTRUN_ADMINPASSWORD`: The administrator password (auto-generated)

        ## Configuration Environment Variables

        The following environment variables are used to configure Seq:

        - `ACCEPT_EULA`: Must be set to "Y" to accept the Seq EULA
        - `SEQ_API_CANONICALURI`: The external URI for API access
        - `SEQ_FIRSTRUN_NOAUTHENTICATION`: Set to "True" to disable authentication on first run
        - `SEQ_FIRSTRUN_ADMINUSERNAME`: Administrator username (default: admin)
        - `SEQ_FIRSTRUN_ADMINPASSWORD`: Administrator password
        - `SEQ_FIRSTRUN_ADMINPASSWORDHASH`: Salted hash of administrator password (alternative to plain password)

        ## Getting Started

        1. Deploy this template to get your Seq instance running
        2. Access the web interface using the provided URL
        3. Configure your applications to send logs to Seq
        4. Start exploring your structured log data

        ## Connecting Your Applications

        To send logs from your .NET applications to Seq, install the Serilog.Sinks.Seq package and configure it:

        ```csharp
        Log.Logger = new LoggerConfiguration()
            .WriteTo.Seq("http://your-seq-url")
            .CreateLogger();
        ```

        For other platforms, check the [Seq documentation](https://docs.datalust.co/docs) for client libraries and integrations.

        ## Default Configuration

        - **Authentication**: Disabled by default for first run (SEQ_FIRSTRUN_NOAUTHENTICATION=True)
        - **EULA**: Automatically accepted (ACCEPT_EULA=Y)
        - **Port**: Web interface accessible on port 80

        ## Security Note

        For production use, it's recommended to:
        - Enable authentication after first setup
        - Configure API keys for secure access
        - Set up proper user management and permissions
    services:
        - name: seq
          icon: https://pbs.twimg.com/profile_images/1036829600632819712/8CQMKpyX_400x400.jpg
          template: PREBUILT_V2
          spec:
            source:
                image: datalust/seq:latest
            ports:
                - id: web
                  port: 80
                  type: HTTP
            volumes:
                - id: data
                  dir: /data
            instructions:
                - title: Admin Username
                  content: ${SEQ_FIRSTRUN_ADMINUSERNAME}
                - title: Admin Password
                  content: ${SEQ_FIRSTRUN_ADMINPASSWORD}
            env:
                ACCEPT_EULA:
                    default: "Y"
                    expose: false
                SEQ_API_CANONICALURI:
                    default: https://${ZEABUR_WEB_DOMAIN}
                    expose: false
                SEQ_FIRSTRUN_ADMINPASSWORD:
                    default: ${PASSWORD}
                    expose: true
                SEQ_FIRSTRUN_ADMINPASSWORDHASH:
                    default: ""
                    expose: false
                SEQ_FIRSTRUN_ADMINUSERNAME:
                    default: admin
                    expose: true
                SEQ_FIRSTRUN_NOAUTHENTICATION:
                    default: "True"
                    expose: false
            configs: []
            portForwarding:
                enabled: false
          domainKey: PUBLIC_DOMAIN
localization:
    ja-JP:
        description: .NET アプリケーションとマイクロサービス向けの集中型構造化ログプラットフォーム。
        readme: |-
            ## Seq とは？

            Seq は、アプリケーションログデータを簡単に検索、分析、アラートできる集中型構造化ログプラットフォームです。現代の .NET アプリケーションとマイクロサービス向けに設計されており、リアルタイムログ取り込み、強力なクエリ機能、豊富な可視化機能を提供します。

            ## 主な機能

            - **構造化ログ**: プロパティとコンテキストを持つ構造化ログイベントのネイティブサポート
            - **リアルタイム検索**: 高度なフィルタリングによる全ログデータの高速全文検索
            - **強力なクエリ**: 複雑なログ分析のための SQL 風クエリ言語
            - **ダッシュボードとアラート**: カスタムダッシュボードの作成とインテリジェントアラートの設定
            - **API 統合**: プログラマティックアクセスと統合のための REST API
            - **マルチテナント**: 複数のアプリケーションと環境のサポート

            ## 環境変数

            デプロイ後、他のサービスで以下の環境変数にアクセスできます：

            - `SEQ_URL`: Seq インスタンスにアクセスするための URL
            - `SEQ_SERVER_URL`: アプリケーションがログを送信するための内部サーバー URL
            - `SEQ_FIRSTRUN_ADMINUSERNAME`: 管理者ユーザー名（デフォルト：admin）
            - `SEQ_FIRSTRUN_ADMINPASSWORD`: 管理者パスワード（自動生成）

            ## 設定環境変数

            以下の環境変数は Seq の設定に使用されます：

            - `ACCEPT_EULA`: Seq EULA を受け入れるために "Y" に設定する必要があります
            - `SEQ_API_CANONICALURI`: API アクセス用の外部 URI
            - `SEQ_FIRSTRUN_NOAUTHENTICATION`: 初回実行時に認証を無効にするために "True" に設定
            - `SEQ_FIRSTRUN_ADMINUSERNAME`: 管理者ユーザー名（デフォルト：admin）
            - `SEQ_FIRSTRUN_ADMINPASSWORD`: 管理者パスワード
            - `SEQ_FIRSTRUN_ADMINPASSWORDHASH`: 管理者パスワードのソルト付きハッシュ（パスワードの代替手段）

            ## はじめに

            1. このテンプレートをデプロイして Seq インスタンスを実行
            2. 提供された URL を使用して Web インターフェースにアクセス
            3. アプリケーションを設定して Seq にログを送信
            4. 構造化ログデータの探索を開始

            ## アプリケーションの接続

            .NET アプリケーションから Seq にログを送信するには、Serilog.Sinks.Seq パッケージをインストールして設定してください：

            ```csharp
            Log.Logger = new LoggerConfiguration()
                .WriteTo.Seq("http://your-seq-url")
                .CreateLogger();
            ```

            他のプラットフォームについては、[Seq ドキュメント](https://docs.datalust.co/docs) でクライアントライブラリと統合情報を確認してください。

            ## デフォルト設定

            - **認証**: 初回実行時はデフォルトで無効 (SEQ_FIRSTRUN_NOAUTHENTICATION=True)
            - **EULA**: 自動的に承諾 (ACCEPT_EULA=Y)
            - **ポート**: Web インターフェースはポート 80 でアクセス可能

            ## セキュリティ注意事項

            本番環境での使用には以下を推奨します：
            - 初期セットアップ後の認証有効化
            - 安全なアクセスのための API キー設定
            - 適切なユーザー管理と権限設定
    zh-CN:
        description: 专为 .NET 应用程序和微服务设计的集中式结构化日志平台。
        readme: |
            ## 什么是 Seq？

            Seq 是一个集中式结构化日志平台，可以轻松搜索、分析和警报应用程序日志数据。它专为现代 .NET 应用程序和微服务设计，提供实时日志摄取、强大的查询功能和丰富的可视化特性。

            ## 主要功能

            - **结构化日志**: 原生支持带有属性和上下文的结构化日志事件
            - **实时搜索**: 快速、全文搜索所有日志数据，支持高级过滤
            - **强大查询**: 类 SQL 查询语言用于复杂日志分析
            - **仪表板和警报**: 创建自定义仪表板并设置智能警报
            - **API 集成**: REST API 用于程序化访问和集成
            - **多租户**: 支持多个应用程序和环境

            ## 环境变量

            部署后，您可以在其他服务中访问以下环境变量：

            - `SEQ_URL`: 访问 Seq 实例的 URL
            - `SEQ_SERVER_URL`: 应用程序发送日志的内部服务器 URL
            - `SEQ_FIRSTRUN_ADMINUSERNAME`: 管理员用户名（默认：admin）
            - `SEQ_FIRSTRUN_ADMINPASSWORD`: 管理员密码（自动生成）

            ## 配置环境变量

            以下环境变量用于配置 Seq：

            - `ACCEPT_EULA`: 必须设置为 "Y" 以接受 Seq EULA
            - `SEQ_API_CANONICALURI`: API 访问的外部 URI
            - `SEQ_FIRSTRUN_NOAUTHENTICATION`: 设置为 "True" 在首次运行时禁用身份验证
            - `SEQ_FIRSTRUN_ADMINUSERNAME`: 管理员用户名（默认：admin）
            - `SEQ_FIRSTRUN_ADMINPASSWORD`: 管理员密码
            - `SEQ_FIRSTRUN_ADMINPASSWORDHASH`: 管理员密码的加盐哈希（密码的替代方式）

            ## 快速开始

            1. 部署此模板以运行您的 Seq 实例
            2. 使用提供的 URL 访问 Web 界面
            3. 配置您的应用程序向 Seq 发送日志
            4. 开始探索您的结构化日志数据

            ## 连接您的应用程序

            要从 .NET 应用程序向 Seq 发送日志，请安装 Serilog.Sinks.Seq 包并进行配置：

            ```csharp
            Log.Logger = new LoggerConfiguration()
                .WriteTo.Seq("http://your-seq-url")
                .CreateLogger();
            ```

            对于其他平台，请查看 [Seq 文档](https://docs.datalust.co/docs) 获取客户端库和集成信息。

            ## 默认配置

            - **身份验证**: 首次运行时默认禁用 (SEQ_FIRSTRUN_NOAUTHENTICATION=True)
            - **EULA**: 自动接受 (ACCEPT_EULA=Y)
            - **端口**: Web 界面在 80 端口上可访问

            ## 安全提示

            对于生产环境使用，建议：
            - 首次设置后启用身份验证
            - 配置 API 密钥以进行安全访问
            - 设置适当的用户管理和权限
    zh-TW:
        description: 專為 .NET 應用程式和微服務設計的集中式結構化日誌平台。
        readme: |
            ## 什麼是 Seq？

            Seq 是一個集中式結構化日誌平台，可以輕鬆搜尋、分析和警報應用程式日誌資料。它專為現代 .NET 應用程式和微服務設計，提供即時日誌攝取、強大的查詢功能和豐富的視覺化特性。

            ## 主要功能

            - **結構化日誌**: 原生支援帶有屬性和上下文的結構化日誌事件
            - **即時搜尋**: 快速、全文搜尋所有日誌資料，支援進階過濾
            - **強大查詢**: 類 SQL 查詢語言用於複雜日誌分析
            - **儀表板和警報**: 建立自訂儀表板並設定智慧警報
            - **API 整合**: REST API 用於程式化存取和整合
            - **多租戶**: 支援多個應用程式和環境

            ## 環境變數

            部署後，您可以在其他服務中存取以下環境變數：

            - `SEQ_URL`: 存取 Seq 實例的 URL
            - `SEQ_SERVER_URL`: 應用程式傳送日誌的內部伺服器 URL
            - `SEQ_FIRSTRUN_ADMINUSERNAME`: 管理員使用者名稱（預設：admin）
            - `SEQ_FIRSTRUN_ADMINPASSWORD`: 管理員密碼（自動產生）

            ## 設定環境變數

            以下環境變數用於設定 Seq：

            - `ACCEPT_EULA`: 必須設定為 "Y" 以接受 Seq EULA
            - `SEQ_API_CANONICALURI`: API 存取的外部 URI
            - `SEQ_FIRSTRUN_NOAUTHENTICATION`: 設定為 "True" 在首次執行時停用身份驗證
            - `SEQ_FIRSTRUN_ADMINUSERNAME`: 管理員使用者名稱（預設：admin）
            - `SEQ_FIRSTRUN_ADMINPASSWORD`: 管理員密碼
            - `SEQ_FIRSTRUN_ADMINPASSWORDHASH`: 管理員密碼的加鹽雜湊（密碼的替代方式）

            ## 快速開始

            1. 部署此模板以執行您的 Seq 實例
            2. 使用提供的 URL 存取 Web 介面
            3. 設定您的應用程式向 Seq 傳送日誌
            4. 開始探索您的結構化日誌資料

            ## 連接您的應用程式

            要從 .NET 應用程式向 Seq 傳送日誌，請安裝 Serilog.Sinks.Seq 套件並進行設定：

            ```csharp
            Log.Logger = new LoggerConfiguration()
                .WriteTo.Seq("http://your-seq-url")
                .CreateLogger();
            ```

            對於其他平台，請查看 [Seq 文件](https://docs.datalust.co/docs) 取得用戶端程式庫和整合資訊。

            ## 預設設定

            - **身份驗證**: 首次執行時預設停用 (SEQ_FIRSTRUN_NOAUTHENTICATION=True)
            - **EULA**: 自動接受 (ACCEPT_EULA=Y)
            - **連接埠**: Web 介面在 80 連接埠上可存取

            ## 安全提示

            對於生產環境使用，建議：
            - 首次設定後啟用身份驗證
            - 設定 API 金鑰以進行安全存取
            - 設定適當的使用者管理和權限
