用Docker快速部署开源AI成本分析工具Lunary

前言

很多团队在接入大语言模型API后,每个月的账单像一笔糊涂账。AI成本分析工具能帮你按用户、按项目、按模型精确拆分调用费用。
Lunary 是一款专门针对 LLM 应用的开源可观测性平台,支持实时跟踪 Token 消耗和花费。
今天我就带你从零开始,用 Docker 在服务器上把它跑起来。

准备工作

你需要一台 Linux 服务器(Ubuntu 22.04 或 CentOS 7+ 均可),最低配置 1 核 2G 内存、20GB 磁盘。
本机或云服务器都行,但要求能访问 Docker 官方仓库(国内可配置镜像源)。

安装 Docker 和 Compose

# 更新包管理器(Ubuntu 为例)
sudo apt update && sudo apt upgrade -y
# 安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 安装 Docker Compose(独立版本)
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker --version && docker-compose --version

四步部署 Lunary

1. 创建项目目录

mkdir ~/lunary && cd ~/lunary

2. 编写 Compose 文件

创建 docker-compose.yml,写入以下内容(注意替换数据库密码):

version: '3.8'
services:
  postgres:
    image: postgres:15
    environment:
      POSTGRES_DB: lunary
      POSTGRES_USER: lunary
      POSTGRES_PASSWORD: your_secure_password
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: always

  app:
    image: lunaryapp/lunary:latest
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgresql://lunary:your_secure_password@postgres:5432/lunary
      NEXTAUTH_SECRET: your_random_secret_key
      NEXTAUTH_URL: http://你的服务器IP:3000
    depends_on:
      - postgres
    restart: always

volumes:
  pgdata:
NEXTAUTH_SECRET 可以用 openssl rand -base64 32 生成一串随机密钥。NEXTAUTH_URL 替换为你的实际服务器 IP 或域名。

3. 启动服务

docker-compose up -d

首次启动会自动拉取镜像并创建数据库表,大约需要 1-2 分钟。
你可以用 docker-compose logs -f app 实时查看启动日志。

4. 初始化管理员账户

服务启动后,在浏览器访问 http://服务器IP:3000,注册第一个账号,该账号自动成为管理员。
登录后你会看到一个空仪表盘,至此部署完成。

避坑指南

端口冲突

如果服务器 3000 端口已被占用,在 Compose 文件的 ports 中改为 4000:3000,然后访问 4000 端口即可。
同时记得更新 NEXTAUTH_URL 中的端口。

数据库持久化

务必用 volumes 把 PostgreSQL 数据挂载出来,否则容器删除后所有配置和日志都丢失。
上面示例已挂载到 pgdata

密钥安全性

NEXTAUTH_SECRET 和数据库密码不要使用弱密码或默认值,建议用随机字符串。
生产环境下最好通过 .env 文件或 Docker Secrets 管理。

更新版本

Lunary 迭代较快,执行以下命令更新到最新版:

cd ~/lunary
docker-compose pull app
docker-compose up -d --force-recreate app

效果验证

确认服务正常运行

docker-compose ps

两个容器状态都是 Up,且 app 容器的端口映射显示 0.0.0.0:3000->3000/tcp

接入真实数据测试

Lunary 使用 SDK 接入你的 AI 应用。
以 Python 为例,在项目中安装:

pip install lunary

然后用你的管理员 API Key(在后台设置页面生成)初始化客户端,发起一次 OpenAI 调用。
几秒后返回 Lunary 仪表盘,就能看到请求数、Token 消耗和预估费用。
如果数据未出现,检查日志有无 Connection refused 错误,并确认 DATABASE_URL 配置正确。

常见问题

Q: 部署后访问页面一直转圈?

A: 一般是数据库未就绪或密钥无效。
先看 docker-compose logs app 中是否有 Can't reach database 提示,确认后检查 PostgreSQL 容器是否正常启动(docker-compose logs postgres)。

Q: 能否集成多个AI供应商?

A: Lunary 支持 OpenAI、Anthropic、Cohere 等主流模型,也兼容任何兼容 OpenAI 格式的 API。
只需在 SDK 中配置对应 provider 即可。

Q: 免费版有功能限制吗?

A: Lunary 开源版完全免费,无限制。
如果需要团队协作、SSO 等高级功能,官方有付费云版。

总结

以上就是在服务器上部署 AI 成本分析工具 Lunary 的完整步骤。
用它你可以直观看到每个请求花了多少钱,快速定位费用异常。
关键点在于密钥安全、数据持久化和端口映射。
如果你在部署中遇到其他报错,欢迎对照本文的避坑部分排查,或查看官方文档。

分享到:
上一篇
AI资源调度优化实战:用Volcano实现
下一篇
从零搭建AI算力监控平台:GPU资源可视化教程
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意