Problem
Full statutory accounting for a Polish sp. z o.o. - mandatory KSeF e-invoicing, JPK_V7M(3) VAT files, the incoming JPK_KR_PD (JPK_CIT) - normally means paid SaaS or Odoo Enterprise. Post-2014 deregulation lets a company president keep the books and sign the financial statement himself (Art. 4.5 + 52.2 UoR), but no free stack actually covers the Polish compliance surface.
Approach
Odoo 19 Community Edition plus OCA modules, patched where the gaps are, with four purpose-built LGPL modules in the repo:
l10n_pl_edi_fixes- KSeF FA(3) fixes: GTU codes, split payment (P_18A), VAT exemptions (P_19A)l10n_pl_jpk_v7- JPK_V7M(3)/V7K(3) generator against the Ministry of Finance schema of 2025-12-19l10n_pl_jpk_kr_pd- JPK_KR_PD generator, ahead of the 2027-07-31 deadlinel10n_pl_nbp_rates- daily NBP Table A exchange rates
Odoo 19 CE ── l10n_pl (chart of accounts, VAT, GTU)
│
├─ l10n_pl_edi ───────► KSeF API v2.6.0 (FA(3) e-invoices)
├─ l10n_pl_jpk_v7 ────► JPK_V7M(3) XML
├─ l10n_pl_jpk_kr_pd ─► JPK_CIT XML
└─ l10n_pl_nbp_rates ─► NBP Table A daily
│
Docker Compose · Traefik · Let's Encrypt (Coolify-ready)Hardening ships in the stack: XXE-hardened XML handling, brute-force rate limiting, HSTS and security headers.
Tradeoffs
- Chasing government schemas. FA(3), V7M(3) and KR_PD are moving targets with statutory deadlines - the price of compliance without license fees is a maintenance treadmill against ministry XSDs.
- CE, not Enterprise. Missing Enterprise conveniences are accepted or rebuilt; everything stays LGPL/AGPL and self-hostable.
- Self-hosting is the product. Coolify + Docker Compose + Traefik makes "your own accounting server" a one-evening setup instead of a devops project.
Outcome
An open LGPL-3 repo with Polish and English documentation, deployable end-to-end, tracking KSeF API v2.6.0 and the current JPK_V7M(3) schema.