# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Hoodik
spec:
    description: A lightweight, secure, self-hosted cloud storage solution with end-to-end encryption.
    coverImage: https://github.com/hudikhq/hoodik/raw/master/screenshot.png
    icon: https://github.com/hudikhq/hoodik/raw/master/web/public/android-icon-192x192.png
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: Domain
          description: The domain you want to bind for your Hoodik instance.
        - key: DATABASE_URL
          type: STRING
          name: Database URL (Optional)
          description: PostgreSQL connection string (leave empty to use built-in Sqlite).
        - key: SMTP_ADDRESS
          type: STRING
          name: SMTP Address (Optional)
          description: (Optional) Your SMTP server address (e.g. smtp.gmail.com).
        - key: SMTP_USERNAME
          type: STRING
          name: SMTP Username (Optional)
          description: (Optional) The username for your SMTP server.
        - key: SMTP_PASSWORD
          type: STRING
          name: SMTP Password (Optional)
          description: (Optional) The password or app password for your SMTP server.
        - key: SMTP_PORT
          type: STRING
          name: SMTP Port (Optional)
          description: (Optional) Port of your SMTP server (e.g. 465).
        - key: SMTP_DEFAULT_FROM
          type: STRING
          name: Default Sender Email (Optional)
          description: (Optional) Default "From" email address (e.g. Hoodik <no-reply@mydomain.com>).
    tags:
        - Storage
        - Security
    readme: "# Hoodik\n**Hoodik** is a lightweight, secure, and self-hosted cloud storage solution written in Rust and Vue.  \n\n### Features\n- End-to-end encryption (RSA 2048 + AES Ascon-128a)\n- Keys encrypted with your passphrase\n- Encrypted search (no plaintext metadata stored)\n- Public link sharing with wrapped AES keys\n- Chunked file storage for fast parallel upload/download\n\n### Database Warning\n- Default database: **SQLite** (stored in `/data`)\n- Can switch to **Postgres** via `DATABASE_URL`\n- ⚠️ Databases are **NOT interchangeable**  \n  Changing from SQLite → Postgres (or vice versa) after usage will cause **data loss**"
    services:
        - name: hoodik
          icon: https://github.com/hudikhq/hoodik/raw/master/web/public/android-icon-192x192.png
          template: PREBUILT
          spec:
            id: hoodik
            source:
                image: hudik/hoodik:latest
            ports:
                - id: web
                  port: 5443
                  type: HTTP
            volumes:
                - id: data
                  dir: /data
            env:
                APP_URL:
                    default: https://${PUBLIC_DOMAIN}.zeabur.app
                DATA_DIR:
                    default: /data
                DATABASE_URL:
                    default: ""
                SMTP_ADDRESS:
                    default: ""
                SMTP_DEFAULT_FROM:
                    default: ""
                SMTP_PASSWORD:
                    default: ""
                SMTP_PORT:
                    default: ""
                SMTP_USERNAME:
                    default: ""
                SSL_DISABLED:
                    default: "true"
          domainKey: PUBLIC_DOMAIN
localization:
    zh-TW:
        description: 輕量級、自架、具端到端加密的雲端檔案儲存解決方案。
        variables:
            - key: PUBLIC_DOMAIN
              type: DOMAIN
              name: 網域
              description: 你想要綁定 Hoodik 的網域（會變成 https://xxx.zeabur.app）。
            - key: DATABASE_URL
              type: STRING
              name: 資料庫 URL（選填）
              description: PostgreSQL 連線字串（留空使用內建 Sqlite）。
            - key: SMTP_ADDRESS
              type: STRING
              name: SMTP 位址（選填）
              description: （選填）你的郵件伺服器位址（例如：smtp.gmail.com）。
            - key: SMTP_USERNAME
              type: STRING
              name: SMTP 帳號（選填）
              description: （選填）郵件伺服器帳號。
            - key: SMTP_PASSWORD
              type: STRING
              name: SMTP 密碼（選填）
              description: （選填）郵件伺服器的密碼或 App Password。
            - key: SMTP_PORT
              type: STRING
              name: SMTP Port（選填）
              description: （選填）郵件伺服器 Port（例如：465）。
            - key: SMTP_DEFAULT_FROM
              type: STRING
              name: 預設寄件人（選填）
              description: （選填）預設寄件者位址（例如：Hoodik <no-reply@mydomain.com>）。
        readme: "# Hoodik\n**Hoodik** 是一個輕量級、安全、自架的雲端檔案儲存解決方案，使用 **Rust** 與 **Vue** 開發。  \n\n### 功能特色\n- 端到端加密（RSA 2048 + AES Ascon-128a）\n- 使用者金鑰以密碼加密保存\n- 支援加密搜尋（不儲存明文中繼資料）\n- 可建立具 AES 金鑰封裝的公開分享連結\n- 檔案以區塊方式加密儲存，提升上傳/下載效能\n\n### 資料庫警告\n- 預設資料庫：**SQLite**（存放於 `/data`）\n- 可透過 `DATABASE_URL` 切換至 **Postgres**\n- ⚠️ **不同資料庫無法互通**  \n  使用一段時間後切換 SQLite ↔ Postgres 會導致 **資料遺失**"
