# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Apache Superset With Sample Data
spec:
    description: Powerful data exploration and visualization platform.
    coverImage: https://superset.apache.org/img/hero-screenshot.jpg
    icon: https://avatars.githubusercontent.com/u/42724554?s=200&v=4
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: Superset Domain
          description: The domain for accessing your Superset application.
    tags:
        - BI
        - Visualization
        - Data
    readme: |-
        # Apache Superset

        Superset is a modern data exploration and data visualization platform. Superset can replace or augment proprietary business intelligence tools for many teams. Superset integrates well with a variety of data sources.

        Superset provides:

        - A **no-code interface** for building charts quickly
        - A powerful, web-based **SQL Editor** for advanced querying
        - A **lightweight semantic layer** for quickly defining custom dimensions and metrics
        - Out of the box support for **nearly any SQL** database or data engine
        - A wide array of **beautiful visualizations** to showcase your data, ranging from simple bar charts to geospatial visualizations
        - Lightweight, configurable **caching layer** to help ease database load
        - Highly extensible **security roles and authentication** options
        - An **API** for programmatic customization
        - A **cloud-native architecture** designed from the ground up for scale

        ## Default Login
        - User: admin
        - Password: admin

        ## When you see the log like below, you can access your Superset application:
          [2025-09-19 14:17:30 +0000] [1126] [INFO] Listening at: http://0.0.0.0:8088 (1126)

        ## Docs
        - [Superset Documentation](https://superset.apache.org/)
    services:
        - name: postgresql
          icon: https://cdn.zeabur.com/marketplace/postgresql.svg
          template: PREBUILT
          spec:
            id: postgresql
            source:
                image: postgres:17
                command:
                    - docker-entrypoint.sh
                    - -c
                    - config_file=/etc/postgresql/postgresql.conf
            ports:
                - id: database
                  port: 5432
                  type: TCP
            volumes:
                - id: data
                  dir: /var/lib/postgresql/data
            instructions:
                - title: Connection String
                  content: postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}/${POSTGRES_DATABASE}
                - title: PostgreSQL Connect Command
                  content: psql "postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}/${POSTGRES_DATABASE}"
                - title: PostgreSQL username
                  content: ${POSTGRES_USERNAME}
                - title: PostgresSQL password
                  content: ${POSTGRES_PASSWORD}
                - title: PostgresSQL database
                  content: ${POSTGRES_DATABASE}
                - title: PostgreSQL host
                  content: ${PORT_FORWARDED_HOSTNAME}
                - title: PostgreSQL port
                  content: ${DATABASE_PORT_FORWARDED_PORT}
            env:
                PGDATA:
                    default: /var/lib/postgresql/data/pgdata
                POSTGRES_CONNECTION_STRING:
                    default: postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DATABASE}
                    expose: true
                POSTGRES_DATABASE:
                    default: ${POSTGRES_DB}
                    expose: true
                POSTGRES_DB:
                    default: zeabur
                POSTGRES_HOST:
                    default: ${CONTAINER_HOSTNAME}
                    expose: true
                POSTGRES_PASSWORD:
                    default: ${PASSWORD}
                    expose: true
                POSTGRES_PORT:
                    default: ${DATABASE_PORT}
                    expose: true
                POSTGRES_URI:
                    default: ${POSTGRES_CONNECTION_STRING}
                    expose: true
                POSTGRES_USER:
                    default: root
                POSTGRES_USERNAME:
                    default: ${POSTGRES_USER}
                    expose: true
                SUPERSET__SQLALCHEMY_DATABASE_URI:
                    default: postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DATABASE}
                    expose: true
            configs:
                - path: /etc/postgresql/postgresql.conf
                  template: |
                    # https://github.com/postgres/postgres/blob/master/src/backend/utils/misc/postgresql.conf.sample
                    listen_addresses = '*'
                    max_connections = 100
                    shared_buffers = 128MB
                    dynamic_shared_memory_type = posix
                    max_wal_size = 1GB
                    min_wal_size = 80MB
                    log_timezone = 'Etc/UTC'
                    datestyle = 'iso, mdy'
                    timezone = 'Etc/UTC'
                    lc_messages = 'en_US.utf8'
                    lc_monetary = 'en_US.utf8'
                    lc_numeric = 'en_US.utf8'
                    lc_time = 'en_US.utf8'
                    default_text_search_config = 'pg_catalog.english'
                  permission: null
                  envsubst: null
        - name: superset
          icon: https://avatars.githubusercontent.com/u/42724554?s=200&v=4
          dependencies:
            - postgresql
          template: PREBUILT
          spec:
            id: superset
            source:
                image: apache/superset:latest
                command:
                    - bash
                    - -c
                    - |
                      apt-get update && apt-get install -y postgresql-client

                      uv pip install psycopg2-binary

                      if [ -z "$SUPERSET_SECRET_KEY" ]; then
                        export SUPERSET_SECRET_KEY=$(python3 -c "import secrets; print(secrets.token_urlsafe(42))")
                        echo "Generated secure random SECRET_KEY"
                      fi

                      until pg_isready -h ${POSTGRES_HOST} -p ${POSTGRES_PORT} -U ${POSTGRES_USERNAME}; do
                        echo "Waiting for PostgreSQL to be ready..."
                        sleep 2
                      done

                      superset db upgrade
                      superset init
                      superset fab create-admin \
                        --username "admin" \
                        --firstname "admin" \
                        --lastname "user" \
                        --email "admin@example.com" \
                        --password "admin"
                      superset load_examples

                      /app/docker/entrypoints/run-server.sh
            ports:
                - id: web
                  port: 8088
                  type: HTTP
            volumes:
                - id: data
                  dir: /var/lib/superset/data
            env:
                SUPERSET_SECRET_KEY:
                    default: ${SUPERSET_SECRET_KEY}
          domainKey: PUBLIC_DOMAIN
localization:
    ja-JP:
        description: Apache Supersetは、強力なデータ探索および視覚化プラットフォームです。
        readme: |-
            # Apache Superset

            Supersetは、現代的なデータ探索およびデータ視覚化プラットフォームです。Supersetは、多くのチームの専有ビジネスインテリジェンスツールを置き換えたり、補完したりすることができます。Supersetは、さまざまなデータソースとよく統合されています。

            Supersetは以下を提供します：

            - チャートを迅速に構築するための**コード不要のインターフェース**
            - 高度なクエリのための強力なWebベースの**SQLエディター**
            - カスタムディメンションとメトリックを迅速に定義するための**軽量セマンティックレイヤー**
            - ほぼすべてのSQLデータベースまたはデータエンジンに対する**即時サポート**
            - 単純な棒グラフから地理空間視覚化まで、データを表示するための**美しい視覚化の幅広い配列**
            - データベースの負荷を軽減するのに役立つ**軽量で構成可能なキャッシュレイヤー**
            - 高度に拡張可能な**セキュリティロールと認証オプション**
            - プログラムによるカスタマイズのための**API**
            - スケールのためにゼロから設計された**クラウドネイティブアーキテクチャ**

            ## デフォルトログイン
            - ユーザー: admin
            - パスワード: admin

            ## Supersetアプリケーションにアクセスできるようになるログの例：
              [2025-09-19 14:17:30 +0000] [1126] [INFO] Listening at: http://0.0.0.0:8088 (1126)

            ## ドキュメント
            - [Superset公式ドキュメント](https://superset.apache.org/)
    ko-KR:
        description: Apache Superset는 강력한 데이터 탐색 및 시각화 플랫폼입니다.
        readme: |-
            # Apache Superset

            Superset는 현대적인 데이터 탐색 및 데이터 시각화 플랫폼입니다. Superset는 많은 팀의 전용 비즈니스 인텔리전스 도구를 대체하거나 보완할 수 있습니다. Superset는 다양한 데이터 소스와 잘 통합됩니다.

            Superset는 다음을 제공합니다:

            - 차트를 신속하게 구축하기 위한 **코드 없는 인터페이스**
            - 고급 쿼리를 위한 강력한 웹 기반 **SQL 편집기**
            - 사용자 정의 차원 및 메트릭을 신속하게 정의하기 위한 **경량 시맨틱 레이어**
            - 거의 모든 SQL 데이터베이스 또는 데이터 엔진에 대한 **즉각적인 지원**
            - 단순한 막대 그래프에서 지리 공간 시각화에 이르기까지 데이터를 표시하기 위한 **아름다운 시각화의 폭넓은 배열**
            - 데이터베이스의 부하를 줄이는 데 도움이 되는 **경량 구성 가능 캐시 레이어**
            - 고도로 확장 가능한 **보안 역할 및 인증** 옵션
            - 프로그래밍 방식의 사용자 지정을 위한 **API**
            - 확장을 위해 처음부터 설계된 **클라우드 네이티브 아키텍처**

            ## 기본 로그인
            - 사용자: admin
            - 비밀번호: admin

            ## Superset 애플리케이션에 액세스할 수 있게 되는 로그 예:
              [2025-09-19 14:17:30 +0000] [1126] [INFO] Listening at: http://0.0.0.0:8088 (1126)

            ## 문서
            - [Superset 공식 문서](https://superset.apache.org/)
    zh-TW:
        description: Apache Superset 是現代化的資料探索與視覺化平台。
        readme: |-
            # Apache Superset

            Superset 是一個現代化的資料探索與視覺化平台。Superset 可以取代或增強許多團隊的專有商業智慧工具。Superset 與各種資料來源整合良好。

            Superset 提供：

            - 一個 **無編碼的介面**，可以快速建立圖表
            - 一個強大的、基於網頁的 **SQL 編輯器**，用於進行高級查詢
            - 一個 **輕量級的語義層**，可以快速定義自訂維度和指標
            - 開箱即用的支援 **幾乎所有 SQL** 數據庫或數據引擎
            - 一系列 **美觀的視覺化**，可以展示您的數據，範圍從簡單的條形圖到地理空間視覺化
            - 輕量級、可配置的 **快取層**，幫助減輕資料庫負擔
            - 高度可擴展的 **安全角色和身份驗證** 選項
            - 一個 **API**，用於程式化自訂
            - 一個 **雲原生架構**，從一開始就為擴展而設計

            ## 預設登入資訊
            - 使用者: admin
            - 密碼: admin

            ## 當你看到類似以下的日誌時，就可以訪問你的 Superset 應用程式了：
              [2025-09-19 14:17:30 +0000] [1126] [INFO] Listening at: http://0.0.0.0:8088 (1126)

            ## 文件
            - [Superset 官方文件](https://superset.apache.org/)
