Český fakturační systém pro freelancery, OSVČ a malé firmy. Rychlé vystavování opakovaných faktur, QR platby, výkaz víceprací, import bankovních výpisů, exporty pro účetní software — vše na vlastním serveru.
Vyvíjí MyWebdesign.cz s.r.o.
🌐 Projektový web: MyInvoice.cz
📖 Online dokumentace: MyInvoice.cz/manual
⚠️ Než začneš fakturovat — přečti si Fakturujeme — daňový průvodce. Vysvětluje, jak aplikace pracuje s plátci/neplátci DPH, sazbami, reverse charge, kde má aplikace limitace (OSS, SK 23 %) a jak je obejít. Správnost faktury je vždy na uživateli — pro nestandardní situace konzultuj účetní.
Většina českých online fakturačních služeb je SaaS s měsíčními poplatky a vašimi fakturačními daty mimo váš dosah. MyInvoice.cz je open-source, self-hosted alternativa s důrazem na:
- Tvoji databázi, tvoje data — vše běží na vlastním (nebo pronajatém) serveru, žádný cloud.
- Multi-supplier od první verze — fakturuj za více firem / IČ z jedné instalace, snadný přepínač v UI.
- Český kontext první — ARES + VIES lookup, SPAYD QR (ČR) i SEPA EPC QR (EU), ISDOC + Pohoda XML exporty, mod-11 validace bankovních účtů, GPC import výpisů.
- Nulové měsíční náklady — jednorázový setup, žádné per-fakturové poplatky, žádné limity.
- 4 typy dokladů: faktura, zálohová (proforma), opravný daňový doklad (dobropis), interní storno
- Vystavení daňového dokladu z proformy s automatickým odečtem zaplacené zálohy
- Klonování faktur s auto-inkrementem měsíce v popiscích (
3/2026 → 4/2026) - Hromadné akce: Vystavit znovu (N), Odeslat klientovi (N), Označit jako zaplacené, Upomínka
- Výkaz víceprací (work_report) jako 2. strana PDF s přenosem sumy do položky
- Schvalování výkazu zákazníkem přes e-mailový odkaz — volitelné per zakázka: zákazník dostane e-mail s odkazem na veřejnou stránku (token + CAPTCHA), jedním klikem schválí/zamítne, faktura se po schválení automaticky vystaví a odešle
- PDF se snapshotem dodavatele/odběratele/banky — vystavená faktura je neměnná
- Editace vystavené faktury jen pro admina s
?force=1+ audit záznam
- QR platby přímo v PDF: SPAYD pro CZK, SEPA EPC pro EUR
- Import GPC výpisů (ABO formát, KB / FIO / ČSOB / RB / ČS) s SHA256 dedupe
- Auto-matching transakcí na faktury podle VS + částky → automaticky
paid - Manuální párování + označení transakce jako "ignorovat"
- Upomínky po splatnosti — manuální tlačítko na detailu, hromadná akce, nebo cron
- Klienti s ARES (IČ → adresa, název) a VIES (DIČ) lookupem
- Zakázky 1:N pod klientem, fakturační emaily per zakázka (účetní, PM…)
- Filter zakázek podle klienta
- Reverse charge přepínatelný per klient
- Smazání chráněné 409, pokud má klient/zakázka navázané faktury
- Z jedné instalace fakturuj za libovolný počet dodavatelů (firem / IČ)
- Přepínač v horní liště, izolovaná data (klienti, zakázky, faktury, číselníky)
- Každý dodavatel má vlastní sadu měn + bankovních účtů, vlastní řadu varsymbolů
- Per-dodavatel: ARES údaje, logo, podpis, SMTP
From:jméno +Reply-To:adresa, Pohoda kódy
- Hromadný export PDF (ZIP po měsících)
- ISDOC 6.0.2 — český národní standard pro B2B výměnu faktur
- Pohoda XML (Stormware data package) — přímý import do Pohody bez ručního opisu
- Per-dodavatel konfigurace Pohoda kódů (středisko, činnost, předkontace, číselná řada)
- Odesílání faktur e-mailem (Symfony Mailer + DKIM podpora)
- Editor e-mailových šablon v UI (Twig) — CZ / EN, HTML + plaintext varianty
- Šablony: nová faktura, upomínka, reset hesla, test
- Per-dodavatel branding (
From:jméno,Reply-To:)
- CZ + EN lokalizace UI i faktur
- Brute-force ochrana (Redis nebo MariaDB MEMORY fallback) — 5 selhání → CAPTCHA, 30/h → 24h lockout
- Cloudflare Turnstile CAPTCHA
- IP allowlist (IPv4 + IPv6 + CIDR)
- CSRF + Origin check, TOTP 2FA, peppered bcrypt hesla
- RBAC (admin / accountant / readonly)
- Activity log všech mutací (včetně IP)
- KPI tiles, dynamický počet sloupců dle aktivních měn (4–6)
- Top klienti — koláč letošního i loňského roku
- Obrat po měsících (line chart letos vs. minulý rok)
- Po splatnosti + nezaplacené faktury (s tlačítkem upomínka)
Nejrychlejší cesta k běžící aplikaci. Stačí mít nainstalovaný Docker Desktop (Windows / macOS) nebo Docker Engine + compose-plugin (Linux) — nepotřebuješ lokálně PHP, MariaDB, Node ani nic dalšího.
Naklonuj repo a spusť jeden příkaz. Stáhne pre-built multi-arch image
(ghcr.io/radekhulan/myinvoice:latest, linux/amd64 + linux/arm64),
vygeneruje hesla a configy, spustí stack a migrace. Nepotřebuješ na hostu
pnpm/composer ani několikaminutový build.
git clone https://github.com/radekhulan/myinvoice.git
cd myinvoice
# Linux / macOS
cmd/docker-ghcr.sh
# Windows PowerShell
.\cmd\docker-ghcr.ps1WSL2 / Linux po klonu: pokud
./cmd/docker-ghcr.shhlásíPermission deniednebo/usr/bin/env: 'bash\r': No such file…, má tvůj git zapnutýcore.autocrlf=true(na checkoutu konvertuje LF → CRLF). Oprav jednorázově existující soubory a vypni autocrlf globálně:sed -i 's/\r$//' cmd/*.sh chmod +x cmd/*.sh git config --global core.autocrlf inputRepo má
.gitattributess*.sh text eol=lf, takže příštígit clonebude LF i bez tohoto kroku.
Skript automaticky:
- Vygeneruje
.envs náhodnými DB hesly (28 znaků base64) - Vygeneruje
cfg.docker.phpzcfg.sample.php(host=db / redis, randomizedapp.pepper+secret_encryption_key, dev-friendly cookies pro HTTP loopback) docker compose pull— stáhne image z GHCR- Spustí stack: app (Apache:80→host:8080) + db (MariaDB 11)
- Počká, až bude DB healthy, a spustí migrace
Používá docker-compose.production.yml, takže další compose příkazy vyžadují
flag -f docker-compose.production.yml (logs, pull, down…).
Aktualizace na novou verzi — stačí jeden příkaz:
# Linux / macOS
cmd/docker-update.sh
# Windows PowerShell
.\cmd\docker-update.ps1Skript v registry módu sám zavolá docker compose pull app (stáhne nový image
z GHCR), restartuje stack a doběhne pending migrace. Volumes (DB data) zůstávají
zachovány. Nový image se publikuje automaticky při každém release tagu
v*.*.*.
🔔 Upgrade přímo z UI (admin): od v3.0.0 aplikace denně kontroluje GitHub Releases API a v patičce zobrazí aktuální verzi + badge pokud je dostupná novější. Admin v Systém → Aktualizace vidí release notes a tlačítkem „Aktualizovat" zařadí upgrade do fronty. Vlastní pull image
- restart provádí host-side proces
cmd/docker-update-watcher.(sh/ps1)— viz „Update watcher" níže. Bez watcheru pořád funguje shell příkaz výše. Daily check ke svému běhu potřebuje cronphp api/bin/cron-version-check.php(1× denně).
Watcher je samostatný host-side proces, který sleduje flag soubor uvnitř
kontejneru (docker compose exec -T app test -f storage/upgrade-requested.json)
a když ho najde, spustí cmd/docker-update.(sh/ps1) — pull :latest
image, restart stacku, migrace. Výsledek zapíše zpět do kontejneru,
UI ho zobrazí jako „Upgrade úspěšně dokončen / selhal".
Test ve foregroundu (než ho udělej daemon):
# Linux / macOS
cd /opt/myinvoice && bash cmd/docker-update-watcher.sh# Windows
cd C:\inetpub\myinvoice
powershell -NoProfile -ExecutionPolicy Bypass -File cmd\docker-update-watcher.ps1Produkce — daemon (Linux):
sudo tee /etc/systemd/system/myinvoice-update-watcher.service <<'EOF'
[Unit]
Description=MyInvoice update watcher
After=docker.service
[Service]
Type=simple
WorkingDirectory=/opt/myinvoice
ExecStart=/opt/myinvoice/cmd/docker-update-watcher.sh
Restart=always
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now myinvoice-update-watcherProdukce — Scheduled Task (Windows):
schtasks /create /tn "MyInvoice Update Watcher" `
/tr "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\inetpub\myinvoice\cmd\docker-update-watcher.ps1" `
/sc onstart /ru SYSTEM /rl HIGHEST
schtasks /run /tn "MyInvoice Update Watcher"Detaily, recovery při zaseknutém upgradu a odlaďování v manuálu § 19 Aktualizace.
S klonem repa máš přístup k celému kódu, můžeš upravovat a build si vyrobí lokálně místo stahování z GHCR:
git clone https://github.com/radekhulan/myinvoice.git
cd myinvoice
# Linux / macOS
cmd/docker-install.sh
# Windows PowerShell
.\cmd\docker-install.ps1Stejné kroky jako Varianta A, jen místo pull z GHCR postaví myinvoice:latest
image lokálně (multi-stage: Vue build → composer → PHP 8.5 + Apache). Pomalejší,
ale zachytí tvoje rozpracované úpravy v repu.
Pro produkční Linux server, kde nechceš mít ani klon repa. Stáhneš jen dva
soubory přes curl a sestavíš konfiguraci ručně:
mkdir myinvoice && cd myinvoice
curl -O https://raw.githubusercontent.com/radekhulan/myinvoice/master/docker-compose.production.yml
curl -O https://raw.githubusercontent.com/radekhulan/myinvoice/master/cfg.sample.php
mv docker-compose.production.yml docker-compose.yml
cp cfg.sample.php cfg.docker.php
# uprav cfg.docker.php — minimálně:
# db.host => 'db', db.user => 'myinvoice', db.pass => '<heslo z .env níže>'
# app.pepper a secret_encryption_key (oboje: openssl rand -base64 32)
cat > .env <<EOF
DB_PASSWORD=$(openssl rand -base64 28)
DB_ROOT_PASSWORD=$(openssl rand -base64 28)
EOF
docker compose up -d
⚠️ Tato varianta hesla a secrets docfg.docker.phpautomaticky nedoplní — musíš je tam zapsat ručně (viz komentář v ukázce). Pro one-click použij Variantu A.
💡 V produkci pinuj konkrétní verzi — v
docker-compose.yml(resp.docker-compose.production.yml) změň:latestna konkrétní tag, např.:1.7.0. Update pakcmd/docker-update.{sh,ps1}(auto-detekuje registry mode =pull+up -d+ migrace).Od image v3.1.0 se migrace pouští i automaticky při startu kontejneru (
docker-entrypoint.sh), takže nová DB se inicializuje sama.
📖 Manuál na
/manual: GHCR image má od v2.1.5 vygenerovaný HTML manuál a od v2.3.0 i PDF (tools/generateManualHtml.php+tools/exportManualToPdf.phpse volají build-time vDockerfile), takžehttp://localhost:8080/manualfunguje bez dalších kroků a v sidebaru je button „Stáhnout PDF". Update na nový obsah =cmd/docker-update.{sh,ps1}(pull novějšího image).Kdyby
/manualvrátil 503 „Manuál není zatím vygenerovaný“: pokud jedeš na starém image před v2.1.5,cmd/docker-update.{sh,ps1}(pull nového GHCR image) je řešení — staré image nemělymanual/*.mduvnitř vůbec. Na v2.1.5+ image regeneruješ manuál ručně bez rebuildu:docker compose -f docker-compose.production.yml exec app \ php tools/generateManualHtml.php docker compose -f docker-compose.production.yml exec app \ php tools/exportManualToPdf.php
Otevři: 👉 http://localhost:8080
V prohlížeči naskočí setup wizard (3 kroky):
- Administrátor — jméno, e-mail, heslo (min. 12 znaků)
- Dodavatel — IČ → Načíst z ARES → bankovní účet (např.
1000000005 / 0100) - Sample data (volitelné) — checkboxem 5 klientů + 8 zakázek + 20 faktur + 4 dobropisy
Wizard tě po dokončení automaticky přihlásí.
Edituj .env (vznikl po prvním spuštění install skriptu):
APP_PORT=9000 # místo 8080
DB_PORT=3308 # místo 3307 (vázán jen na 127.0.0.1)a docker compose up -d. URL pak bude http://localhost:9000.
MYINVOICE_SKIP_MIGRATIONS=1 # vypne auto-migraci při startu
MYINVOICE_MIGRATE_ATTEMPTS=20 # počet retry pokusů migrace
MYINVOICE_MIGRATE_DELAY=3 # pauza mezi pokusy (sekundy)
MYINVOICE_DATA_DIR=/data # v3.6.0+ default v compose souborech (single-volume layout)
MYINVOICE_AUTH_REQUIRE_TOTP=true # v3.3.0+ — vynutit 2FA pro všechny uživatele (default false)Od image v3.1.0 se migrace pouští při startu kontejneru automaticky
(docker-entrypoint.sh). Ruční php api/bin/migrate.php je stále bezpečný
idempotentní fallback.
Od v3.6.0 je MYINVOICE_DATA_DIR=/data default v docker-compose.yml i
docker-compose.production.yml — všechen stateful obsah (log/, storage/,
private/dkim/, i cfg.local.php) leží v jediném app-data:/data volumu.
Per-instance konfigurace ze setup wizardu tak přežije image update.
Image obsahuje stub cfg.php, takže bind-mount cfg.docker.php je volitelný —
pro full-ENV deploy ho lze vynechat.
Upgrade z 3.5.x a starší (3-volume layout): cmd/docker-update.{sh,ps1}
detekuje staré volumes (app-log, app-storage, app-private) a před up -d
automaticky spustí cmd/docker-migrate-volumes.{sh,ps1} — zkopíruje data
i cfg.local.php ze starého layoutu do app-data. Staré volumes nemaže
(úklid příkazy vypíše).
Od v3.1.0 aplikace v env overridech ignoruje nevyřešené placeholdery ve tvaru
${VAR} (typicky Railway, když proměnná není definovaná), takže nepřepíšou
validní hodnoty z cfg.php / cfg.docker.php.
docker compose up -d # start
docker compose down # stop (data v named volumes přežijí)
docker compose down -v # stop + WIPE volumes (ZNIČÍ DB!)
docker compose logs -f app # live logs
docker compose exec app bash # shell do kontejneru
docker compose exec app php api/bin/migrate.php # CLI uvnitř kontejneru
cmd/docker-build.sh --no-cache # rebuild image (po PHP/JS změnách)Install skript nastaví minimum potřebné k běhu, ale tyto věci si musíš doplnit ručně:
smtp.*— odchozí pošta (jinak nepůjdou faktury / upomínky / reset hesla)captcha.site_key+captcha.secret_key— z dash.cloudflare.com → Turnstileip_allowlist.allow— volitelné, doporučeno mimo lokál
Po editaci stačí docker compose restart app (cfg je bind-mountovaný — žádný rebuild).
docker compose --profile redis up -da v cfg.docker.php nastav redis.enabled => true (host už je redis). Restart appky.
Více detailů (cron uvnitř kontejneru, .env proměnné, troubleshooting): viz cmd/README.md.
Pokud nechceš Docker (např. cílový deploy je IIS / Apache na holém železe).
- PHP 8.5+ s extensions:
pdo,pdo_mysql,mbstring,openssl,json,iconv,gd - MariaDB 10.6+ (doporučeno 11.x)
- Composer 2.x, Node.js 22+, pnpm 10+
- Redis (volitelné — fallback na MariaDB MEMORY)
- Web server: IIS nebo Apache (oba podporované, repo má
web.configi.htaccess)
git clone https://github.com/radekhulan/myinvoice.git myinvoice
cd myinvoice
cp cfg.sample.php cfg.phpOtevři cfg.php a vyplň:
db.user/db.pass— připojení k MariaDBapp.pepper— vygenerujopenssl rand -base64 32smtp.host/user/pass— odchozí poštacaptcha.site_key/secret_key— z dash.cloudflare.com → Turnstileip_allowlist.allow— volitelné, doporučeno v produkci
mysql -u root -p -e "CREATE DATABASE myinvoice CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"cd api && composer install && cd ..
php api/bin/migrate.php
php tools/generateManualHtml.php # vyrenderuje manual/generated/ → /manual route
php tools/exportManualToPdf.php # vygeneruje manual/manual.pdf (Stáhnout PDF v sidebaru)
generateManualHtml.phpje self-contained (nepotřebuje composer/vendor), generuje HTML kapitoly + search index.exportManualToPdf.phpvyžadujeapi/vendor/(mPDF). Spouštět znovu po každém pull repa, aby/manualukazoval aktuální obsah. (V Docker variantě se obě volají build-time uvnitřDockerfile.)
cd web
pnpm install
pnpm build # produkční build do web/dist/
# nebo pro vývoj:
pnpm dev # dev server na :5173V prohlížeči navštiv https://tvoje-domena.cz (nebo http://localhost:5173 v devu)
a projdi 3 kroky setup wizardu:
- Administrátor — jméno, e-mail, heslo (min. 12 znaků, indikátor síly)
- Dodavatel — vyplň IČ a klikni Načíst z ARES (předvyplní název, adresu, DIČ); doplň první bankovní účet (CZK)
- Sample data (volitelné) — checkboxem si necháš vygenerovat 5 klientů, 8 zakázek, 20 faktur a 4 dobropisy pro vyzkoušení systému
Po dokončení tě wizard automaticky přihlásí a přesměruje do aplikace.
V menu Systém → Dodavatelé klikni Nový dodavatel. Stačí zadat IČ → ARES doplní zbytek. V horní liště se objeví přepínač pro snadné přepínání mezi firmami.
Klasická cesta (vyžaduje Composer + Node + pnpm na hostu):
git fetch --tags
git checkout vX.Y.Z
cd api && composer install --no-dev && cd ..
cd web && pnpm install && pnpm build && cd ..
php tools/generateManualHtml.php
php tools/exportManualToPdf.php
php api/bin/migrate.phpBez Composeru / Node (sdílený hosting) — stáhni production bundle z release page (od v3.0.0 se publikuje automaticky při tagu):
TAG=3.0.0
curl -LO https://github.com/radekhulan/myinvoice/releases/download/v$TAG/myinvoice-$TAG.tar.gz
sha256sum -c myinvoice-$TAG.tar.gz.sha256 # ověř integritu
tar -xzf myinvoice-$TAG.tar.gz --strip-components=1 \
--exclude='cfg.php' --exclude='cfg.local.php' \
--exclude='storage' --exclude='private' --exclude='log'
php api/bin/migrate.phpBundle obsahuje hotové api/vendor/, web/dist/, manual/generated/ i
manual.pdf, takže žádný build krok není potřeba.
🔔 Upgrade z UI (admin): v Systém → Aktualizace je tlačítko Aktualizovat, které ti tyto příkazy zobrazí jako copy-paste box (Phase 2 doplní automatický download + extrakci). Footer aplikace zobrazuje aktuální verzi + badge pokud je dostupná novější (denně refreshuje
cron-version-check.php).
php api/bin/migrate.php # spustí pending migrace
php api/bin/migrate.php --status # vypíše stav migrací
php api/bin/setup.php # interaktivní úvodní zřízení (cfg + DB + ARES + admin)
php api/bin/sample.php # vygeneruje testovací data (po setupu)
php api/bin/reset.php # smaže všechna user-data (CLI only, vyžaduje "ANO")
php api/bin/reset.php --yes # bez potvrzení
php api/bin/reset-2fa.php <email> # nouzově vypne 2FA uživateli podle e-mailu
php api/bin/recompute-stats.php # přepočítá agregované statistikyV cmd/ jsou připravené .cmd (Windows) i .sh (Linux) wrappery:
cmd/cron-bank-scan.sh # každých 15 min — scan příchozích GPC výpisů
cmd/cron-send-reminders.sh # 1× denně — upomínky po splatnosti (s --cooldown)
cmd/cron-cleanup.sh # 1× denně — čištění expirovaných session, logů, PDF cacheK tomu api/bin/cron-version-check.php — denní kontrola GitHub Releases
API, cachuje poslední dostupnou verzi + release notes do app_meta. Bez
něj UI v Systém → Aktualizace vidí jen aktuální verzi a admin se nedozví
o nové. Plánuj 1× denně:
# Linux cron (nativní instalace)
0 6 * * * cd /opt/myinvoice && php api/bin/cron-version-check.php
# Docker
0 6 * * * docker compose -f /opt/myinvoice/docker-compose.production.yml exec -T app php api/bin/cron-version-check.phpmkdir -p private/dkim && cd private/dkim
openssl genrsa -out myinvoice.pem 2048
openssl rsa -in myinvoice.pem -pubout -out myinvoice.pub
echo "v=DKIM1; k=rsa; p=$(grep -v '^-----' myinvoice.pub | tr -d '\n')" > dns.txtPublikuj DNS TXT záznam myinvoice._domainkey.tvoje-domena.cz s obsahem dns.txt,
pak v cfg.php přepni smtp.dkim.enabled => true.
| Vrstva | Volba |
|---|---|
| Backend | PHP 8.5 + Slim 4.13 + PHP-DI 7 + Twig 3.10 + Monolog 3.7 + Guzzle 7.9 |
| Frontend | Vue 3.5 + Vite 8 + Tailwind 4 + Pinia 3 + vue-router 5 + vue-i18n 11 + VueUse 14 + axios 1.16 + TypeScript 6 |
| Databáze | MariaDB 10.6+ (doporučeno 11.x) |
| mPDF 8.2 + Twig 3.10 templates | |
| Grafy | Chart.js 4 + vue-chartjs 5 |
| QR | rikudou/czqrpayment 5 (SPAYD), smhg/sepa-qr-data 3 (EPC), chillerlan/php-qrcode 6 |
| Symfony Mailer 8 (SMTP + DKIM) + Symfony Mime 8 | |
| Validace | respect/validation 3, enshrined/svg-sanitize 0.22 |
| Cache / brute-force | Redis přes predis 3 (preferred) / MariaDB MEMORY (fallback) |
| Auth | session-based + CSRF + TOTP 2FA |
| Testy / kvalita | PHPUnit 13, PHPStan 2, php-cs-fixer 3, vue-tsc 3 |
| Build | Composer 2 (PHP), pnpm 10 + Node.js 22+ (JS), GitHub Actions CI |
Pokud chybí cfg.php nebo nelze do DB, frontend i API vrací 503 s instrukcemi
(žádná bílá stránka).
Uživatelský manuál (HTML, lokálně po instalaci): https://tvoje-domena.cz/manual —
17 kapitol (od přihlášení po Pohoda XML export), fulltext search, sidebar TOC.
Zdroj v manual/*.md.
Vývojářská spec v source/:
source/00-README.md— rozcestníksource/01-spec.md— funkční + technická specsource/02-database.md— DB schémasource/03-architecture.md— architektura, deploysource/04-api.md— REST APIsource/05-design.md— design systemsource/06-roadmap.md— plán vývojesource/07-security-audit.md— bezpečnostní audit
Našel jsi zranitelnost? Nehlas přes public Issues — pošli přímo přes
formulář na mywebdesign.cz s předmětem
[SECURITY] MyInvoice.cz. Detailní postup v SECURITY.md.
MIT — LICENSE. Můžeš zdarma používat, modifikovat a redistribuovat (včetně komerčního použití). Jediná podmínka — zachovat copyright + MIT text v derivátech.
Vyvíjí MyWebdesign.cz s.r.o. © 2026.
Software je poskytován „TAK JAK JE", bez záruky jakéhokoli druhu, výslovné nebo předpokládané, včetně, ale nikoliv pouze, záruk obchodovatelnosti, vhodnosti pro určitý účel a neporušení práv třetích osob.
Použití této aplikace je výhradně na vlastní riziko uživatele. Autoři ani přispěvatelé v žádném případě neodpovídají za jakékoli přímé, nepřímé, náhodné, zvláštní, exemplární či následné škody (mimo jiné za ztrátu dat, ušlý zisk, výpadek provozu nebo poškození pověsti) vzniklé v souvislosti s používáním nebo nemožností použití tohoto softwaru, a to ani v případě, že byli o možnosti takových škod informováni.
Aplikace zpracovává fakturační a účetní data — uživatel je výhradně odpovědný za:
- správnost vystavených dokladů podle platné legislativy ČR / EU (zákon o DPH, zákon o účetnictví, GDPR atd.);
- zálohování databáze a souborů v
storage/;- zabezpečení produkčního nasazení (HTTPS, IP allowlist, 2FA, silná hesla, pravidelné aktualizace závislostí);
- dodržení daňových a archivačních povinností (ČR: 10 let pro účetní doklady).
Plné znění viz LICENSE (MIT — sekce „NO WARRANTY").


