# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Strapi CMS Template
spec:
    description: Strapi CMS with PostgreSQL, pre-configured for one-click deployment on Zeabur.
    icon: https://strapi.io/assets/favicon-32x32.png
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: CMS Domain
          description: Your Strapi CMS domain (e.g. enter my-cms, the domain will be my-cms.zeabur.app)
    tags:
        - CMS
    readme: |-
        # Strapi CMS
        One-click deploy Strapi CMS with PostgreSQL on Zeabur.
        After deployment, open your domain to access the Strapi Admin panel and create an admin account.
    services:
        - name: PostgreSQL
          icon: https://raw.githubusercontent.com/zeabur/service-icons/main/marketplace/postgresql.svg
          template: PREBUILT
          spec:
            id: postgresql
            source:
                image: postgres:16
            ports:
                - id: database
                  port: 5432
                  type: TCP
            volumes:
                - id: data
                  dir: /var/lib/postgresql/data
            env:
                POSTGRES_DB:
                    default: strapi
                    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: strapi
                    expose: true
        - name: Strapi
          icon: https://strapi.io/assets/favicon-32x32.png
          template: GIT
          spec:
            id: strapi
            source:
                source: GITHUB
                repo: 1194999555
                branch: master
            ports:
                - id: web
                  port: 1337
                  type: HTTP
            env:
                ADMIN_JWT_SECRET:
                    default: ${PASSWORD}
                API_TOKEN_SALT:
                    default: ${PASSWORD}
                APP_KEYS:
                    default: ${PASSWORD},${PASSWORD},${PASSWORD},${PASSWORD}
                DATABASE_CLIENT:
                    default: postgres
                DATABASE_HOST:
                    default: ${POSTGRES_HOST}
                DATABASE_NAME:
                    default: ${POSTGRES_DB}
                DATABASE_PASSWORD:
                    default: ${POSTGRES_PASSWORD}
                DATABASE_PORT:
                    default: ${POSTGRES_PORT}
                DATABASE_USERNAME:
                    default: ${POSTGRES_USER}
                ENCRYPTION_KEY:
                    default: ${PASSWORD}
                HOST:
                    default: 0.0.0.0
                JWT_SECRET:
                    default: ${PASSWORD}
                NODE_ENV:
                    default: production
                PORT:
                    default: "1337"
                TRANSFER_TOKEN_SALT:
                    default: ${PASSWORD}
          domainKey: PUBLIC_DOMAIN
