【免费下载链接】rustrak
Ultra-lightweight error tracking server compatible with Sentry SDKs
Rustrak 是一款超轻量级、自托管的错误追踪(Error Tracking)服务端,完整兼容 Sentry 协议——错误、日志、性能事务、发布健康度与 AI Agent 追踪它一网打尽。得益于默认 SQLite 的单容器设计,用 Docker Compose 几条命令即可在 10 分钟内跑起一套属于自己的错误追踪服务,本文带你完整走完Rustrak Docker 部署全流程。
💡 为什么选择 Rustrak 做自托管错误追踪?
| 优势 | 说明 |
|---|---|
| 📡 兼容 Sentry 协议 | 已有的 Sentry SDK 只需把 DSN 改成 Rustrak 地址,零代码改造 |
| 🪶 极致轻量 | 镜像约 20 MB,空闲内存低于 100 MB,512 MB 的 VPS 就能跑 |
| 📦 零外部依赖 | 默认 SQLite,无需单独部署数据库,一个容器同时提供 API 与仪表盘 |
| 💰 完全免费 | 无按事件计费、无座位数、无数据量上限,数据留在自己的服务器上 |
整体架构一目了然:
你的应用 → Sentry SDK → Rustrak(API + 仪表盘,端口 8080)→ SQLite / PostgreSQL🛠️ 部署前准备:只需一个前置条件
一台安装了Docker和Docker Compose的服务器(或本地机器)即可。无需数据库、无需消息队列、无需任何中间件。
仓库根目录自带开箱即用的编排文件 docker-compose.yml,核心内容只有几行:
services: server: image: rustrak/rustrak-server:latest ports: - "8080:8080" environment: - SESSION_SECRET_KEY=${SESSION_SECRET_KEY} - CREATE_SUPERUSER=${CREATE_SUPERUSER} volumes: - rustrak_data:/data restart: unless-stopped volumes: rustrak_data:三个必须了解的关键变量(完整清单见 apps/docs/content/configuration/environment.mdx):
| 变量 | 作用 | 示例 |
|---|---|---|
SESSION_SECRET_KEY | 会话 Cookie 签名密钥,必须固定,否则重启后全员掉线 | openssl rand -hex 32生成 |
CREATE_SUPERUSER | 首个管理员账号,格式email:password | admin@example.com:changeme123 |
PUBLIC_URL | 写入每个 DSN 的对外访问地址,不设置会导致 DSN 出现0.0.0.0 | http://localhost:8080 |
🚀 最快部署方法:Docker Compose 三步启动
第 1 步:生成密钥并导出环境变量
export SESSION_SECRET_KEY=$(openssl rand -hex 32) export CREATE_SUPERUSER=admin@example.com:changeme123 export PUBLIC_URL=http://localhost:8080第 2 步:一条命令启动
docker compose up -d第 3 步:打开仪表盘
浏览器访问http://localhost:8080(登录页在/login),用CREATE_SUPERUSER里的邮箱密码登录。一个容器同时响应 API 和 Web 界面,没有第二个端口要记。
⚡
CREATE_SUPERUSER只在数据库中还没有任何用户时生效,之后修改它不会改变密码。
🐳 备选方案:不用 Compose,单条 docker run 命令
更喜欢docker run的话,官方安装指南 apps/docs/content/getting-started/installation.mdx 给出了等价写法:
docker run -d \ --name rustrak \ -p 8080:8080 \ -v rustrak_data:/data \ -e SESSION_SECRET_KEY=$(openssl rand -hex 32) \ -e CREATE_SUPERUSER=admin@example.com:changeme123 \ -e PUBLIC_URL=http://localhost:8080 \ rustrak/rustrak-server:latest注意-v rustrak_data:/data这个命名卷:SQLite 数据库和上传的 source map 都存在这里,保住它,数据就能跨重启和版本升级存活。
🔌 接入 Sentry SDK:只改一行 DSN
登录仪表盘后:点击New Project创建项目 → 复制生成的 DSN(形如http://a1b2c3d4@localhost:8080/1)→ 在你的应用里初始化 SDK:
# Python import sentry_sdk sentry_sdk.init(dsn="http://<key>@localhost:8080/<project_id>")// JavaScript Sentry.init({ dsn: "http://<key>@localhost:8080/<project_id>" });任何语言的 Sentry SDK(Go、Rust、Java……)都适用。发一条测试事件:
sentry_sdk.capture_message("Hello from Rustrak!")回到仪表盘,你的项目下就会出现第一条 Issue 🎉
🗄️ 数据库怎么选:SQLite 还是 PostgreSQL?
两个镜像变体都自带仪表盘,区别只在存储层:
| 镜像标签 | 后端 | 适用场景 |
|---|---|---|
rustrak/rustrak-server:latest | SQLite | 个人项目、小团队,约每小时 1000 事件以内 |
rustrak/rustrak-server:postgres | PostgreSQL | 生产环境、高吞吐、并发写入 |
事件量上来后,仓库同样提供了现成的 docker-compose.postgres.yml——它把:postgres镜像与一个postgres:16-alpine服务编排在一起,并带健康检查:
echo "POSTGRES_PASSWORD=$(openssl rand -hex 16)" >> .env docker compose -f docker-compose.postgres.yml up -d已有自己的 PostgreSQL?删掉其中的postgres服务,把DATABASE_URL指向现有实例即可(docker-compose.postgres.yml 中的连接串就是格式示例)。
🏭 生产部署关键点(上线前 3 件事)
- 配置反向代理 + HTTPS:把容器放进代理网络、删掉
ports块,让 nginx/Caddy/Traefik 直达8080,并设置SSL_PROXY=true启用安全 Cookie。因为仪表盘和 API 同属一个容器,只需配置一个上游,路由非常省心。 PUBLIC_URL设为公网域名(如https://rustrak.example.com):它是写进每个 DSN 和告警链接里的地址,SDK 必须能从外部访问到。- 备份
/data卷:SQLite 模式下数据库位于/data/rustrak.db、source map 在/data/sourcemaps,最简单的方式是停服后整卷打包;PostgreSQL 模式则记得 source map 仍在/data卷里,别漏备。
完整的生产检查清单见 apps/docs/content/configuration/production.mdx。
❓ 常见问题排查
| 现象 | 原因与解法 |
|---|---|
DSN 里是http://0.0.0.0:8080/... | 未设置PUBLIC_URL,SDK 无法访问绑定地址,补上即可 |
| 容器重启后所有人都被登出 | SESSION_SECRET_KEY变了,请固定同一个值 |
| 仪表盘打不开 | 检查 8080 端口是否被占用,docker logs看启动日志;健康检查可用GET /health |
| 想只留 API 不要界面 | 设置RUSTRAK_DASHBOARD=off,服务将只响应 API |
📌 小结
回到开头:10 分钟这个数字不是营销话术——生成密钥、docker compose up -d、登录、建项目、改一行 DSN,全程不到十分钟。Rustrak 用 20 MB 的镜像和不到 100 MB 的内存,把「Sentry 级」的错误追踪能力装进了你自己的服务器:错误分组、source map 反解、性能分析、发布健康、告警推送一应俱全,且数据永远属于你。
镜像采用 distroless 最小运行时构建(见 apps/server/Dockerfile),攻击面小,适合长期常驻;配合
restart: unless-stopped即可安心交给运维。
【免费下载链接】rustrak
Ultra-lightweight error tracking server compatible with Sentry SDKs
相关推荐
如何快速搭建KIMI AI免费API服务:5分钟Docker部署教程
如何快速搭建KIMI AI免费API服务:5分钟Docker部署教程 KIMI AI免费API服务是一个强大的开源项目,让你能够快速搭建与月之暗面KIMI AI
AI 应用后端如何快速搭建Dendrite:10分钟完成Matrix服务器部署
如何快速搭建Dendrite:10分钟完成Matrix服务器部署 Dendrite是一个用Go语言编写的第二代Matrix家庭服务器实现,提供了高性能、可扩展的
后端即时通讯PairDrop Docker完整部署教程:5分钟搭建高效文件共享服务
PairDrop Docker完整部署教程:5分钟搭建高效文件共享服务 想要在局域网内实现跨平台文件共享?PairDrop就是你的最佳选择!这款基于WebRTC
后端前端WebSocket
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考