{"data":{"slug":"vas3k-taxhacker","name":"TaxHacker","tagline":"Self-hosted AI accounting app with LLM analysis for receipts and invoices","github_url":"https://github.com/vas3k/TaxHacker","owner":"vas3k","repo":"TaxHacker","owner_avatar_url":"https://avatars.githubusercontent.com/u/176344?v=4","primary_language":"TypeScript","stars":6714,"forks":1093,"topics":["accounting","ai-analysis","currency-exchange","expenses","gemini","invoices","llm","ocr-recognition","ollama","openai","self-hosted","taxes"],"archived":false,"github_pushed_at":"2026-09-14T15:36:23+00:00","maintenance_label":"Very active","stars_delta_30d":108,"url":"https://www.graphcanon.com/tools/vas3k-taxhacker","markdown_url":"https://www.graphcanon.com/tools/vas3k-taxhacker.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/vas3k-taxhacker","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=vas3k-taxhacker","description":"Self-hosted AI accounting app. LLM analyzer for receipts, invoices, transactions with custom prompts and categories","homepage_url":"https://taxhacker.app","license":"MIT","open_issues":42,"watchers":53,"ai_summary":"TaxHacker is a self-hostable application leveraging large language models (LLMs) to analyze financial documents such as receipts and invoices. It supports custom prompts, expense categorization, currency exchange data, OCR-based recognition of text from images, and integrates with tools like OpenAI for AI analysis. The deployment includes support for PostgreSQL databases and automatic migrations.","readme_excerpt":"## 🛳 Deployment and Self-hosting\n\nTaxHacker can be easily self-hosted on your own infrastructure for complete control over your data and application environment. We provide a [Docker image](./Dockerfile) and [Docker Compose](./docker-compose.yml) setup that makes deployment simple:\n\n```bash\ncurl -O https://raw.githubusercontent.com/vas3k/TaxHacker/main/docker-compose.yml\n\ndocker compose up\n```\n\nThe Docker Compose setup includes:\n\n- TaxHacker application container\n- PostgreSQL 17+ database (or connect to your existing database)\n- Automatic database migrations on startup\n- Volume mounts for persistent data storage\n- Production-ready configuration\n- `no-new-privileges` security option on all containers\n\nNew Docker images are automatically built and published with every release. You can use specific version tags (e.g., `v1.0.0`) or `latest` for the most recent version.\n\nFor advanced setups, you can customize the Docker Compose configuration to fit your infrastructure. The default configuration uses the pre-built image from GitHub Container Registry, but you can also build locally using the provided [Dockerfile](./Dockerfile).\n\nExample custom configuration:\n\n```yaml\nservices:\n  app:\n    image: ghcr.io/vas3k/taxhacker:latest\n    ports:\n      - \"7331:7331\"\n    environment:\n      - SELF_HOSTED_MODE=true\n      - UPLOAD_PATH=/app/data/uploads\n      - DATABASE_URL=postgresql://postgres:postgres@localhost:5432/taxhacker\n    volumes:\n      - ./data:/app/data\n    restart: unless-stopped\n```\n\n---\n\n## 📄 License\n\nTaxHacker is licensed under the [MIT License](LICENSE).","github_created_at":"2025-03-10T13:25:27+00:00","created_at":"2026-07-15T11:03:33.750349+00:00","updated_at":"2026-09-20T05:12:31.903701+00:00","categories":[{"slug":"data-retrieval","name":"Data & Retrieval","url":"https://www.graphcanon.com/categories/data-retrieval","markdown_url":"https://www.graphcanon.com/categories/data-retrieval.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/data-retrieval"},{"slug":"llm-frameworks","name":"LLM Frameworks","url":"https://www.graphcanon.com/categories/llm-frameworks","markdown_url":"https://www.graphcanon.com/categories/llm-frameworks.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/llm-frameworks"},{"slug":"model-training","name":"Model Training","url":"https://www.graphcanon.com/categories/model-training","markdown_url":"https://www.graphcanon.com/categories/model-training.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/model-training"}],"tags":[{"slug":"accounting","name":"accounting"},{"slug":"ai-analysis","name":"ai-analysis"},{"slug":"currency-exchange","name":"currency-exchange"},{"slug":"expenses","name":"expenses"},{"slug":"invoices","name":"invoices"},{"slug":"llm","name":"llm"},{"slug":"ocr-recognition","name":"ocr-recognition"},{"slug":"openai","name":"openai"}],"trust":{"provenance":{"is_fork":false,"github_id":946010740,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-09-20T05:12:29.234Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":4,"days_since_push":5,"last_release_at":"2026-07-20T16:42:39Z","stars_delta_30d":108,"open_issues_delta_30d":3},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-15T11:03:35.168Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"mcp":{"source":"repo_scan","observed_at":"2026-09-20T05:12:30.516Z","server_manifest":false},"scan":{"source":"repo_scan","observed_at":"2026-09-20T05:12:30.516Z"},"deploy":{"source":"dockerfile:Dockerfile","self_host":true,"observed_at":"2026-09-20T05:12:30.516Z","managed_saas":false},"has_cli":{"value":true,"source":"package.json:bin|scripts","observed_at":"2026-09-20T05:12:30.516Z"},"languages":{"value":["typescript","javascript"],"source":"github.language+package.json","observed_at":"2026-09-20T05:12:30.516Z"},"has_docker":{"value":true,"source":"dockerfile:Dockerfile","observed_at":"2026-09-20T05:12:30.516Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-09-20T05:12:30.516Z"}},"decision_facts":{"hosting":null,"pricing":{"model":"freemium","summary":"Free open-source MIT-licensed solution but may involve costs for server hosting and third-party API usage like OpenAI."},"requirements":{"notes":["Self-hosted setup requires Docker and PostgreSQL database."],"min_ram_gb":2,"requires_docker":true},"constraints":{"min_ram_gb":2,"pricing_model":"freemium","requires_docker":true},"when_to_use":["You need full control over data in your accounting system, enabling compliance and security requirements.","Your workflow includes receipts and invoices that require OCR-based text recognition and analysis.","You plan to integrate custom prompts for expense categorization tailored to your business needs."],"when_not_to_use":["If you prefer cloud-hosted solutions with minimal setup time and maintenance effort.","When you lack the infrastructure or expertise to manage a self-hosted application, including database management and Docker orchestration.","You do not require the level of customization that TaxHacker offers, as simpler alternatives exist."],"source":"enrich:decision_facts","observed_at":"2026-07-17T10:24:55.657Z"},"constraint_facets":{"min_ram_gb":2,"pricing_model":"freemium","requires_docker":true},"decision_summary":[{"label":"Pricing","value":"freemium - Free open-source MIT-licensed solution but may involve costs for server hosting and third-party API usage like OpenAI."},{"label":"Requirements","value":"Min 2 GB RAM; Requires Docker; Self-hosted setup requires Docker and PostgreSQL database."},{"label":"Adopt for","value":"Self-hosted AI app for receipt and invoice analysis with LLM support."}]}}