# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Miniflux for Fluent Reader
spec:
    description: RSS backend server (Miniflux + PostgreSQL) for Fluent Reader sync.
    icon: https://miniflux.app/favicon.ico
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: Domain
          description: Public domain for Miniflux (generate a zeabur.app domain or bind your custom domain).
    tags:
        - RSS
        - Reader
        - Sync
    readme: |-
        # Miniflux for Fluent Reader (Zeabur)
        This template deploys PostgreSQL + Miniflux.

        ## Fluent Reader (Fever API)
        Settings -> Service -> Fever API
        - Endpoint: https://<your-domain>/fever/
        - Username/Password: set in Miniflux web UI (Settings -> Integrations -> Fever API)
    services:
        - name: PostgreSQL
          icon: https://raw.githubusercontent.com/zeabur/service-icons/main/marketplace/postgresql.svg
          template: PREBUILT
          spec:
            id: postgresql
            source:
                image: postgres:18-alpine
            ports:
                - id: database
                  port: 5432
                  type: TCP
            volumes:
                - id: data
                  dir: /var/lib/postgresql/data
            instructions:
                - title: PostgreSQL password
                  content: ${POSTGRES_PASSWORD}
                - title: PostgreSQL connection string (internal)
                  content: ${POSTGRES_URL}
            env:
                PGDATA:
                    default: /var/lib/postgresql/data
                POSTGRES_DB:
                    default: miniflux
                    expose: true
                POSTGRES_HOST:
                    default: ${CONTAINER_HOSTNAME}
                    expose: true
                POSTGRES_PASSWORD:
                    default: ${PASSWORD}
                    expose: true
                POSTGRES_PORT:
                    default: ${DATABASE_PORT}
                    expose: true
                POSTGRES_URL:
                    default: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}?sslmode=disable
                    expose: true
                POSTGRES_USER:
                    default: miniflux
                    expose: true
        - name: Miniflux
          icon: https://miniflux.app/favicon.ico
          dependencies:
            - PostgreSQL
          template: PREBUILT
          spec:
            id: miniflux
            source:
                image: miniflux/miniflux:latest
            ports:
                - id: web
                  port: 8080
                  type: HTTP
            instructions:
                - title: Miniflux URL
                  content: ${ZEABUR_WEB_URL}
                - title: Fluent Reader - Fever API endpoint
                  content: ${ZEABUR_WEB_URL}/fever/
                - title: Enable Fever API
                  content: In Miniflux, go to Settings -> Integrations and set Fever API username/password.
                - title: Admin username
                  content: ${ADMIN_USERNAME}
                - title: Admin password
                  content: ${ADMIN_PASSWORD}
            env:
                ADMIN_PASSWORD:
                    default: ${PASSWORD}
                    expose: true
                ADMIN_USERNAME:
                    default: admin
                    expose: true
                BASE_URL:
                    default: ${ZEABUR_WEB_URL}
                CREATE_ADMIN:
                    default: "1"
                DATABASE_URL:
                    default: ${POSTGRES_URL}
                POLLING_LIMIT_PER_HOST:
                    default: "1"
                RUN_MIGRATIONS:
                    default: "1"
                WORKER_POOL_SIZE:
                    default: "4"
          domainKey: PUBLIC_DOMAIN
