docs / invoices / getting-started / installation.md
Installation
Self-host Invoices (contacts + AI-native invoicing). Not entrytwo accounting.
Repo: github.com/felixkrusch/invoices
Deep ops notes live in the app repo: docs/PRODUCTION.md, docs/VPS-Auth-Install.md.
Deploy: Most production setups use a VPS with Docker and HTTPS. You can also install and run locally (e.g. on a Mac) for real use: same full app, like classic non-cloud accounting software. Runs on your VPS or locally.
Let AI install it for you
Not a terminal person? You can still get this running. Point an AI coding agent at this page (and the repo) and ask it to install Invoices for you — for example Claude Code, OpenClaw, Hermes, Cursor, or a similar tool that can run commands on your machine or VPS. Share your goal (local Mac vs VPS + domain), paste errors back if something fails, and keep secrets (passwords, API keys) out of chats you do not trust. The steps below remain the source of truth; the agent just walks them with you.
Prerequisites
- Docker & Docker Compose (recommended)
- Domain + reverse proxy for HTTPS in production
- SMTP and/or Google/Microsoft OAuth for real sign-in
- Optional LLM API key for chat invoice drafts
Quick start (Docker)
git clone https://github.com/felixkrusch/invoices.git
cd invoices
cp .env.example .env
# set secrets, AUTH_URL, SMTP or OAuth, POSTGRES_PASSWORD
docker compose up -d --build
Open the site → bootstrap first ADMIN → company settings → tax rates → first contact → first invoice.
Confirm GET /api/health → ready: true.
Production checklist
- Fresh secrets:
AUTH_SECRET,ENCRYPTION_KEY,JOB_RUNNER_SECRET,POSTGRES_PASSWORD - Real sign-in: full SMTP and/or OAuth (instant email is off in production)
AUTH_URL=https://your.domain,AUTH_TRUST_HOST=true- DNS A record before expecting HTTPS
- Worker service running for outbound invoice email jobs
- After trial: activate an Invoices license key (
product: invoices)
Need a full ledger instead? entrytwo installation.