Skip to content

自部署 ​

你可以将 Nya AI 部署到自己的服务器上,以完全控制你的数据和开销。

建议使用 Docker Compose 部署,compose 文件可参考 docker-compose.example.yml

架构概览 ​

核心组件:

  • db:使用带 zhparser 拓展的 Postgres 18 作为数据库
  • server: Nya AI 的 API 后端,整个架构的中心,基于 bun
  • web: 提供前端的静态资源以及反向代理,基于 caddy
  • zero-cache: 同步引擎,处理客户端的数据查询和变更请求

其他依赖:

  • S3 对象储存:可使用 S3 兼容的对象储存服务
  • SearXNG:用于网络搜索功能的元搜索引擎。SearXNG 实例需允许 JSON 格式的搜索请求

环境变量 ​

这里主要讲 nyaai-server 的环境变量:

变量名是否必填描述
SITE_NAME是站点名称
FRONT_URL是用户前端的公开 URL(例如 https://example.com)
ADMIN_URL是管理面板的公开 URL(例如 https://admin.example.com)
BETTER_AUTH_SECRET是Better Auth 加密密钥。请使用长随机字符串
DATABASE_URL是PostgreSQL 连接字符串
S3_ACCESS_KEY_ID是S3 兼容存储的密钥 ID
S3_SECRET_ACCESS_KEY是S3 兼容存储的密钥值
S3_ENDPOINT是S3 兼容储存的端点,例如 s3.<region>.backblazeb2.com
S3_BUCKET是S3 兼容储存桶的名称
SEARXNG_URL是用于网络搜索的 SearXNG 实例 URL
OPENAI_BASE_URL否OpenAI 兼容的服务商的 Base URL,如果要配置平台模型则需要填写
OPENAI_API_KEY否OpenAI 兼容的服务商的 API Key
SMTP_USER, SMTP_PASSWORD, SMTP_HOST, SMTP_FROM, SMTP_PORT, SMTP_SECURE否SMTP 相关变量,如果需要发送验证邮件、重置密码邮件则需要填写
REQUIRE_EMAIL_VERIFICATION否如果要强制验证电子邮箱地址,则设为 true
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET否Google OAuth 相关变量,如果需要 Google OAuth 登录则需要填写
GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET否GitHub OAuth 相关变量,如果需要 GitHub OAuth 登录则需要填写
STRIPE_SECRET_KEY否Stripe API 密钥,如果需要使用 Stripe 收款则需要填写
STRIPE_WEBHOOK_SECRET否Stripe Webhook 密钥,如果需要使用 Stripe 收款则需要填写

启动 ​

配置好 docker-compose.yaml 和环境变量后,运行 docker compose up -d 启动服务。

Nya AI 对外暴露两个端口:

  • web 的 8080: 用户前端界面
  • web 的 8081: 后台管理界面

第一个登录后台管理页面的用户会自动获得管理员身份。为了安全,建议不要将后台管理端口暴露至公网。