Rachoon (from raΔun, meaning invoice in Bosnian) is a modern, self-hosted invoicing platform designed for freelancers, small businesses, and everyone who wants full control over their billing. It helps you create and track invoices effortlessly β with the charm of its mascot, the ever-curious raccoon.
β
Invoices & Offers β Create and manage invoices and quotations in seconds.
β
Client Management β Keep all your client info organized and searchable.
β
Payment Tracking β Log payment status, view balances, and track overdue invoices.
β
Custom Branding β Highly customizable templates using nunjucks.
β
Multi-Currency & Tax Support β Bill globally with flexible tax and currency settings.
β
PDF Export β Instantly download professional-looking PDFs.
β
Dashboard Insights β Get a snapshot of your revenue, pending payments, and client stats.
The name comes from βraΔunβ, which means invoice in Bosnian β combined with the word raccoon, because invoicing should be smart and quick.
- Frontend: Nuxt.js
- Backend: adonisJS
- Database: PostgreSQL
- PDF Engine: Gotenberg
- Deployment: Docker-ready, runs anywhere.
services:
rachoon:
image: ghcr.io/ad-on-is/rachoon
container_name: rachoon
environment:
- APP_KEY=<some-app-key> # min 32 characters - used to encrypt and sign sensitive data
- DB_CONNECTION=pg
- GOTENBERG_URL=http://gotenberg:3000
- PG_HOST=postgres16
- PG_PORT=5432
- PG_USER=<root-user>
- PG_PASSWORD=<root-password>
- PG_DB_NAME=rachoon
ports:
- 8080:8080
gotenberg:
image: gotenberg/gotenberg:8
postgres16:
container_name: postgres16
image: postgres:16
environment:
- POSTGRES_USER=<root-user>
- POSTGRES_PASSWORD=<root-password>
- POSTGRES_DB=postgres
volumes:
- ./rachoon-data:/var/lib/postgresql/data
- ./docker/init-db.sh:/docker-entrypoint-initdb.d/init-db.sh- Visit: http://localhost:8080/signup
- Create your account
- Start invoicing
This project uses a monorepo structure managed by Turborepo.
The project is organized with the following build outputs:
- Frontend (Nuxt):
.output/directory - Backend (AdonisJS):
build/directory - Packages:
dist/directory
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run in development mode
pnpm devrachoon/
βββ apps/
β βββ backend/ # AdonisJS API server
β βββ frontend/ # Nuxt.js web application
βββ packages/
β βββ common/ # Shared code
β βββ typescript-config/
βββ turbo.json # Turborepo configuration
rachoon uses a comprehensive testing setup:
backend tests (japa)
cd apps/backend
pnpm testtest structure
- unit tests for models and services
- integration tests for api endpoints
- database seeding for test data
ci/cd pipeline
all pull requests and pushes trigger automated checks:
- code quality (linting, formatting)
- test execution with postgres test database
- build verification
- docker image creation (main branch only)
see CONTRIBUTING.md for detailed testing guidelines.
we welcome contributions! please read our contribution guidelines to get started.
quick start:
- fork the repository
- create a feature branch
- make your changes
- add tests for new features
- ensure all tests pass
- submit a pull request
see LICENSE for details.