entrytwo

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/healthready: true.


Production checklist

  1. Fresh secrets: AUTH_SECRET, ENCRYPTION_KEY, JOB_RUNNER_SECRET, POSTGRES_PASSWORD
  2. Real sign-in: full SMTP and/or OAuth (instant email is off in production)
  3. AUTH_URL=https://your.domain, AUTH_TRUST_HOST=true
  4. DNS A record before expecting HTTPS
  5. Worker service running for outbound invoice email jobs
  6. After trial: activate an Invoices license key (product: invoices)

Need a full ledger instead? entrytwo installation.