Inkvoice is a free, open-source (MIT) invoicing app for freelancers and small teams. It runs as a single ~50–100 MB container with a SQLite database: invoices, quotes & customer statements, online payments on the invoice via Stripe & PayPal, recurring invoices, expense tracking, multi-currency, reporting, multi-user, and a 5-language UI.
Adds blueprints/inkvoice/ (docker-compose.yml, template.toml, inkvoice.svg) and a sorted meta.json entry. Single inkvoice service — no host port mapping / container_name / networks; persistent named volume for the SQLite database; domain routed to port 3000; ADMIN_PASS and JWT_SECRET auto-generated. COOKIE_SECURE=false so login works out of the box on Dokploy's auto-generated HTTP domain (set true once an HTTPS custom domain is attached).
I have tested the template in my instance, so the maintainers don't spend time trying to figure out what's wrong.
I have added tests that demonstrate that my correction works or that my new feature works.
Issues related (if applicable)
N/A
Screenshots or Videos
Tested via the README's Base64-import flow (preview → copy Base64 → Compose service → Import) on Dokploy v0.29.7: the template parsed, Dokploy auto-generated ADMIN_PASS (16 chars) and JWT_SECRET (48 chars) and a domain, the container deployed and reported healthy, and signing in with admin + the generated password reached the onboarding flow.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/Dokploy/templates/pull/958
**Author:** [@bariscelik](https://github.com/bariscelik)
**Created:** 6/23/2026
**Status:** ✅ Merged
**Merged:** 7/7/2026
**Merged by:** [@Siumauricio](https://github.com/Siumauricio)
**Base:** `canary` ← **Head:** `add-inkvoice-template`
---
### 📝 Commits (1)
- [`404e422`](https://github.com/Dokploy/templates/commit/404e4225b2b7c8a16b77a376a1ecc2f9b6002e23) feat: add Inkvoice template
### 📊 Changes
**4 files changed** (+64 additions, -0 deletions)
<details>
<summary>View changed files</summary>
➕ `blueprints/inkvoice/docker-compose.yml` (+22 -0)
➕ `blueprints/inkvoice/inkvoice.svg` (+7 -0)
➕ `blueprints/inkvoice/template.toml` (+17 -0)
📝 `meta.json` (+18 -0)
</details>
### 📄 Description
## What is this PR about?
**Inkvoice** is a free, open-source (MIT) invoicing app for freelancers and small teams. It runs as a single ~50–100 MB container with a SQLite database: invoices, quotes & customer statements, online payments on the invoice via Stripe & PayPal, recurring invoices, expense tracking, multi-currency, reporting, multi-user, and a 5-language UI.
Adds `blueprints/inkvoice/` (`docker-compose.yml`, `template.toml`, `inkvoice.svg`) and a sorted `meta.json` entry. Single `inkvoice` service — no host port mapping / `container_name` / `networks`; persistent named volume for the SQLite database; domain routed to port 3000; `ADMIN_PASS` and `JWT_SECRET` auto-generated. `COOKIE_SECURE=false` so login works out of the box on Dokploy's auto-generated HTTP domain (set `true` once an HTTPS custom domain is attached).
- Repo: https://github.com/pigontech/inkvoice
- Image: `ghcr.io/pigontech/inkvoice:0.1.0` (multi-arch amd64/arm64, GHCR)
- Demo (no signup): https://demo.inkvoice.app
## Checklist
Before submitting this PR, please make sure that:
- [x] I have read the suggestions in the README.md file https://github.com/Dokploy/templates?tab=readme-ov-file#general-requirements-when-creating-a-template
- [x] I have tested the template in my instance, so the maintainers don't spend time trying to figure out what's wrong.
- [x] I have added tests that demonstrate that my correction works or that my new feature works.
## Issues related (if applicable)
N/A
## Screenshots or Videos
Tested via the README's Base64-import flow (preview → copy Base64 → Compose service → Import) on Dokploy v0.29.7: the template parsed, Dokploy auto-generated `ADMIN_PASS` (16 chars) and `JWT_SECRET` (48 chars) and a domain, the container deployed and reported **healthy**, and signing in with `admin` + the generated password reached the onboarding flow.
<img width="1512" height="722" alt="image" src="https://github.com/user-attachments/assets/b620b495-ca1f-4e49-9198-878441b1fe31" />
Preview: https://bariscelik-add-inkvoice-temp.templates-70k.pages.dev
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/Dokploy/templates/pull/958
Author: @bariscelik
Created: 6/23/2026
Status: ✅ Merged
Merged: 7/7/2026
Merged by: @Siumauricio
Base:
canary← Head:add-inkvoice-template📝 Commits (1)
404e422feat: add Inkvoice template📊 Changes
4 files changed (+64 additions, -0 deletions)
View changed files
➕
blueprints/inkvoice/docker-compose.yml(+22 -0)➕
blueprints/inkvoice/inkvoice.svg(+7 -0)➕
blueprints/inkvoice/template.toml(+17 -0)📝
meta.json(+18 -0)📄 Description
What is this PR about?
Inkvoice is a free, open-source (MIT) invoicing app for freelancers and small teams. It runs as a single ~50–100 MB container with a SQLite database: invoices, quotes & customer statements, online payments on the invoice via Stripe & PayPal, recurring invoices, expense tracking, multi-currency, reporting, multi-user, and a 5-language UI.
Adds
blueprints/inkvoice/(docker-compose.yml,template.toml,inkvoice.svg) and a sortedmeta.jsonentry. Singleinkvoiceservice — no host port mapping /container_name/networks; persistent named volume for the SQLite database; domain routed to port 3000;ADMIN_PASSandJWT_SECRETauto-generated.COOKIE_SECURE=falseso login works out of the box on Dokploy's auto-generated HTTP domain (settrueonce an HTTPS custom domain is attached).ghcr.io/pigontech/inkvoice:0.1.0(multi-arch amd64/arm64, GHCR)Checklist
Before submitting this PR, please make sure that:
Issues related (if applicable)
N/A
Screenshots or Videos
Tested via the README's Base64-import flow (preview → copy Base64 → Compose service → Import) on Dokploy v0.29.7: the template parsed, Dokploy auto-generated
ADMIN_PASS(16 chars) andJWT_SECRET(48 chars) and a domain, the container deployed and reported healthy, and signing in withadmin+ the generated password reached the onboarding flow.Preview: https://bariscelik-add-inkvoice-temp.templates-70k.pages.dev
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.