A lightweight, Nextcloud‑native bookkeeping app for freelancers and small teams. Track customers, cases, offers, invoices, products, fiscal years, and GÜB (EÜR) — all inside Nextcloud with a familiar UI.
Below are a few highlights from the UI and PDF output. The first four are intended for store listings; the rest are extra context for GitHub.
Store (4 Bilder)
1) Vorgänge
Filterbare Vorgangsliste mit Schnellaktionen und klarer Struktur.

2) Vorgang-Details
Vorgangsdaten plus verknüpfte Rechnungen & Angebote auf einen Blick.

3) Wirtschaftsjahr
Einnahmen, Ausgaben und Status in der Jahresübersicht.

4) Angebot (PDF)
Sauberes Layout für Angebote mit Positionen und Summenblock.

Weitere Screenshots (GitHub)
5) Rechnung (PDF)
Rechnungslayout mit Steuerlogik und Abschlusstext.

6) GÜB (PDF)
Einnahmenübersicht als PDF für das Wirtschaftsjahr.

7) Texte & Vorlagen
PDF- und E-Mail-Texte zentral pflegen.

8) Steuer-Einstellungen
Kleinunternehmerregelung und Standard-USt.

- Nextcloud‑native UI using Nextcloud Vue Components
- Multi-Company support with one active company context at a time
- Customers, Products/DL, Cases, Elements scoped to the active company
- Offers & Invoices with positions, tax logic, and PDF export
- Optional PDF auto-storage to Nextcloud Files with overwrite or versioning
- Numbering
YYYYMMDD-####for offers and invoices - Mail‑to workflow for offers/invoices (auto‑download PDF + template mail)
- Fiscal Years with Einnahmen/Ausgaben and GÜB PDF export
- Kleinunternehmerregelung supported (with custom note)
- Select or create the active Company in settings
- Create a Customer
- Open a Case for the customer
- Create Offers and Invoices from the case
- Export PDF and send via mailto template
- Track Einnahmen/Ausgaben in the fiscal year and export GÜB
- Offer / Invoice PDFs follow a clean A4 layout
- Tax block adapts to USt or Kleinunternehmer
- Footer shows your closing text and (optional) bank info
- Optional automatic filing to
Files/NextLedger/<Firma>/<Wirtschaftsjahr> - Storage mode can be configured:
overwrite existing file, or create versioned files (
..._v1,..._v2, ...)
- Manage multiple companies under Settings → Firma
- Exactly one company is active at a time
- Active company is shown in the left navigation at Vorgänge
- Core data is company-scoped: customers, cases, offers, invoices, products, fiscal years, incomes, expenses
Mail text supports placeholders like:
{{offerNumber}},{{invoiceNumber}}{{customerName}},{{customerContact}},{{customerSalutation}}{{caseName}},{{total}},{{issueDate}}
- Copy or clone the app into
apps/nextledger - Enable the app in Nextcloud admin
- Open NextLedger from the app menu
docker compose up -dOpen http://localhost:8080 and log in with:
- user:
admin - password:
admin
The app is mounted at apps/nextledger and loaded in Nextcloud as nextledger.
If you want to test NextLedger's Nextcloud Mail provider integration locally, enable the mail app once in the container:
docker compose exec -T --user root nextcloud chown -R www-data:www-data /var/www/html/custom_apps
docker compose exec -T nextcloud php occ config:system:set appstoreenabled --type=boolean --value=true
docker compose exec -T nextcloud php occ app:install mailVerify:
docker compose exec -T nextcloud php occ app:list | rg mailnpm install
npm run devGenerate demo content for screenshots:
NEXTLEDGER_BASE_URL=http://localhost:8080/apps/nextledger/api \
NEXTCLOUD_USER=admin \
NEXTCLOUD_APP_PASSWORD=YOUR_APP_PASSWORD \
node scripts/seed-demo.jsThe script creates:
- 1 active fiscal year
- 5 customers
- 5 cases (one per customer)
- 10 offers (2 per customer)
- 10 invoices (2 per customer)
Create an app password in Nextcloud under Settings → Security.
PDF generation uses dompdf (server‑side). Ensure dependencies are installed:
cd apps/nextledger
composer install- Customers: company, contact, address, email
- Cases: customer, description, deck link, kollektiv link
- Elements: notes and attachments per case
- Products/DL: name, description, unit price
- Offers/Invoices: positions, tax, status
- Fiscal Years: income/expense + GÜB
apps/nextledger: Nextcloud app (backend, migrations, templates)src/: Vue UI (frontend)docker-compose.yml: Local Nextcloud 32 environment
All data stays in your Nextcloud instance. Mail sending is handled via mailto: (no server‑side email). PDFs are generated server‑side in your instance.
GPL-3.0