Consultainer tracks the hours your team works for each client and turns them into invoices — on your own server, from a single docker compose file. Open source, no per-seat pricing, no data leaving your network.
Postgres, the app, and a small scheduler for recurring invoices, reminders and syncs — all in one compose file.
docker compose pull.# grab the compose file and example settings curl -O https://raw.githubusercontent.com/Armistice-Group/retainer/main/docker-compose.yml curl -o .env https://raw.githubusercontent.com/Armistice-Group/retainer/main/.env.example # fill in the Required section of .env, then docker compose up -d
Built for engineering, security, and design consultancies billing by the hour, flat fee, or milestone.
Log hours by hand, run a timer on any task, or turn your calendar's meetings into time — each with a suggested project. See your week at a glance, or the whole team's, with optional weekly approval.
Per-person bill rates, hour budgets that alert you at 80%, tasks synced both ways with Linear, milestones, and expenses — with invoiced-to-date and profit always in view.
Pull unbilled time, completed milestones, and expenses into an invoice in a few clicks, or bill a set fee or deposit. Email clients a link to view and pay it, with the PDF and timesheet attached if they want them — and know when they open it. Take payment through Stripe or Mercury, push to QuickBooks.
Put a client on a weekly, bi-weekly, or monthly cycle and their invoice drafts itself. Retainers bill a fixed amount on their own schedule, and overdue reminders go out on their own.
Northwind Labs is made up: four people, five clients, a mix of hourly, flat-fee and retainer work. Here's how a month of it goes in Consultainer. Every screen is the real app on the demo data that ships in the repo, so you can load it and click around yourself.
Maya, the owner, picks Resend or any SMTP server (Postmark, SES, Google Workspace…), pastes the settings and sends herself a test, or a sample of the invoice email clients get. No config files, no restart.
Atlas Robotics signs phase 2. Maya bills 50% up front: one line, $9,000, a note saying what it covers. Ticked as a deposit, the payment becomes Atlas's credit for the phase 2 invoices.
Atlas's AP team files PDFs and checks hours. Maya attaches the PDF and includes the timesheet: every entry's date, start and end time, who did it and what. Ken still gets the link to pay online.
No login: the invoice, how to pay, and the timesheet, with any screenshots the team marked as evidence. Maya sees under Activity that Ken opened the email, the page and the PDF.
Sam, a contractor, installs the phone app from Chrome, starts a timer on Fleet Dashboard, and shares a screenshot straight into a time entry as evidence.
Hours, invoiced, received and outstanding, utilization by person and profit by project, with each table a CSV away, for Maya's monthly review.
A REST API and a built-in MCP server let Claude, Cursor, or any agent log time and draft invoices with a personal API key — the same permissions as the person it acts for.