Hostati Firefly III na Managed VPS-u znači čuvati svoje račune, budžete i troškove na stroju koji je vaš, a koji naši timovi održavaju ažurnim i nadziru danju i noću. Firefly III slobodan je softver otvorenog koda za upravljanje osobnim financijama, pod licencom AGPL. Ovaj vodič prati njegovu službenu dokumentaciju: instalaciju s Docker Composeom, APP_KEY, HTTPS, prvi račun, cron zadatak, bazu podataka, alat za uvoz podataka, e-poštu, sigurnosne kopije i ažuriranja.
Autor: Simon Vasconcelos Lee
Objavljeno 10. studenoga 2026.Vrijeme čitanja: 13 minuta
docker-compose.yml, .env i .db.env. Lozinku baze odaberite prije prvog pokretanja.APP_KEY ima točno 32 znaka, ostaje tajan i sigurnosno se kopira zajedno s podacima.TRUSTED_PROXIES=* i svoju adresu u APP_URL, a zatim odmah izradite svoj račun: prvi korisnik koji se registrira postaje vlasnik, a registracije se nakon toga zatvaraju.cron iz službene datoteke svake noći pokreće automatske budžete i ponavljajuće transakcije. Prije svakog ažuriranja sigurnosno kopirajte bazu, volumen s privicima i .env.Firefly III alat je za upravljanje osobnim financijama, namijenjen hostanju na vlastitom poslužitelju. Bilježi vaše troškove i prihode, s budžetima, kategorijama i oznakama, kako biste vidjeli kamo odlazi vaš novac. README ga opisuje kao potpuno samostalno hostan i izoliran: ne kontaktira nijedan vanjski poslužitelj dok mu to izričito ne zatražite.
Jedna instanca prima neograničen broj korisnika, a svaki ima financijsku administraciju potpuno odvojenu od ostalih. Dokumentacija opisuje model dijeljenja jedne administracije, koji je trenutačno u razvoju.
Firefly III objavljen je pod licencom GNU Affero General Public License, inačica 3 ili, prema vašem izboru, bilo koja kasnija inačica: to je SPDX identifikator AGPL-3.0-or-later u njegovoj datoteci composer.json. Tekst potvrđuje neograničeno dopuštenje za pokretanje neizmijenjenog programa. Stoga možete koristiti sliku koju objavljuje projekt za sebe, svoju obitelj ili svoju tvrtku, bez kupnje licence.
Članak 13. dodaje uvjet svojstven licenci AGPL: ako program izmijenite, vaša inačica mora svima koji je koriste na daljinu, preko mreže, omogućiti da besplatno dobiju njezin izvorni kod. Data Importer, alat za uvoz podataka, objavljen je pod istom licencom.
Dokumentacija Docker Compose naziva najjednostavnijim načinom instalacije Firefly III. Na poslužitelju s instaliranim Dockerom izradite mapu i u nju preuzmite tri službene datoteke, u izvornom obliku: razmaci u njima su važni, a dokumentacija traži da ih ne kopirate iz preglednika.
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 usluge: app, aplikaciju, db, bazu MariaDB, i cron, planirani zadatak..env sadrži postavke Firefly III, uključujući ključ za šifriranje i pristup bazi..db.env sadrži postavke baze. Zadržite oba naziva: datoteka Compose poziva ih preko env_file.Naredbom navedenom u datoteci .env generirajte dva niza od 32 znaka: jedan za ključ, drugi za lozinku baze.
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 šifrira vaše sesije. Ima točno 32 znaka, bez posebnih znakova poput =, #, < ili >, a datoteka traži da ga čuvate na vrlo sigurnom mjestu.DB_PASSWORD u .env i MYSQL_PASSWORD u .db.env imaju istu vrijednost.SITE_OWNER: vaša adresa, prikazana u nekim porukama o pogrešci korisnicima koji nisu administratori.APP_URL: javna adresa vaše instance. Datoteka objašnjava da služi za provjeru određenih zahtjeva i za izradu poveznica u porukama e-pošte.TZ: vaša vremenska zona, u formatu baze tz, kao u primjeru iz datoteke.Lozinku baze odaberite prije prvog pokretanja. Baza je sprema u svoj volumen čim nastane: ako je kasnije promijenite, više se ne podudara, a Docker FAQ nudi samo jedan izlaz, uklanjanje kontejnera i volumena te ponovni početak.
Službena datoteka objavljuje aplikaciju na portu 80 svih adresa poslužitelja. Da biste je posluživali preko HTTPS-a iza obrnutog proxyja na istom stroju, promijenite ovaj jedan redak u usluzi app:
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 pokretanju kontejner sam izrađuje i migrira bazu. Kada je instalacija gotova, Firefly III vam u zapisniku zahvaljuje na instalaciji: prijeđite na obrnuti proxy.
latest prati posljednje stabilno izdanje. Oznaka poput version-6.7.9 fiksira inačicu; projekt stare oznake uklanja nakon otprilike šest mjeseci.linux/amd64 i linux/arm64.firefly_iii_upload čuva privitke, a firefly_iii_db bazu.Dokumentacija ne navodi potrebnu memoriju; njezin Docker FAQ predlaže PHP_MEMORY_LIMIT=512M ili više ako PHP-u ponestane memorije. Veličina ovisi o broju korisnika, količini transakcija i alatu za uvoz podataka. Na Managed VPS-u opišite nam svoju upotrebu, a mi vam preporučujemo odgovarajuću veličinu.
Firefly III aplikaciju poslužuje preko HTTP-a na portu 8080 unutar kontejnera, a HTTPS je na obrnutom proxyju ispred njega. Aplikacija čita zaglavlje X-Forwarded-Proto kako bi znala da je posjetitelj stigao preko HTTPS-a, pod uvjetom da vjeruje proxyju:
TRUSTED_PROXIES=*
Docker FAQ o tome je jasan: bez TRUSTED_PROXIES=* poveznice ostaju na http, obrasci i grafikoni prestaju raditi, a sigurnosna zaglavlja CSP ne prolaze. Uz port objavljen na 127.0.0.1 aplikaciju dosiže samo proxy samog poslužitelja. Nakon svake izmjene datoteke .env ponovno izradite kontejner:
docker compose up -d --force-recreate app
Caddy sam pribavlja certifikat Let’s Encrypt, a njegova direktiva reverse_proxy prema zadanim postavkama postavlja zaglavlja X-Forwarded-For, X-Forwarded-Proto i X-Forwarded-Host:
finances.example.com {
reverse_proxy 127.0.0.1:8080
}
Ovaj blok preuzima zaglavlja iz FAQ-a o instalaciji i međuspremnike koje on predlaže protiv pogrešaka 502 kada aplikacija vraća token u dugom zaglavlju. Sluša na portu 80 kako bi Certbot postavio HTTPS:
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 zatim postavlja certifikat i brine se za njegovu obnovu:
sudo certbot --nginx
finances.example.com. FAQ napominje da Laravel ne raščlanjuje golu IPv6 adresu u URL-u.Prvi korisnik koji se registrira postaje vlasnik instance. Iz sigurnosnih razloga registracije se potom same zatvaraju: većina ljudi instalira Firefly III samo za sebe.
/settings, otvorite konfiguracijske opcije Firefly III, odznačite opciju koja isključuje registracije i spremite.AUTHENTICATION_GUARD=remote_user_guard Firefly III vjeruje autentifikacijskom proxyju postavljenom ispred, poput Authelije ili Authentika, koji korisnika prosljeđuje u zaglavlju.Nekoliko funkcija radi samo uz planirani zadatak: automatski budžeti, ponavljajuće transakcije, upozorenja o pretplatama i ažurni tečajevi. Docker slika sama ne pokreće cron; službena datoteka za to dodaje malu uslugu cron, koja aplikaciju poziva svaki dan u 3 sata ujutro.
Autentificira se statičnim tokenom. Istom naredbom generirajte treći niz i stavite ga u .env:
STATIC_CRON_TOKEN=
Taj token ima točno 32 znaka: kod inačice 6.7.9 ne prihvaća nijednu drugu duljinu. Evo usluge onako kako je deklarira službena datoteka; dvostruki $$ je namjeran i upućuje na retke TZ i STATIC_CRON_TOKEN datoteke .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
Jedan zadatak dovoljan je za sve korisnike instance. Da biste provjerili je li se izvršio, pročitajte zapisnik kontejnera: svaki zadatak izvještava u JSON-u, s job_fired i job_succeeded.
docker logs firefly_iii_cron
Da biste ga pokrenuli ručno, Docker FAQ traži da to učinite kao korisnik www-data, a ne kao root: FAQ tu zamku povezuje s pogreškama dopuštenja na datotekama zapisnika:
docker exec --user www-data firefly_iii_core /usr/local/bin/php /var/www/html/artisan firefly-iii:cron --force
Službena datoteka isporučuje MariaDB, sa slikom mariadb:lts. Firefly III podržava i PostgreSQL i SQLite, koje birate s DB_CONNECTION u .env:
| Baza | Postavljanje | Sigurnosna kopija |
|---|---|---|
| MariaDB ili MySQL | Usluga db iz službene datoteke; DB_CONNECTION=mysql, port 3306 | Izvoz s mariadb-dump ili volumen baze, uz zaustavljenu uslugu |
| PostgreSQL | DB_CONNECTION=pgsql, port 5432, slika postgres i varijable POSTGRES_* u .db.env | Izvoz s pg_dump ili volumen baze, uz zaustavljenu uslugu |
| SQLite | DB_CONNECTION=sqlite, bez usluge db, s volumenom montiranim na /var/www/html/storage/database | Volumen baze, uz zaustavljenu uslugu |
DB_CONNECTION=pgsql
DB_HOST=db
DB_PORT=5432
Za PostgreSQL dokumentacija usluzi db dodjeljuje i sliku postgres, koja instalira PostgreSQL 18, te njezin volumen montira na /var/lib/postgresql. U .db.env varijable MYSQL_* postaju POSTGRES_USER, POSTGRES_DB i POSTGRES_PASSWORD.
Ovaj izbor napravite prije unosa prvih transakcija. FAQ navodi da prelazak s jedne baze na drugu ostaje moguć, iako ga sam Firefly III ne podržava, te da izvoz iz aplikacije ne prenosi sve podatke.
Firefly III Data Importer zaseban je alat, s vlastitom instalacijom i vlastitim ažuriranjima; njegova inačica 2.3.5 izašla je 23. rujna 2026. Uvozi datoteke CSV i CAMT.053, a može i preuzimati transakcije iz vaših banaka preko vanjskih pružatelja podataka, od kojih svaki ima vlastite uvjete.
Službeni Docker repozitorij isporučuje ga u drugoj datoteci, docker-compose-importer.yml, koja zadržava iste usluge i dodaje importer. Njegove postavke idu u datoteku .importer.env, izrađenu prema datoteci .env.example alata za uvoz. Poslužujte ga pod vlastitim nazivom domene, s portom objavljenim lokalno i drugim blokom proxyja: FAQ traži da ga ne postavljate u poddirektorij.
FIREFLY_III_URL=http://app:8080
VANITY_URL=https://finances.example.com
TRUSTED_PROXIES=*
FIREFLY_III_URL: interna adresa aplikacije, koju alat za uvoz dosiže preko Docker mreže.VANITY_URL: javna adresa Firefly III, ona koju poznaju vaši korisnici./callback i odznačite „Confidential”. Alat za uvoz zatim traži njegov ID klijenta.FIREFLY_III_ACCESS_TOKEN prazan i zadržite FIREFLY_III_URL; svaki se korisnik tada u alat za uvoz prijavljuje vlastitim računom.Prema zadanim postavkama MAIL_MAILER=log poruke upisuje u zapisnike umjesto da ih šalje. Da biste primali obavijesti, poput upozorenja o pretplatama, postavite slanje u .env. Dokumentacija traži da uvijek promijenite MAIL_FROM i SITE_OWNER, inače nijedna poruka e-pošte neće otići.
Na Simafri VPS-u slanje ide preko autentificiranog SMTP releja, na portu 587: adresa računa e-pošte koji već imate ili 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 prihvaća null, ssl, starttls ili tls, ovisno o vašem pružatelju usluge; kod inačice 6.7.9 vraća se na tls kada je vrijednost prazna./settings/notifications šalje probnu poruku e-pošte, nakon što je kontejner ponovno izrađen./slack.Firefly III nema ugrađenu rutinu za sigurnosno kopiranje: dokumentacija preporučuje alate samog sustava i ističe da funkcija izvoza u aplikaciji nije sigurnosna kopija. Uz Docker, evo što treba sačuvati:
| Element | Što čuva | Za sigurnosno kopiranje |
|---|---|---|
Baza (firefly_iii_db) | Račune, transakcije, budžete, pravila i korisnike | Obavezno |
Privici (firefly_iii_upload) | Datoteke priložene transakcijama | Obavezno |
.env | Postavke, a prije svega APP_KEY | Obavezno, šifrirano |
.db.env | Pristupne podatke baze | Obavezno, šifrirano |
docker-compose.yml i .importer.env | Vašu inačicu službenih datoteka | Preporučeno |
Uz MariaDB, mariadb-dump izvozi bazu bez zaustavljanja usluge; njegova opcija --single-transaction daje dosljednu kopiju tablica InnoDB bez njihova zaključavanja. Pokrenuta iz mape s datotekom Compose, naredba pristupne podatke čita iz okruženja kontejnera:
docker exec firefly_iii_db sh -c 'mariadb-dump --single-transaction -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE"' > firefly-$(date +%F).sql
Uz PostgreSQL ista zamisao ide preko pg_dump:
docker exec firefly_iii_db sh -c 'pg_dump -U "$POSTGRES_USER" "$POSTGRES_DB"' > firefly-$(date +%F).sql
Taj izvoz planirajte na poslužitelju barem jednom dnevno i povremeno prorijedite datoteke, koje se nakupljaju.
Dokumentacija svaki volumen arhivira pomoću privremenog kontejnera. Docker Compose nazivima volumena dodaje prefiks s nazivom projekta, a to je prema zadanim postavkama naziv mape: provjerite točne nazive prije pokretanja arhiviranja.
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
Pogrešno napisan naziv volumena ne izaziva pogrešku: Docker pod tim nazivom izrađuje prazan volumen i arhivira ga, čime se prepisuje prethodna sigurnosna kopija. Dokumentacija traži da prije svakog arhiviranja provjerite postoji li volumen.
Čuvajte kopiju datoteke .env i ovih arhiva izvan poslužitelja, šifrirano, jer sadrži ključ i pristupne podatke baze. Postavljene na disk poslužitelja, te datoteke ulaze i u njegove noćne sigurnosne kopije.
Dokumentacija volumen vraća obrnutom naredbom, uz zaustavljenu uslugu; volumen s privicima vraća se na isti način:
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
SQL izvoz ponovno se učitava u bazu dok radi:
docker exec -i firefly_iii_db sh -c 'mariadb -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE"' < firefly-YYYY-MM-DD.sql
Vratite i datoteku .env s njezinim APP_KEY, a zatim ponovno pokrenite i otvorite svoje račune. Dokumentacija to ponavlja nakon svake metode: prvo što treba učiniti sa sigurnosnom kopijom jest vratiti je, kako biste provjerili da radi.
Firefly III sam se nadograđuje, čak i s inačica starih poput 4.7, te migrira svoju bazu pri pokretanju kontejnera. Dokumentacija upozorava da neke nadogradnje uklanjaju ili čiste podatke i traži sigurnosnu kopiju baze i volumena prije svake od njih, osobito pri prijelazu između glavnih inačica. Iz mape s datotekom Compose:
docker compose stop
docker compose pull
docker compose -f docker-compose.yml up -d --remove-orphans
/settings.php artisan correction:rollback-single-migration uklanja posljednji unos migracije bez diranja podataka, a zatim je php artisan migrate ponovno pokreće, unutar kontejnera.Alat za uvoz ažurira se na isti način, prema njegovoj dokumentaciji s docker compose rm -f između zaustavljanja i preuzimanja slika.
Hostanje na vlastitom poslužitelju traži da uz aplikaciju održavate i poslužitelj. Na Managed VPS-u naši timovi preuzimaju poslužitelj i proaktivno prate vašu instancu; Firefly III ostaje vaš softver, sa svojim postavkama i vašim financijskim podacima.
| Tema | Naši timovi | Vi |
|---|---|---|
| Poslužitelj | Ažuriranja sustava i sigurnosti, uključujući intervencije na poslužitelju | Trenutak koji odgovara vašem poslovanju |
| Nadzor | Poslužitelj pod nadzorom 24 sata dnevno, 7 dana u tjednu, s intervencijom bez čekanja vašeg poziva | Čitanje zapisnika vaše instance |
| Firefly III | Proaktivno praćenje: uočene pogreške, usporavanja, cron zadatak i prostor na disku, preporučen ispravak | Njegova instalacija, ažuriranja i postavke, koje primjenjujete vi ili vaš AI asistent |
| Računi i podaci | Poslužitelj koji ih nosi, nadziran i sigurnosno kopiran | Korisnici, dvofaktorska autentifikacija, alat za uvoz podataka i njegovi pružatelji podataka |
| Sigurnosne kopije | Svake noći, šifrirane i čuvane izvan stroja; vraćanje uključeno | Izvozi specifični za Firefly III i zahtjev za vraćanje, kada vam zatreba |
| Migracija | Vaš trenutačni poslužitelj migriran, besplatno | Trenutak prelaska |
Ako želite da naši timovi interveniraju u samoj aplikaciji, ta se usluga naplaćuje po satu ili paušalno, uz procjenu koja vam se priopćuje prije intervencije.
Uz Simafri Managed VPS naši timovi održavaju poslužitelj vaše instance Firefly III ažurnim, nadziru ga danju i noću i interveniraju bez čekanja vašeg poziva; uz to proaktivno prate vašu instancu i preporučuju vam korisne ispravke, koje primjenjujete vi ili vaš AI asistent. Sigurnosne kopije svake se noći šifriraju i čuvaju izvan stroja, njihovo vraćanje je uključeno, a migracija vašeg trenutačnog poslužitelja je besplatna.
Da. Firefly III je pod licencom AGPL-3.0-or-later: možete ga pokretati za sebe, svoju obitelj ili svoju tvrtku bez kupnje licence. Ako ga izmijenite, vaša inačica mora ponuditi izvorni kod onima koji je koriste preko mreže. Ostaje trošak poslužitelja na kojem radi.
Preuzmite tri službene datoteke, docker-compose.yml, .env i .db.env. Prije prvog pokretanja postavite APP_KEY od 32 znaka i istu lozinku u DB_PASSWORD i MYSQL_PASSWORD, a zatim pokrenite docker compose up -d. Nakon toga ispred postavite obrnuti proxy s HTTPS-om.
APP_KEY je ključ za šifriranje sesija. Ima točno 32 znaka, bez posebnih znakova poput = ili #, i ostaje tajan. Dokumentacija traži da ga sigurnosno kopirate zajedno s volumenima: dio je onoga što vam treba za vraćanje instance.
Docker FAQ navodi da u datoteci .env nedostaje TRUSTED_PROXIES=*: bez toga Firefly III zanemaruje zaglavlje X-Forwarded-Proto proxyja, poveznice ostaju na http, a obrasci i grafikoni prestaju raditi. U APP_URL upišite i svoju javnu adresu.
Službena datoteka Compose sadrži uslugu cron koja aplikaciju poziva svaki dan u 3 sata ujutro. U .env postavite STATIC_CRON_TOKEN od točno 32 znaka, a zatim ponovno pokrenite stog. Jedan zadatak služi svim korisnicima instance.
Prvi korisnik koji se registrira postaje vlasnik, a registracije se nakon toga zatvaraju. Vlasnik ih ponovno otvara u /settings, među konfiguracijskim opcijama Firefly III. Svaki korisnik tada ima financijsku administraciju odvojenu od ostalih.
Sigurnosno kopirajte bazu, izvozom s mariadb-dump ili pg_dump, volumen s privicima te datoteke .env i .db.env, šifrirano. Funkcija izvoza u aplikaciji nije sigurnosna kopija. Testirajte vraćanje odmah nakon prve sigurnosne kopije.
Managed VPS pokriva poslužitelj: sustav, sigurnost, nadzor i sigurnosne kopije. Naši timovi proaktivno prate i vašu instancu te vam preporučuju korisne ispravke, koje primjenjujete vi. Intervencija u aplikaciji naplaćuje se po satu ili paušalno.
Simafri
Porazgovarajmo o Vašem projektu
Recite nam u nekoliko riječi što trebate: javljamo Vam se brzo.
Hvala! Vaš upit je poslan. Javit ćemo vam se uskoro.
Više volite e-mail? Pišite nam na support@simafri.com.