# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Kavel Image Starter
spec:
    description: One-page text-to-image web app on the Kavel API, zero dependencies
    icon: https://www.kavel.ai/logo.png
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: Domain
          description: Which domain should the image generator use?
    tags:
        - AI
        - Tool
    readme: |-
        # Kavel Image Starter

        A one-page text-to-image web app: type a prompt, pick 1:1, 16:9 or 9:16, and get the picture back in about a minute. One Node file, no npm dependencies. Images come from the [Kavel](https://www.kavel.ai/?utm_source=zeabur&utm_medium=template) HTTP API.

        It runs with nothing configured on Kavel's free anonymous tier (watermarked, a couple of images a day per server IP). Set `KAVEL_API_KEY` to run on your own account; keys are created at [kavel.ai/settings/apikeys](https://www.kavel.ai/settings/apikeys?utm_source=zeabur&utm_medium=template).

        Want people shots with the whole figure in frame? Kavel's [full body AI generator](https://www.kavel.ai/image/ai-full-body-generator?utm_source=zeabur&utm_medium=template) is tuned for that. Source: [github.com/hanshs474/kavel-image-starter](https://github.com/hanshs474/kavel-image-starter).
    services:
        - name: kavel-image-starter
          icon: https://www.kavel.ai/logo.png
          template: PREBUILT
          spec:
            id: kavel-image-starter
            source:
                image: san8888/kavel-image-starter:1.0.0
            ports:
                - id: web
                  port: 3000
                  type: HTTP
            env:
                KAVEL_API_KEY:
                    default: ""
                KAVEL_MODEL:
                    default: kavel-image-v1
                PORT:
                    default: "3000"
          domainKey: PUBLIC_DOMAIN
