# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: New API
spec:
    description: 基于 One API 的二次开发版本，支持 Midjourney
    icon: https://i.imgur.com/3pRJ59s.png
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: Domain
          description: What is the domain of your New API?
    tags:
        - Tool
        - API
    readme: |-
        # New API

        本项目为开源项目，在One API的基础上进行二次开发，感谢原作者的无私奉献。 使用者必须在遵循 OpenAI 的使用条款以及法律法规的情况下使用，不得用于非法用途。


        ## 主要变更

        此分叉版本的主要变更如下：

        全新的UI界面（部分界面还待更新）

        添加Midjourney-Proxy(Plus)接口的支持，对接文档，支持的接口如下：

         /mj/submit/imagine
         /mj/submit/change
         /mj/submit/blend
         /mj/submit/describe
         /mj/image/{id} （通过此接口获取图片，请必须在系统设置中填写服务器地址！！）
         /mj/task/{id}/fetch （此接口返回的图片地址为经过One API转发的地址）
         /task/list-by-condition
         /mj/submit/action （仅midjourney-proxy-plus支持，下同）
         /mj/submit/modal
         /mj/submit/shorten
         /mj/task/{id}/image-seed
         /mj/insight-face/swap （InsightFace）
        支持在线充值功能，可在系统设置中设置，当前支持的支付接口：易支付
        支持用key查询使用额度:
        配合项目neko-api-key-tool可实现用key查询使用
        渠道显示已使用额度，支持指定组织访问
        分页支持选择每页显示数量
        兼容原版One API的数据库，可直接使用原版数据库（one-api.db）
        支持模型按次数收费，可在 系统设置-运营设置 中设置
        支持渠道加权随机
        数据看板
        可设置令牌能调用的模型
        支持Telegram授权登录。
        系统设置-配置登录注册-允许通过Telegram登录
        对@Botfather输入指令/setdomain
        选择你的bot，然后输入http(s)://你的网站地址/login
        Telegram Bot 名称是bot username 去掉@后的字符串
        模型支持

        此版本额外支持以下模型：

        第三方模型 gps （gpt-4-gizmo-*）
        智谱glm-4v，glm-4v识图
        Anthropic Claude 3 (claude-3-opus-20240229, claude-3-sonnet-20240229)
        Ollama，添加渠道时，密钥可以随便填写，默认的请求地址是http://localhost:11434，如果需要修改请在渠道中修改
        Midjourney-Proxy(Plus)接口，对接文档
        零一万物
        自定义渠道，支持填入完整调用地址
        您可以在渠道中添加自定义模型gpt-4-gizmo-*，此模型并非OpenAI官方模型，而是第三方模型，使用官方key无法调用。
    services:
        - name: MySQL
          icon: https://raw.githubusercontent.com/zeabur/service-icons/main/marketplace/mysql.svg
          template: PREBUILT
          spec:
            source:
                image: mysql:8.0.33
            ports:
                - id: database
                  port: 3306
                  type: TCP
            volumes:
                - id: data
                  dir: /var/lib/mysql
            instructions:
                - title: Command to connect to your MySQL
                  content: mysqlsh --sql --host=${PORT_FORWARDED_HOSTNAME} --port=${DATABASE_PORT_FORWARDED_PORT} --user=${MYSQL_USERNAME} --password=${MYSQL_PASSWORD} --schema=${MYSQL_DATABASE}
                - title: MySQL username
                  content: ${MYSQL_USERNAME}
                - title: MySQL password
                  content: ${MYSQL_PASSWORD}
                - title: MySQL database
                  content: ${MYSQL_DATABASE}
                - title: MySQL host
                  content: ${PORT_FORWARDED_HOSTNAME}
                - title: MySQL port
                  content: ${DATABASE_PORT_FORWARDED_PORT}
            env:
                MYSQL_DATABASE:
                    default: zeabur
                    expose: true
                MYSQL_HOST:
                    default: ${CONTAINER_HOSTNAME}
                    expose: true
                MYSQL_PASSWORD:
                    default: ${MYSQL_ROOT_PASSWORD}
                    expose: true
                MYSQL_PORT:
                    default: ${DATABASE_PORT}
                    expose: true
                MYSQL_ROOT_PASSWORD:
                    default: ${PASSWORD}
                MYSQL_USERNAME:
                    default: root
                    expose: true
            configs:
                - path: /etc/my.cnf
                  template: |
                    [mysqld]
                    default-authentication-plugin=mysql_native_password
                    skip-host-cache
                    skip-name-resolve
                    datadir=/var/lib/mysql
                    socket=/var/run/mysqld/mysqld.sock
                    secure-file-priv=/var/lib/mysql-files
                    user=mysql
                    max_allowed_packet=10M

                    pid-file=/var/run/mysqld/mysqld.pid
                    [client]
                    socket=/var/run/mysqld/mysqld.sock

                    !includedir /etc/mysql/conf.d/
                  permission: null
                  envsubst: null
        - name: New API
          icon: https://i.imgur.com/3pRJ59s.png
          template: PREBUILT
          spec:
            source:
                image: calciumion/new-api:latest
            ports:
                - id: web
                  port: 3000
                  type: HTTP
            env:
                SQL_DSN:
                    default: ${MYSQL_USERNAME}:${MYSQL_PASSWORD}@tcp(${MYSQL_HOST}:${MYSQL_PORT})/${MYSQL_DATABASE}
          domainKey: PUBLIC_DOMAIN
