TaxHacker:自托管 AI 会计应用完全指南
TaxHacker:自托管 AI 会计应用完全指南
§1 学习目标
完成本文档后,你将能够:
- ✅ 理解 TaxHacker 的定位与设计理念
- ✅ 掌握 TaxHacker 的核心功能与使用方法
- ✅ 部署和配置 TaxHacker 自托管实例
- ✅ 配置 AI 提供商(OpenAI/Gemini/Mistral)
- ✅ 自定义分类、项目和字段
- ✅ 导出税务报告和数据
- ✅ 进行本地开发
§2 项目概述
2.1 什么是 TaxHacker?
TaxHacker(GitHub 仓库)是一款自托管的 AI 会计应用,专为自由职业者、独立开发者(indie hackers)和小型企业设计,利用现代 AI 技术自动化费用和收入跟踪。
官方描述:
TaxHacker is a self-hosted accounting app designed for freelancers, indie hackers, and small businesses who want to save time and automate expense and income tracking using the power of modern AI.
2.2 核心数据
| 指标 | 数值 |
|---|---|
| Stars | 3.6k (3,599) |
| Forks | 580 |
| Watchers | 39 |
| 提交数 | 144 |
| Releases | 10 (latest: v0.6.1) |
| 贡献者 | 5 |
| 许可证 | MIT |
| 语言 | TypeScript 99.2% |
2.3 主要贡献者
| 贡献者 | 说明 |
|---|---|
| vas3k | 主开发者 |
| H1D | 贡献者 |
| danfimov | 贡献者 |
| mmplisskin | 贡献者 |
| dependabot[bot] | 自动化依赖更新 |
2.4 项目定位
TaxHacker 解决的核心问题:
| 问题 | TaxHacker 解决方案 |
|---|---|
| 手动录入繁琐 | AI 自动识别和提取文档数据 |
| 收据管理混乱 | 结构化数据库存储,分类整理 |
| 多货币计算复杂 | 自动历史汇率转换(包含加密货币) |
| 税务报告耗时 | 一键导出税务准备报告 |
| 数据隐私担忧 | 完全自托管,数据完全由你控制 |
§3 核心功能详解
3.1 AI 文档分析
功能:拍摄收据照片或上传发票 PDF,TaxHacker 自动识别、提取、分类和存储所有信息到结构化数据库。
能力:
| 能力 | 说明 |
|---|---|
| 上传整理 | 将多个文档存储在"未分类"中,直到准备好手动或 AI 处理 |
| AI 数据提取 | 自动提取日期、金额、 vendor、项目等关键信息 |
| 自动分类 | 根据内容自动将交易分类到相关类别 |
| 项目拆分 | 从发票中提取单个项目并拆分为独立交易 |
| 结构化存储 | 所有内容保存在有序数据库中便于过滤和检索 |
支持的 AI 提供商:
| 提供商 | 状态 |
|---|---|
| OpenAI | ✅ 支持 |
| Google Gemini | ✅ 支持 |
| Mistral | ✅ 支持 |
| 本地 LLM | 🔜 即将支持 |
支持的文档类型:
- 商店收据
- 餐厅账单
- 发票
- 银行对账单
- 信函
- 手写收据(任何语言、任何货币)
3.2 多货币支持
功能:自动检测文档中的货币并使用历史汇率转换为你的基础货币。
能力:
| 能力 | 说明 |
|---|---|
| 外币检测 | 自动识别任何文档中使用的货币 |
| 历史汇率 | 使用实际交易日期的汇率 |
| 全球覆盖 | 支持 170+ 世界货币 |
| 加密货币 | 支持 14 种流行加密货币(BTC, ETH, LTC, DOT 等) |
| 手动输入 | 当需要更多控制时可手动输入 |
支持的加密货币:
BTC, ETH, LTC, DOT, 以及其他 10 种主流加密货币。
3.3 可定制分类、项目和字段
功能:创建自定义字段、项目和类别以适应你的特定需求、行业标准或国家要求。
能力:
| 能力 | 说明 |
|---|---|
| 自定义类别和项目 | 创建自己的类别和项目以任何方便的方式对交易进行分组 |
| 自定义字段 | 创建无限数量的自定义字段以从发票中提取更多信息(如同在 Excel 中创建额外的列) |
| 全文搜索 | 在识别的文档实际内容中搜索 |
| 高级过滤 | 使用搜索和过滤选项精确找到所需内容 |
| AI 驱动提取 | 编写自己的提示词以从文档中提取任何自定义信息 |
| 批量操作 | 一次处理多个文档或交易 |
3.4 自定义 LLM 提示
功能:完全控制 TaxHacker AI 处理文档的方式。为字段、类别和项目编写自定义 AI 提示,或修改内置提示以匹配你的特定需求。
能力:
| 能力 | 说明 |
|---|---|
| 可定制系统提示 | 修改设置中的通用提示模板以适应你的业务 |
| 字段/项目特定提示 | 为行业特定文档创建自定义提取规则 |
| 完全控制 | 调整字段提取优先级和命名约定以匹配工作流程 |
| 行业优化 | 微调 AI 以理解你的特定类型业务文档 |
| 完全透明 | AI 提取过程的每个方面都在你的控制之下 |
TaxHacker 100% 可适应和调整以满足你的独特要求——无论是需要从文档中提取电子邮件、地址、项目代码还是任何其他自定义信息。
3.5 数据过滤和导出
功能:处理文档后,轻松以你需要的方式查看、过滤和导出完整的交易历史。
能力:
| 能力 | 说明 |
|---|---|
| 高级过滤 | 按日期范围、类别、项目、金额和任何自定义字段过滤 |
| 灵活导出 | 将过滤的交易导出为包含所有附加文档的 CSV |
| 税务准备报告 | 为会计或税务顾问生成综合报告 |
| 数据可移植性 | 下载完整数据存档以迁移到其他服务——你的数据永远属于你 |
3.6 自托管模式
功能:通过本地存储和自托管选项保持对财务数据的完全控制。TaxHacker 尊重你的隐私并让你完全拥有你的信息。
能力:
| 能力 | 说明 |
|---|---|
| 家庭服务器就绪 | 在你自己的基础设施上托管以获得最大隐私和控制 |
| Docker 原生 | 使用提供的 Docker 容器和 compose 文件简化设置 |
| 数据所有权 | 你的财务文档永远不会离开你的控制 |
| 无供应商锁定 | 导出所有内容并随时迁移 |
| 透明操作 | 完全访问源代码和完整的操作透明度 |
§4 部署与自托管
4.1 Docker 一键部署
curl -O https://raw.githubusercontent.com/vas3k/TaxHacker/main/docker-compose.yml
docker compose upDocker Compose 包含:
- TaxHacker 应用容器
- PostgreSQL 17 数据库(或连接到现有数据库)
- 启动时自动数据库迁移
- 持久数据存储的卷挂载
- 生产就绪配置
4.2 环境变量配置
| 变量 | 必需 | 描述 | 示例 |
|---|---|---|---|
| UPLOAD_PATH | 是 | 文件上传和存储的本地目录 | ./data/uploads |
| DATABASE_URL | 是 | PostgreSQL 连接字符串 | postgresql://user@localhost:5432/taxhacker |
| PORT | 否 | 应用运行的端口 | 7331 (默认) |
| BASE_URL | 否 | 应用的基础 URL | http://localhost:7331 |
| SELF_HOSTED_MODE | 否 | 设为"true"启用自托管模式 | true |
| DISABLE_SIGNUP | 否 | 禁用新用户注册 | false |
| BETTER_AUTH_SECRET | 是 | 认证密钥(最少 16 字符) | your-secure-random-key |
4.3 LLM 提供商配置
OpenAI:
OPENAI_MODEL_NAME=gpt-4
OPENAI_API_KEY=your-api-keyGoogle Gemini:
GOOGLE_MODEL_NAME=gemini-pro
GOOGLE_API_KEY=your-api-keyMistral:
MISTRAL_MODEL_NAME=mistral-large
MISTRAL_API_KEY=your-api-key4.4 自定义 Docker 配置
services:
app:
image: ghcr.io/vas3k/taxhacker:latest
ports:
- "7331:7331"
environment:
- SELF_HOSTED_MODE=true
- UPLOAD_PATH=/app/data/uploads
- DATABASE_URL=postgresql://postgres:postgres@localhost:5432/taxhacker
volumes:
- ./data:/app/data
restart: unless-stopped§5 本地开发
5.1 技术栈
| 技术 | 说明 |
|---|---|
| Next.js 15+ | 前端和 API |
| Prisma | 数据库模型和迁移 |
| PostgreSQL | 数据库(推荐 PostgreSQL 17+) |
| Ghostscript | PDF 处理 |
| GraphicsMagick | 图像处理 |
5.2 开发环境设置
# 克隆仓库
git clone https://github.com/vas3k/TaxHacker.git
cd TaxHacker
# 安装依赖
npm install
# 设置环境变量
cp .env.example .env
# 编辑 .env 配置
# 确保设置 DATABASE_URL 为 PostgreSQL 连接字符串
# 示例: postgresql://user@localhost:5432/taxhacker
# 初始化数据库
npx prisma generate && npx prisma migrate dev
# 启动开发服务器
npm run dev访问 http://localhost:7331 查看本地 TaxHacker 实例。
5.3 生产构建
# 构建应用
npm run build
# 启动生产服务器
npm run start§6 使用指南
6.1 上传和处理文档
- 上传文档:拍摄收据照片或上传发票 PDF
- AI 分析:TaxHacker 自动识别和提取数据
- 分类整理:交易自动分类或手动调整
- 存储检索:所有内容保存在结构化数据库中
6.2 管理交易
| 操作 | 说明 |
|---|---|
| 添加交易 | 手动添加或 AI 自动提取 |
| 编辑交易 | 修改任何交易详情 |
| 删除交易 | 删除不需要的交易 |
| 批量操作 | 一次处理多个交易 |
6.3 导出数据
- 应用过滤:使用日期、类别、项目等过滤
- 选择格式:CSV 导出
- 生成报告:创建税务报告
- 下载存档:完整数据迁移
§7 自定义配置
7.1 创建自定义字段
- 进入设置 → 自定义字段
- 点击"添加字段"
- 填写字段名称和描述
- 编写 AI 提取提示词
- 保存并应用到未来文档
7.2 创建自定义类别
- 进入设置 → 类别
- 点击"添加类别"
- 填写类别名称和图标
- 设置分类规则(可选)
- 保存
7.3 编写自定义提示词
你是一个专业的发票数据提取助手。请从以下文档中提取:
- 供应商名称
- 交易日期
- 总金额(含税)
- 税额
- 明细项目
如果某字段不存在,请返回 null。§8 安全与隐私
8.1 数据安全
| 安全措施 | 说明 |
|---|---|
| 本地存储 | 数据存储在你的服务器上 |
| 加密传输 | HTTPS 加密通信 |
| 认证保护 | BETTER_AUTH_SECRET 密钥认证 |
| 无数据共享 | 财务文档永不离开你的控制 |
8.2 自托管优势
| 优势 | 说明 |
|---|---|
| 完全控制 | 你拥有所有数据 |
| 无订阅费用 | 免费开源 |
| 数据迁移 | 随时导出所有数据 |
| 隐私保护 | 敏感财务信息不经过第三方 |
§9 故障排除
9.1 常见问题
| 问题 | 解决方案 |
|---|---|
| 数据库连接失败 | 检查 DATABASE_URL 是否正确 |
| AI 提取失败 | 检查 API 密钥是否有效 |
| 文件上传失败 | 检查 UPLOAD_PATH 目录权限 |
| PDF 处理失败 | 确保安装 Ghostscript 和 GraphicsMagick |
9.2 日志查看
# Docker 日志
docker compose logs -f app
# 数据库日志
docker compose logs -f db§10 贡献与支持
10.1 贡献方式
| 方式 | 说明 |
|---|---|
| 🐛 Bug 报告 | 详细描述遇到的问题 |
| 💡 功能请求 | 分享新功能和改进想法 |
| 🔧 代码贡献 | 提交拉取请求改进应用 |
| 📚 文档 | 帮助改进文档和指南 |
| 🎥 内容创作 | 视频、教程和评论帮助我们接触更多用户 |
10.2 支持项目
如果你觉得 TaxHacker 对你有帮助,考虑支持它的持续发展!
§11 常见问题
Q1:TaxHacker 支持哪些语言?
支持任何语言的文档,包括收据、发票和手写内容。
Q2:支持哪些货币?
支持 170+ 世界货币和 14 种流行加密货币(BTC, ETH, LTC, DOT 等)。
Q3:可以自托管吗?
可以。通过 Docker Compose 可以轻松自托管在你自己基础设施上。
Q4:数据存储在哪里?
默认存储在本地 PostgreSQL 数据库中,完全由你控制。
Q5:支持哪些 AI 提供商?
目前支持 OpenAI、Google Gemini 和 Mistral。本地 LLM 支持即将推出。
Q6:如何导出数据?
支持 CSV 导出,包含所有附加文档,可以生成税务准备报告。
§12 总结
12.1 核心优势
| 优势 | 说明 |
|---|---|
| AI 驱动 | 自动识别和提取文档数据 |
| 多货币 | 支持 170+ 货币和 14 种加密货币 |
| 完全可定制 | 自定义字段、类别、提示词 |
| 自托管 | 数据完全由你控制 |
| 开源免费 | MIT 许可证,无订阅费用 |
12.2 适用场景
| 场景 | 适用性 |
|---|---|
| 自由职业者 | 费用跟踪、税务准备 |
| 独立开发者 | 项目成本核算、发票管理 |
| 小型企业 | 财务记录、报告生成 |
| 远程团队 | 多货币报销处理 |
12.3 项目信息
| 项目 | 信息 |
|---|---|
| Stars | 3.6k |
| Forks | 580 |
| 许可证 | MIT |
| 语言 | TypeScript 99.2% |
| 最新版本 | v0.6.1 |
| 最新更新 | Mar 13, 2026 |
12.4 相关链接
| 资源 | 链接 |
|---|---|
| GitHub | https://github.com/vas3k/TaxHacker |
| 官网 | https://taxhacker.app |
| 演示视频 | https://taxhacker.app/landing/video.mp4 |
文档版本 1.0 | 撰写日期:2026-04-01 | 基于 TaxHacker (3.6k Stars, MIT)