mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-03 01:40:21 +08:00
f817f856c86f94db8b7bf9703629f5f0e6a46cc2
The ON CONFLICT update guard for provider_id, provider_endpoint_id, and provider_api_key_id previously required billing_status = 'pending'. Once a usage row left pending state with these fields still NULL, subsequent upserts could never fill them. Add an OR IS NULL clause so missing provider links are always recoverable regardless of billing status.
Aether
一站式 AI 基础设施平台
支持 Claude / OpenAI / Gemini 及其 CLI 客户端的统一接入、格式转换、正/反向代理, 致力于成为用户驱动AI服务的底座
简介
Aether 是一个自托管的 AI API 网关,为团队和个人提供多租户管理、智能负载均衡、成本配额控制和健康监控能力。通过统一的 API 入口,可以无缝对接 Claude、OpenAI、Gemini 等主流 AI 服务及其 CLI 工具。
页面预览: https://fawney19.github.io/Aether/
部署
Docker Compose(推荐:预构建镜像)
# 1. 克隆代码
git clone https://github.com/fawney19/Aether.git
cd Aether
# 2. 配置环境变量
cp .env.example .env
# 生成 JWT_SECRET_KEY / ENCRYPTION_KEY, 并填入 .env
./generate_keys.sh
# 编辑 .env 设置 ADMIN_PASSWORD
# 3. 首次部署 / 更新 (从以下数据库、内存策略任选其一)
# Postgres + Redis (适用于企业或多人使用)
docker compose pull && docker compose up -d
# 仅SQLite (适用于个人用户或朋友分享)
docker compose -f docker-compose.sqlite.yml pull && docker compose -f docker-compose.sqlite.yml up -d
一键安装(可选部署方式 Linux: systemd; Mac: launchd)
cd Aether && cd Aether
curl -fsSL https://raw.githubusercontent.com/fawney19/Aether/main/install.sh | sudo bash
本地开发
依赖 Docker、Rust toolchain、Node.js 和 make。
make dev
make dev 会同时启动后端 aether-gateway 和前端 frontend 的 Vite dev server。需要单独启动时可使用 make dev-backend 或 make dev-frontend。
Postgres / Redis 本地依赖未就绪时,make dev 会自动执行 docker compose up -d postgres redis。
Aether Proxy (可选)
Aether Proxy 是配套的正向代理节点,部署在海外 VPS 上,为墙内的 Aether 实例中转 API 流量。
- Docker Compose 部署或下载预编译二进制直接运行
- 提供 macOS/Linux 与 Windows 一键脚本,自动下载最新
proxy-v*制品并向现有aether-proxy.toml追加[[servers]] - 通过
aether-proxy setup完成交互式配置,自动注册为系统服务 - 详细文档见 apps/aether-proxy/README.md
API 文档
- Embeddings: OpenAI compatible
POST /v1/embeddings - Rerank: OpenAI/Jina compatible
POST /v1/rerank
环境变量
APP_PORT:aether-gateway唯一监听端口,固定绑定0.0.0.0:${APP_PORT}DATABASE_URL:数据库连接串;SQLite 例如sqlite:///opt/aether/data/aether.db,Postgres 例如postgresql://postgres:aether@postgres:5432/aetherREDIS_URL:Redis 连接串;仅 Postgres + Redis 的 Docker Compose 部署需要配置AETHER_RUNTIME_BACKEND=memory|redis:运行时缓存/协调后端。SQLite 默认用memory,不会连接 RedisAETHER_GATEWAY_AUTO_PREPARE_DATABASE:常规启动前自动执行挂起的 schema migration 和 backfill;仓库自带的docker-compose.yml默认开启JWT_SECRET_KEY/ENCRYPTION_KEY:认证和敏感数据加密所需密钥API_KEY_PREFIX:用户和管理员新建 API Key 时使用的前缀,默认skADMIN_USERNAME/ADMIN_PASSWORD/ADMIN_EMAIL:首次启动时自举首个本地管理员;install.sh会提示输入管理员密码CORS_ORIGINS/CORS_ALLOW_CREDENTIALS:前端跨域来源控制;如果要跨域带登录 Cookie,CORS_ORIGINS不能写*RUST_LOG:Rust 日志过滤,例如aether_gateway=info、aether_gateway=debug,sqlx=warn- Docker Compose 的
DB_PASSWORD/REDIS_PASSWORD默认使用aether
许可证
本项目采用 Aether 非商业开源许可证。允许个人学习、教育研究、非盈利组织及企业内部非盈利性质的使用;禁止用于盈利目的。商业使用请联系获取商业许可。
联系作者
Star History
Description
Languages
Python
68.3%
Vue
21.7%
TypeScript
7.3%
Rust
2%
CSS
0.3%
Other
0.2%

