# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: TimescaleDB
spec:
    description: TimescaleDB 是专为时间序列数据优化的关系型数据库，基于 PostgreSQL 构建，提供高效的数据存储和查询能力。
    icon: https://avatars.githubusercontent.com/u/8986001?s=200&v=4
    tags:
        - Database
        - TimeSeries
        - PostgreSQL
    readme: |-
        # TimescaleDB

        TimescaleDB 是一个开源的时间序列数据库，针对快速摄取和复杂查询进行了优化。它完全支持 SQL，并将 PostgreSQL 扩展为一个强大的时间序列数据平台。

        ## 特性

        - 自动分区（分块）
        - 查询优化
        - 数据保留策略
        - 连续聚合
        - 水平扩展
    services:
        - name: TimescaleDB
          icon: https://avatars.githubusercontent.com/u/8986001?s=200&v=4
          template: PREBUILT
          spec:
            source:
                image: timescale/timescaledb:latest-pg15
            ports:
                - id: database
                  port: 5432
                  type: TCP
            volumes:
                - id: data
                  dir: /var/lib/postgresql/data
            instructions:
                - title: Command to connect to your TimescaleDB
                  content: psql -h ${PORT_FORWARDED_HOSTNAME} -p ${DATABASE_PORT_FORWARDED_PORT} -U ${POSTGRES_USER} -d ${POSTGRES_DB}
                - title: TimescaleDB username
                  content: ${POSTGRES_USER}
                - title: TimescaleDB password
                  content: ${POSTGRES_PASSWORD}
                - title: TimescaleDB database
                  content: ${POSTGRES_DB}
                - title: TimescaleDB host
                  content: ${PORT_FORWARDED_HOSTNAME}
                - title: TimescaleDB port
                  content: ${DATABASE_PORT_FORWARDED_PORT}
            env:
                DATABASE_URL:
                    default: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
                    expose: true
                DATABASE_URL_UNPOOLED:
                    default: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
                    expose: true
                POSTGRES_DB:
                    default: zeabur
                    expose: true
                POSTGRES_HOST:
                    default: ${CONTAINER_HOSTNAME}
                    expose: true
                POSTGRES_PASSWORD:
                    default: ${PASSWORD}
                    expose: true
                POSTGRES_PORT:
                    default: ${DATABASE_PORT}
                    expose: true
                POSTGRES_USER:
                    default: postgres
                    expose: true
