Hostovanie Firefly III na Managed VPS znamená, že vaše účty, rozpočty a výdavky sú uložené na vlastnom stroji, ktorý naše tímy udržiavajú aktuálny a dohliadajú naň vo dne v noci. Firefly III je slobodný softvér na správu osobných financií pod licenciou AGPL. Tento sprievodca postupuje podľa jeho oficiálnej dokumentácie: inštalácia cez Docker Compose, APP_KEY, HTTPS, prvý účet, úloha cron, databáza, importér údajov, e-maily, zálohy a aktualizácie.
Autor: Simon Vasconcelos Lee
Publikované 10. novembra 2026Čas čítania: 13 minút
docker-compose.yml, .env a .db.env. Heslo databázy si zvoľte ešte pred prvým spustením.APP_KEY má presne 32 znakov, zostáva tajný a zálohuje sa spolu s údajmi.TRUSTED_PROXIES=* a svoju adresu v APP_URL a hneď si vytvorte účet: prvý zaregistrovaný používateľ sa stáva vlastníkom a registrácie sa potom zatvoria.cron z oficiálneho súboru každú noc spúšťa automatické rozpočty a opakované transakcie. Pred každou aktualizáciou zálohujte databázu, zväzok s prílohami a .env.Firefly III je správca osobných financií určený na vlastnú prevádzku. Sleduje vaše výdavky a príjmy pomocou rozpočtov, kategórií a štítkov, aby ste videli, kam idú vaše peniaze. README ho opisuje ako úplne samostatne hostovaný a izolovaný: nekontaktuje žiadny externý server, kým mu to výslovne nepovolíte.
Jedna inštancia hostí ľubovoľný počet používateľov, každého s finančnou administráciou úplne oddelenou od ostatných. Dokumentácia opisuje model na zdieľanie jednej administrácie, ktorý je momentálne vo vývoji.
Firefly III vychádza pod licenciou GNU Affero General Public License, verzia 3 alebo podľa vašej voľby akákoľvek neskoršia verzia: to je identifikátor SPDX AGPL-3.0-or-later v jeho súbore composer.json. Text potvrdzuje neobmedzené povolenie spúšťať nezmenený program. Obraz zverejnený projektom teda môžete používať pre seba, svoju rodinu alebo svoju firmu bez licencie, ktorú by ste museli kupovať.
Článok 13 dopĺňa podmienku vlastnú AGPL: ak program upravíte, vaša verzia musí všetkým, ktorí ju používajú na diaľku, cez sieť, ponúknuť možnosť získať jej zdrojový kód zadarmo. Importér údajov vychádza pod tou istou licenciou.
Dokumentácia označuje Docker Compose za najjednoduchší spôsob inštalácie Firefly III. Na serveri s nainštalovaným Dockerom vytvorte priečinok a stiahnite doň tri oficiálne súbory v surovej podobe: na medzerách v nich záleží a dokumentácia žiada nekopírovať ich z prehliadača.
mkdir firefly-iii && cd firefly-iii
curl -o docker-compose.yml https://raw.githubusercontent.com/firefly-iii/docker/main/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/firefly-iii/firefly-iii/main/.env.example
curl -o .db.env https://raw.githubusercontent.com/firefly-iii/docker/main/database.env
docker-compose.yml opisuje tri služby: app, samotnú aplikáciu, db, databázu MariaDB, a cron, naplánovanú úlohu..env obsahuje nastavenia Firefly III vrátane šifrovacieho kľúča a prístupu k databáze..db.env obsahuje nastavenia databázy. Ponechajte oba názvy: súbor Compose sa na ne odvoláva cez env_file.Príkazom uvedeným v súbore .env vygenerujte dva reťazce s 32 znakmi: jeden pre kľúč, druhý pre heslo databázy.
head /dev/urandom | LC_ALL=C tr -dc 'A-Za-z0-9' | head -c 32 && echo
SITE_OWNER=you@example.com
APP_KEY=
DB_PASSWORD=
APP_URL=https://finances.example.com
MYSQL_PASSWORD=
APP_KEY šifruje vaše relácie. Má presne 32 znakov, bez špeciálnych znakov ako =, #, < alebo >, a súbor žiada uchovávať ho veľmi bezpečne.DB_PASSWORD v .env a MYSQL_PASSWORD v .db.env majú rovnakú hodnotu.SITE_OWNER: vaša adresa, zobrazená pri niektorých chybách používateľom, ktorí nie sú správcami.APP_URL: verejná adresa vašej inštancie. Súbor vysvetľuje, že slúži na overovanie niektorých požiadaviek a na tvorbu odkazov v e-mailoch.TZ: vaše časové pásmo vo formáte databázy tz, ako ukazuje príklad v súbore.Heslo databázy si zvoľte pred prvým spustením. Databáza si ho uloží do svojho zväzku hneď pri vytvorení: ak ho neskôr zmeníte, prestane sedieť a Docker FAQ ponúka jediné východisko, odstrániť kontajnery aj zväzky a začať odznova.
Oficiálny súbor publikuje aplikáciu na porte 80 všetkých adries servera. Ak ju chcete obsluhovať cez HTTPS za reverznou proxy na tom istom stroji, zmeňte v službe app tento jediný riadok:
ports:
- 127.0.0.1:8080:8080
docker compose -f docker-compose.yml up -d --pull=always
docker compose -f docker-compose.yml logs -f
Pri prvom spustení kontajner sám vytvorí databázu a vykoná jej migrácie. Keď je inštalácia hotová, Firefly III vám v zázname poďakuje za inštaláciu: prejdite na reverznú proxy.
latest sleduje poslednú stabilnú verziu. Značka ako version-6.7.9 pripne verziu; staré značky projekt odstraňuje približne po šiestich mesiacoch.linux/amd64 a linux/arm64.firefly_iii_upload uchováva prílohy, firefly_iii_db databázu.Dokumentácia neuvádza nároky na pamäť; jej Docker FAQ odporúča PHP_MEMORY_LIMIT=512M alebo viac, ak PHP dôjde pamäť. Veľkosť závisí od počtu používateľov, objemu transakcií a importéra údajov. Na spravovanom VPS (Managed VPS) nám opíšte svoje použitie a odporučíme vám vhodnú veľkosť.
Firefly III obsluhuje aplikáciu cez HTTP na porte 8080 vnútri kontajnera a HTTPS zabezpečuje reverzná proxy pred ním. Aplikácia číta hlavičku X-Forwarded-Proto, aby vedela, že návštevník prišiel cez HTTPS, pokiaľ proxy dôveruje:
TRUSTED_PROXIES=*
Docker FAQ je v tomto bode jednoznačné: bez TRUSTED_PROXIES=* zostávajú odkazy na http, formuláre a grafy prestávajú fungovať a bezpečnostné hlavičky CSP zlyhávajú. S portom publikovaným na 127.0.0.1 sa k aplikácii dostane len proxy samotného servera. Po každej zmene súboru .env kontajner znova vytvorte:
docker compose up -d --force-recreate app
Caddy získa certifikát Let’s Encrypt sám a jeho direktíva reverse_proxy predvolene nastavuje hlavičky X-Forwarded-For, X-Forwarded-Proto a X-Forwarded-Host:
finances.example.com {
reverse_proxy 127.0.0.1:8080
}
Tento blok preberá hlavičky z inštalačného FAQ a vyrovnávacie pamäte, ktoré odporúča proti chybám 502, keď aplikácia vracia token v dlhej hlavičke. Počúva na porte 80, aby HTTPS mohol zapnúť Certbot:
server {
listen 80;
listen [::]:80;
server_name finances.example.com;
client_max_body_size 64M;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 300s;
}
}
Certbot potom nainštaluje certifikát a postará sa o jeho obnovu:
sudo certbot --nginx
finances.example.com. FAQ upozorňuje, že Laravel nespracuje holú adresu IPv6 v URL.Prvý používateľ, ktorý sa zaregistruje, sa stáva vlastníkom inštancie. Z bezpečnostných dôvodov sa registrácie potom samy zatvoria: väčšina ľudí inštaluje Firefly III len pre seba.
/settings, otvorte konfiguračné voľby Firefly III, zrušte zaškrtnutie voľby, ktorá vypína registrácie, a uložte.AUTHENTICATION_GUARD=remote_user_guard Firefly III dôveruje overovacej proxy umiestnenej pred ním, napríklad Authelia alebo Authentik, ktorá mu odovzdá používateľa v hlavičke.Viacero funkcií funguje len s naplánovanou úlohou: automatické rozpočty, opakované transakcie, upozornenia na predplatné a aktuálne výmenné kurzy. Obraz Docker sám cron nespúšťa; oficiálny súbor na to pridáva malú službu cron, ktorá aplikáciu volá každý deň o 3:00.
Overuje sa statickým tokenom. Tým istým príkazom vygenerujte tretí reťazec a vložte ho do .env:
STATIC_CRON_TOKEN=
Tento token má presne 32 znakov: kód verzie 6.7.9 inú dĺžku neprijme. Takto službu deklaruje oficiálny súbor; zdvojené $$ je zámerné a odkazuje na riadky TZ a STATIC_CRON_TOKEN súboru .env:
cron:
image: alpine
restart: always
container_name: firefly_iii_cron
env_file: .env
init: true
command: ["sh", "-c", "apk add tzdata && \
(ln -s /usr/share/zoneinfo/$$TZ /etc/localtime || true) && \
echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/$$STATIC_CRON_TOKEN;echo\" \
| crontab - && \
exec crond -f -L /dev/stdout"]
networks:
- firefly_iii
depends_on:
- app
Jedna úloha stačí pre všetkých používateľov inštancie. Či prebehla, zistíte zo záznamu kontajnera: každá úloha sa ohlási v JSON, s job_fired a job_succeeded.
docker logs firefly_iii_cron
Ak ju chcete spustiť ručne, Docker FAQ žiada použiť používateľa www-data, a nie root: s touto nástrahou FAQ spája chyby oprávnení na súboroch záznamov:
docker exec --user www-data firefly_iii_core /usr/local/bin/php /var/www/html/artisan firefly-iii:cron --force
Oficiálny súbor dodáva MariaDB s obrazom mariadb:lts. Firefly III podporuje aj PostgreSQL a SQLite, ktoré sa volia cez DB_CONNECTION v .env:
| Databáza | Zavedenie | Záloha |
|---|---|---|
| MariaDB alebo MySQL | Služba db z oficiálneho súboru; DB_CONNECTION=mysql, port 3306 | Export pomocou mariadb-dump alebo zväzok databázy pri zastavenej službe |
| PostgreSQL | DB_CONNECTION=pgsql, port 5432, obraz postgres a premenné POSTGRES_* v .db.env | Export pomocou pg_dump alebo zväzok databázy pri zastavenej službe |
| SQLite | DB_CONNECTION=sqlite, žiadna služba db a zväzok pripojený na /var/www/html/storage/database | Zväzok databázy pri zastavenej službe |
DB_CONNECTION=pgsql
DB_HOST=db
DB_PORT=5432
Pre PostgreSQL dokumentácia nasmeruje službu db aj na obraz postgres, ktorý nainštaluje PostgreSQL 18, a jej zväzok pripojí na /var/lib/postgresql. V .db.env sa z premenných MYSQL_* stanú POSTGRES_USER, POSTGRES_DB a POSTGRES_PASSWORD.
Túto voľbu urobte skôr, než zadáte prvé transakcie. FAQ uvádza, že prechod z jednej databázy na inú je možný, hoci ho samotný Firefly III nepodporuje, a že export aplikácie neprenáša všetky údaje.
Firefly III Data Importer je samostatný nástroj s vlastnou inštaláciou a vlastnými aktualizáciami; jeho verzia 2.3.5 vyšla 23. septembra 2026. Importuje súbory CSV a CAMT.053 a vie aj sťahovať transakcie z vašich bánk cez externých poskytovateľov údajov, každého s vlastnými podmienkami.
Oficiálny repozitár Docker ho dodáva v druhom súbore, docker-compose-importer.yml, ktorý zachováva tie isté služby a pridáva importer. Jeho nastavenia patria do súboru .importer.env, prevzatého zo súboru .env.example importéra. Obsluhujte ho pod vlastným doménovým menom, s portom publikovaným lokálne a druhým blokom proxy: FAQ žiada neumiestňovať ho do podpriečinka.
FIREFLY_III_URL=http://app:8080
VANITY_URL=https://finances.example.com
TRUSTED_PROXIES=*
FIREFLY_III_URL: interná adresa aplikácie, na ktorú sa importér dostane cez sieť Docker.VANITY_URL: verejná adresa Firefly III, tá, ktorú poznajú vaši používatelia./callback, a zrušte zaškrtnutie „Confidential“. Importér si potom vypýta jeho ID klienta.FIREFLY_III_ACCESS_TOKEN prázdny a ponechajte FIREFLY_III_URL; každý používateľ sa potom do importéra prihlási vlastným účtom.Predvolene MAIL_MAILER=log zapisuje správy do záznamov namiesto ich odosielania. Ak chcete dostávať upozornenia, napríklad na predplatné, nastavte odosielanie v .env. Dokumentácia žiada vždy zmeniť MAIL_FROM a SITE_OWNER, inak žiadny e-mail neodíde.
Na VPS Simafri odosielanie prechádza cez overené relé SMTP na porte 587: adresa poštového účtu, ktorý už máte, alebo Simafri Suite.
MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_FROM=finances@example.com
MAIL_USERNAME=finances@example.com
MAIL_PASSWORD=account_password
MAIL_ENCRYPTION=tls
MAIL_ENCRYPTION prijíma null, ssl, starttls alebo tls podľa vášho poskytovateľa; kód verzie 6.7.9 pri prázdnej hodnote použije tls./settings/notifications odošle testovací e-mail, keď je kontajner znova vytvorený./slack.Firefly III nemá zabudovaný postup zálohovania: dokumentácia odporúča nástroje samotného systému a upozorňuje, že funkcia exportu v aplikácii nie je záloha. S Dockerom treba uchovávať toto:
| Prvok | Čo uchováva | Zálohovať |
|---|---|---|
Databáza (firefly_iii_db) | Účty, transakcie, rozpočty, pravidlá a používatelia | Povinne |
Prílohy (firefly_iii_upload) | Súbory priložené k transakciám | Povinne |
.env | Nastavenia, a predovšetkým APP_KEY | Povinne, šifrovane |
.db.env | Prístupové údaje k databáze | Povinne, šifrovane |
docker-compose.yml a .importer.env | Vaša verzia oficiálnych súborov | Odporúčané |
Pri MariaDB exportuje mariadb-dump databázu bez zastavenia služby; jeho voľba --single-transaction dáva konzistentnú kópiu tabuliek InnoDB bez ich zamknutia. Príkaz spustený z priečinka so súborom Compose načíta prístupové údaje z prostredia kontajnera:
docker exec firefly_iii_db sh -c 'mariadb-dump --single-transaction -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE"' > firefly-$(date +%F).sql
Pri PostgreSQL sa ten istý postup robí cez pg_dump:
docker exec firefly_iii_db sh -c 'pg_dump -U "$POSTGRES_USER" "$POSTGRES_DB"' > firefly-$(date +%F).sql
Tento export naplánujte na serveri aspoň raz denne a súbory, ktoré sa hromadia, prebierajte.
Dokumentácia archivuje každý zväzok pomocou jednorazového kontajnera. Docker Compose pridáva pred názvy zväzkov názov projektu, ktorým je predvolene názov priečinka: pred spustením archivácie si overte presné názvy.
docker volume ls
docker compose stop
docker run --rm -v "firefly-iii_firefly_iii_db:/tmp" -v "$HOME/backups/firefly:/backup" \
ubuntu tar -czvf /backup/firefly_db.tar /tmp
docker run --rm -v "firefly-iii_firefly_iii_upload:/tmp" -v "$HOME/backups/firefly:/backup" \
ubuntu tar -czvf /backup/firefly_upload.tar /tmp
docker compose start
Chybne napísaný názov zväzku nevyvolá žiadnu chybu: Docker pod týmto názvom vytvorí prázdny zväzok a zarchivuje ho, čím prepíše predchádzajúcu zálohu. Dokumentácia žiada pred každou archiváciou overiť, že zväzok existuje.
Kópiu súboru .env a týchto archívov uchovávajte mimo servera, šifrovane, keďže obsahuje kľúč a prístupové údaje k databáze. Uložené na disku servera sa tieto súbory dostanú aj do jeho nočných záloh.
Dokumentácia obnovuje zväzok opačným príkazom pri zastavenej službe; zväzok s prílohami sa obnovuje rovnako:
docker run --rm -v "firefly-iii_firefly_iii_db:/recover" -v "$HOME/backups/firefly:/backup" \
ubuntu tar -xvf /backup/firefly_db.tar -C /recover --strip 1
Export SQL sa načíta späť do bežiacej databázy:
docker exec -i firefly_iii_db sh -c 'mariadb -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE"' < firefly-YYYY-MM-DD.sql
Obnovte aj .env s jeho APP_KEY, potom znova spustite a otvorte svoje účty. Dokumentácia to opakuje pri každej metóde: prvé, čo so zálohou urobiť, je obnoviť ju a overiť tak, že funguje.
Firefly III sa aktualizuje sám, dokonca aj z verzií starých ako 4.7, a pri štarte kontajnera vykoná migrácie svojej databázy. Dokumentácia upozorňuje, že niektoré aktualizácie údaje odstraňujú alebo čistia, a pred každou z nich žiada zálohu databázy a zväzkov, najmä pri prechode medzi hlavnými verziami. Z priečinka so súborom Compose:
docker compose stop
docker compose pull
docker compose -f docker-compose.yml up -d --remove-orphans
/settings.php artisan correction:rollback-single-migration poslednú položku migrácie bez zásahu do údajov a php artisan migrate ju potom spustí znova, vnútri kontajnera.Importér sa aktualizuje rovnako, podľa jeho dokumentácie s docker compose rm -f medzi zastavením a stiahnutím obrazov.
Hostovanie na vlastnom serveri vyžaduje popri aplikácii starať sa aj o server. Na Managed VPS preberajú server naše tímy a vašu inštanciu proaktívne sledujú; Firefly III zostáva vaším softvérom, s vašimi nastaveniami a finančnými údajmi.
| Téma | Naše tímy | Vy |
|---|---|---|
| Server | Aktualizácie systému a zabezpečenia, vrátane zásahov na serveri | Čas, ktorý vyhovuje vašej činnosti |
| Dohľad | Server sledovaný 24 hodín denne, 7 dní v týždni, so zásahom bez čakania na vaše zavolanie | Čítanie záznamov vašej inštancie |
| Firefly III | Proaktívne sledovanie: chyby, spomalenia, úloha cron a miesto na disku, s odporúčanou opravou | Jeho inštalácia, aktualizácie a nastavenia, ktoré zapracujete vy alebo váš AI asistent |
| Účty a údaje | Server, ktorý ich nesie, sledovaný a zálohovaný | Používatelia, dvojfaktorové overenie, importér údajov a jeho poskytovatelia údajov |
| Zálohy | Každú noc, šifrované a uchovávané mimo stroja; obnova je v cene | Exporty špecifické pre Firefly III a žiadosť o obnovu, keď ju potrebujete |
| Migrácia | Váš súčasný server prenesený zdarma | Čas prepnutia |
Ak by ste uprednostnili, aby naše tímy zasiahli priamo v aplikácii, táto služba sa fakturuje hodinovo alebo paušálne, s cenovou ponukou oznámenou pred zásahom.
S Managed VPS od Simafri udržiavajú naše tímy server vašej inštancie Firefly III aktuálny, sledujú ho vo dne v noci a zasahujú bez čakania na vaše zavolanie; vašu inštanciu navyše proaktívne sledujú a odporúčajú vám užitočné opravy, ktoré zapracujete vy alebo váš AI asistent. Zálohy sa každú noc šifrujú a uchovávajú mimo stroja, ich obnova je v cene a migrácia vášho súčasného servera je zdarma.
Áno. Firefly III vychádza pod licenciou AGPL-3.0-or-later: môžete ho prevádzkovať pre seba, svoju rodinu alebo svoju firmu bez licencie, ktorú by ste museli kupovať. Ak ho upravíte, vaša verzia musí ponúknuť zdrojový kód tým, ktorí ju používajú cez sieť. Zostáva náklad na server, na ktorom beží.
Stiahnite tri oficiálne súbory, docker-compose.yml, .env a .db.env. Pred prvým spustením nastavte APP_KEY s 32 znakmi a rovnaké heslo v DB_PASSWORD a MYSQL_PASSWORD, potom spustite docker compose up -d. Nakoniec pred aplikáciu umiestnite reverznú proxy s HTTPS.
APP_KEY je šifrovací kľúč relácií. Má presne 32 znakov, bez špeciálnych znakov ako = alebo #, a zostáva tajný. Dokumentácia žiada zálohovať ho spolu so zväzkami: patrí k tomu, čo potrebujete na obnovu inštancie.
Docker FAQ uvádza, že v súbore .env chýba TRUSTED_PROXIES=*: bez neho Firefly III ignoruje hlavičku X-Forwarded-Proto od proxy, odkazy zostávajú na http a formuláre a grafy prestávajú fungovať. Uveďte tiež svoju verejnú adresu v APP_URL.
Oficiálny súbor Compose obsahuje službu cron, ktorá volá aplikáciu každý deň o 3:00. Nastavte v .env STATIC_CRON_TOKEN s presne 32 znakmi a potom reštartujte celý balík služieb. Jedna úloha slúži všetkým používateľom inštancie.
Prvý zaregistrovaný používateľ sa stáva vlastníkom a registrácie sa potom zatvoria. Vlastník ich znova otvorí v /settings, v konfiguračných voľbách Firefly III. Každý používateľ potom má finančnú administráciu oddelenú od ostatných.
Zálohujte databázu exportom cez mariadb-dump alebo pg_dump, zväzok s prílohami a súbory .env a .db.env, šifrovane. Funkcia exportu v aplikácii nie je záloha. Obnovu otestujte hneď po prvej zálohe.
Managed VPS pokrýva server: systém, zabezpečenie, dohľad a zálohy. Naše tímy vašu inštanciu aj proaktívne sledujú a odporúčajú vám užitočné opravy, ktoré zapracujete vy. Zásah v samotnej aplikácii sa fakturuje hodinovo alebo paušálne.
Simafri
Porozprávajme sa o vašom zámere
Povedzte nám v pár slovách, čo potrebujete: rýchlo sa vám ozveme.
Ďakujeme! Vaša žiadosť bola odoslaná. Čoskoro sa vám ozveme.
Máte radšej e-mail? Napíšte nám na support@simafri.com.