# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: OpenStock
spec:
    description: 開源股票市場追蹤應用 - 追蹤即時價格、設定個人化提醒，並探索詳細的公司洞察
    coverImage: https://raw.githubusercontent.com/Open-Dev-Society/OpenStock/main/public/assets/images/dashboard.png
    icon: https://raw.githubusercontent.com/Open-Dev-Society/OpenStock/main/public/assets/images/logo.svg
    variables:
        - key: BETTER_AUTH_SECRET
          type: STRING
          name: Better Auth 密鑰
          description: Better Auth 加密密鑰（至少 32 字元的隨機字串）
        - key: FINNHUB_API_KEY
          type: STRING
          name: Finnhub API 金鑰
          description: Finnhub API 金鑰（從 https://finnhub.io/ 獲取）
        - key: GEMINI_API_KEY
          type: STRING
          name: Gemini API 金鑰
          description: Google Gemini API 金鑰（用於 AI 功能，可選）
        - key: INNGEST_SIGNING_KEY
          type: STRING
          name: Inngest 簽名金鑰
          description: Inngest 簽名金鑰（從 https://app.inngest.com/env/settings/keys 獲取）
        - key: NODEMAILER_EMAIL
          type: STRING
          name: 郵件地址
          description: Gmail 電子郵件地址（用於發送通知郵件）
        - key: NODEMAILER_PASSWORD
          type: STRING
          name: 郵件密碼
          description: Gmail 應用程式密碼（如有 2FA，請使用應用程式密碼）
        - key: APP_DOMAIN
          type: DOMAIN
          name: 應用程式域名
          description: 應用程式的公開訪問域名
    tags:
        - Stock Market
        - Finance
        - Next.js
        - MongoDB
        - Open Source
    readme: "# OpenStock - 開源股票市場應用\n\nOpenStock 是昂貴市場平台的開源替代方案。追蹤即時價格、設定個人化提醒，並探索詳細的公司洞察——以開放方式建立，為所有人服務，永遠免費。\n\n## 功能特色\n\n- \U0001F510 **身份驗證** - Better Auth + MongoDB 電子郵件/密碼認證\n- \U0001F50D **全域搜索** - Command + K 快速股票搜索\n- \U0001F4CA **即時數據** - TradingView 整合的圖表和市場數據\n- \U0001F4C8 **觀察清單** - 個人化股票追蹤\n- \U0001F4E7 **智能通知** - AI 個性化郵件和每日新聞摘要\n- \U0001F3A8 **精美 UI** - shadcn/ui + Tailwind CSS v4\n\n## 技術棧\n\n- Next.js 15 (App Router) + React 19\n- TypeScript + Tailwind CSS v4\n- MongoDB + Mongoose\n- Better Auth (身份驗證)\n- Finnhub API (市場數據)\n- TradingView (圖表小工具)\n- Inngest (自動化和 AI)\n- Nodemailer (電子郵件)\n\n## 部署後配置\n\n1. **獲取 API 金鑰**：\n   - [Finnhub API](https://finnhub.io/) - 股票市場數據（免費方案可用）\n   - [Google Gemini](https://aistudio.google.com/) - AI 功能（可選）\n   - [Inngest](https://www.inngest.com/) - 工作流程和排程\n\n2. **電子郵件配置**：\n   - 使用 Gmail 應用程式密碼或配置您的 SMTP 提供商\n\n3. **訪問應用程式**：\n   - 使用 Zeabur 提供的域名訪問您的應用\n   - 註冊帳號開始追蹤股票\n\n## 授權\n\nAGPL-3.0 - 以開放方式建立，為所有人服務，永遠免費\n\n© Open Dev Society\n"
    services:
        - name: MongoDB
          icon: https://raw.githubusercontent.com/zeabur/service-icons/main/marketplace/mongodb.svg
          template: PREBUILT
          spec:
            source:
                image: mongo:7
            ports:
                - id: database
                  port: 27017
                  type: TCP
            volumes:
                - id: data
                  dir: /data/db
            instructions:
                - title: MongoDB 連接資訊
                  content: |
                    **連接字串**：`mongodb://root:${PASSWORD}@${MONGODB_HOST}:${MONGODB_PORT}/openstock?authSource=admin`

                    **內部主機**：`${MONGODB_HOST}`
                    **端口**：`${MONGODB_PORT}`
                    **使用者名稱**：`root`
                    **密碼**：`${PASSWORD}`
                    **資料庫**：`openstock`
            env:
                MONGO_INITDB_ROOT_PASSWORD:
                    default: ${PASSWORD}
                MONGO_INITDB_ROOT_USERNAME:
                    default: root
            configs:
                - path: /docker-entrypoint-initdb.d/init.js
                  template: |
                    db = db.getSiblingDB('openstock');
                    db.createCollection('users');
                    db.createCollection('watchlists');
                  permission: null
                  envsubst: null
        - name: OpenStock
          icon: https://raw.githubusercontent.com/Open-Dev-Society/OpenStock/main/public/assets/images/logo.svg
          template: GIT
          spec:
            source:
                source: GITHUB
                repo: 1065936302
                branch: main
            ports:
                - id: web
                  port: 3000
                  type: HTTP
            instructions:
                - title: 應用程式訪問
                  content: |
                    **應用程式 URL**：`https://${APP_DOMAIN}`

                    請註冊一個新帳號開始使用 OpenStock！
                - title: 必需的 API 金鑰
                  content: |
                    請確保您已設定以下 API 金鑰：

                    1. **Finnhub API** (必需)：https://finnhub.io/
                    2. **Inngest** (用於自動化)：https://www.inngest.com/
                    3. **Gemini API** (可選，用於 AI 功能)：https://aistudio.google.com/

                    配置 Gmail 應用程式密碼以啟用電子郵件通知功能。
            env:
                BETTER_AUTH_SECRET:
                    default: ${BETTER_AUTH_SECRET}
                    expose: true
                BETTER_AUTH_URL:
                    default: https://${APP_DOMAIN}
                FINNHUB_BASE_URL:
                    default: https://finnhub.io/api/v1
                GEMINI_API_KEY:
                    default: ${GEMINI_API_KEY}
                INNGEST_SIGNING_KEY:
                    default: ${INNGEST_SIGNING_KEY}
                MONGODB_URI:
                    default: mongodb://root:${MONGODB_PASSWORD}@${MONGODB_HOST}:${MONGODB_PORT}/openstock?authSource=admin
                NEXT_PUBLIC_FINNHUB_API_KEY:
                    default: ${FINNHUB_API_KEY}
                    expose: true
                NODE_ENV:
                    default: production
                NODEMAILER_EMAIL:
                    default: ${NODEMAILER_EMAIL}
                NODEMAILER_PASSWORD:
                    default: ${NODEMAILER_PASSWORD}
localization:
    en:
        description: Open-source stock market tracking app - Track real-time prices, set personalized alerts, and explore detailed company insights
    zh-CN:
        description: 开源股票市场追踪应用 - 追踪实时价格、设定个性化提醒，并探索详细的公司洞察
