---
title: "Deploy taxhacker"
description: "Self-hosted AI accounting app for freelancers and small businesses."
category: "Other"
url: https://railway.com/deploy/taxhacker-1
---

# Deploy taxhacker

Self-hosted AI accounting app for freelancers and small businesses.

**[Deploy taxhacker on Railway](https://railway.com/template/taxhacker-1)**

- **Creator:** Ken Komatsu's Projects
- **Category:** Other
- **Total deploys:** 5

## Template content

### taxhacker

- **Image:** ghcr.io/vas3k/taxhacker:latest
- **Public domain:** Yes

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

## Documentation

# Deploy and Host TaxHacker on Railway

## About Hosting

TaxHacker is a self-hosted AI accounting application built with Next.js 15 and PostgreSQL. It uses LLMs to analyze receipts, invoices, and PDFs, extracting structured financial data automatically. The Railway deployment consists of two services: the TaxHacker app container (`ghcr.io/vas3k/taxhacker:latest`) and a managed PostgreSQL 17 database. A persistent volume stores uploaded documents at `/app/data`.

## Why Deploy

- Full ownership of your financial data — documents never leave your infrastructure
- AI-powered extraction of dates, amounts, vendors, taxes from any document type
- Multi-currency support with automatic historical exchange rate conversion, including crypto
- Customizable AI prompts for domain-specific data extraction
- No vendor lock-in — export everything as CSV/Excel at any time
- MIT-licensed, actively maintained open-source project

## Common Use Cases

- Freelancers tracking business expenses and invoices for tax filing
- Small businesses automating receipt processing and categorization
- Digital nomads managing multi-currency transactions across countries
- Indie hackers keeping accounting organized with minimal manual effort
- Accountants processing bulk documents with AI-assisted data extraction

## Dependencies for Deployment

### Deployment Dependencies

| Dependency | Details |
|---|---|
| Docker Image | `ghcr.io/vas3k/taxhacker:latest` |
| Port | `7331` |
| Database | PostgreSQL 17 (managed by Railway) |
| Volume | `/app/data` for persistent upload storage |
| `DATABASE_URL` | PostgreSQL connection string (auto-wired via `${{Postgres.DATABASE_URL}}`) |
| `BETTER_AUTH_SECRET` | Authentication secret key (auto-generated) |
| `SELF_HOSTED_MODE` | Set to `true` for self-hosting features |
| `UPLOAD_PATH` | `/app/data/uploads` |
| `NODE_ENV` | `production` |

### Optional LLM Configuration

Configure your preferred AI provider in the app settings UI after deployment, or set these env vars:

| Variable | Description | Example |
|---|---|---|
| `OPENAI_API_KEY` | OpenAI API key | `sk-...` |
| `OPENAI_MODEL_NAME` | OpenAI model | `gpt-4o-mini` |
| `GOOGLE_API_KEY` | Google Gemini API key | |
| `GOOGLE_MODEL_NAME` | Gemini model | `gemini-2.5-flash` |
| `MISTRAL_API_KEY` | Mistral API key | |
| `MISTRAL_MODEL_NAME` | Mistral model | `mistral-medium-latest` |


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/taxhacker-1
