
Deploy taxhacker
Self-hosted AI accounting app for freelancers and small businesses.
taxhacker
Just deployed
/app/data
Just deployed
/var/lib/postgresql/data
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 |
Template Content