Firefly III majutamine Managed VPS-is tähendab, et teie kontod, eelarved ja kulutused asuvad masinas, mis on teie enda ning mida meie meeskonnad hoiavad ajakohasena ja jälgivad päeval ja öösel. Firefly III on AGPL-litsentsiga vaba ja avatud lähtekoodiga isiklike rahaasjade haldur. See juhend järgib selle ametlikku dokumentatsiooni: paigaldus Docker Compose’iga, APP_KEY, HTTPS, esimene konto, cron-ülesanne, andmebaas, andmete importija, e-kirjad, varukoopiad ja uuendused.
Autor: Simon Vasconcelos Lee
Avaldatud 10. novembril 2026Lugemisaeg: 13 minutit
docker-compose.yml, .env ja .db.env. Valige andmebaasi parool enne esimest käivitamist.APP_KEY on täpselt 32 märki pikk, jääb salajaseks ja varundatakse koos andmetega.TRUSTED_PROXIES=* ja oma aadress muutujasse APP_URL ning looge kohe oma konto: esimene registreeruja saab omanikuks ja seejärel registreerimine suletakse.cron käivitab igal ööl automaatsed eelarved ja korduvad tehingud. Varundage andmebaas, üleslaadimiste köide ja .env enne iga uuendust.Firefly III on isiklike rahaasjade haldur, mis on loodud ise majutamiseks. See jälgib teie kulusid ja tulusid eelarvete, kategooriate ja siltide abil, et näeksite, kuhu teie raha läheb. README kirjeldab seda täielikult ise majutatud ja isoleerituna: see ei võta ühendust ühegi välise serveriga enne, kui te seda selgesõnaliselt palute.
Üks instants majutab nii palju kasutajaid, kui soovite, igaühel teistest täielikult eraldatud rahaline haldus. Dokumentatsioon kirjeldab ühe ühise halduse jagamise mudelit, mis on praegu arendamisel.
Firefly III avaldatakse litsentsi GNU Affero General Public License, versioon 3 või teie valikul mis tahes hilisem versioon all: see on SPDX-identifikaator AGPL-3.0-or-later selle failis composer.json. Tekst kinnitab piiramatut luba muutmata programmi käitada. Seega võite projekti avaldatud tõmmist kasutada enda, oma pere või ettevõtte jaoks, ilma et peaksite litsentsi ostma.
Artikkel 13 lisab AGPL-ile omase tingimuse: kui te programmi muudate, peab teie versioon pakkuma kõigile, kes seda kaugelt, võrgu kaudu kasutavad, võimalust saada selle lähtekood tasuta. Data Importer on sama litsentsi all.
Dokumentatsioon nimetab Docker Compose’i Firefly III paigaldamise lihtsaimaks viisiks. Looge serveris, kuhu Docker on paigaldatud, kaust ja laadige sinna alla kolm ametlikku faili toorkujul: nende tühikud on olulised ja dokumentatsioon palub neid mitte brauserist kopeerida.
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 kirjeldab kolme teenust: app on rakendus, db MariaDB andmebaas ja cron ajastatud ülesanne..env sisaldab Firefly III sätteid, sealhulgas krüpteerimisvõtit ja andmebaasi juurdepääsu..db.env sisaldab andmebaasi sätteid. Säilitage mõlemad nimed: Compose’i fail viitab neile võtmega env_file.Looge failis .env antud käsuga kaks 32-märgilist stringi: üks võtme ja teine andmebaasi parooli jaoks.
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 krüpteerib teie seansid. See on täpselt 32 märki pikk, ilma erimärkideta nagu =, #, < või >, ja fail palub seda väga hoolikalt hoida.DB_PASSWORD failis .env ja MYSQL_PASSWORD failis .db.env saavad sama väärtuse.SITE_OWNER: teie aadress, mida kuvatakse mõnes veateates kasutajatele, kes ei ole administraatorid.APP_URL: teie instantsi avalik aadress. Fail selgitab, et seda kasutatakse teatud päringute kontrollimiseks ja e-kirjades olevate linkide koostamiseks.TZ: teie ajavöönd tz-andmebaasi kujul, nagu failis olev näide näitab.Valige andmebaasi parool enne esimest käivitamist. Andmebaas salvestab selle oma köitesse kohe loomisel: kui muudate seda hiljem, ei klapi see enam ja Dockeri KKK pakub ainult ühte väljapääsu, konteinerite ja köidete eemaldamist ning otsast alustamist.
Ametlik fail avaldab rakenduse serveri kõigi aadresside pordil 80. Selle teenindamiseks HTTPS-iga samas masinas asuva pöördproksi taga muutke teenuses app ainult seda rida:
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
Esimesel käivitamisel loob ja migreerib konteiner andmebaasi ise. Kui paigaldus on lõpetatud, tänab Firefly III teid logis paigaldamise eest: minge edasi pöördproksi juurde.
latest järgib viimast stabiilset väljalaset. Silt nagu version-6.7.9 fikseerib versiooni; projekt eemaldab vanad sildid umbes kuue kuu pärast.linux/amd64 ja linux/arm64.firefly_iii_upload hoiab manuseid, firefly_iii_db andmebaasi.Dokumentatsioon ei too välja mälu mahtu; selle Dockeri KKK soovitab PHP_MEMORY_LIMIT=512M või rohkem, kui PHP-l mälu otsa saab. Suurus sõltub kasutajate arvust, tehingute mahust ja andmete importijast. Managed VPS-is kirjeldage meile oma kasutust ja soovitame sobiva suuruse.
Firefly III teenindab rakendust konteineri sees HTTP kaudu pordil 8080 ja HTTPS asub selle ees oleval pöördproksil. Rakendus loeb päist X-Forwarded-Proto, et teada, et külastaja saabus HTTPS-i kaudu, tingimusel et see usaldab proksit:
TRUSTED_PROXIES=*
Dockeri KKK on selles punktis selge: ilma TRUSTED_PROXIES=*-ita jäävad lingid http-le, vormid ja graafikud lakkavad töötamast ning CSP turvapäised ei toimi. Kui port on avaldatud aadressil 127.0.0.1, jõuab rakenduseni ainult serveri enda proksi. Looge konteiner pärast iga faili .env muudatust uuesti:
docker compose up -d --force-recreate app
Caddy hangib Let’s Encrypti sertifikaadi ise ja selle direktiiv reverse_proxy seab vaikimisi päised X-Forwarded-For, X-Forwarded-Proto ja X-Forwarded-Host:
finances.example.com {
reverse_proxy 127.0.0.1:8080
}
See plokk järgib paigaldus-KKK päiseid ja puhvreid, mida see soovitab 502-vigade vastu, kui rakendus tagastab märgi pikas päises. See kuulab pordil 80, et Certbot saaks HTTPS-i paigaldada:
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 paigaldab seejärel sertifikaadi ja hoolitseb selle uuendamise eest:
sudo certbot --nginx
finances.example.com. KKK märgib, et Laravel ei parsi URL-is toorest IPv6-aadressi.Esimene registreeruja saab instantsi omanikuks. Turvameetmena suletakse registreerimine seejärel iseenesest: enamik inimesi paigaldab Firefly III ainult enda jaoks.
/settings, avage Firefly III konfiguratsioonivalikud, eemaldage linnuke registreerimise keelavalt valikult ja salvestage.AUTHENTICATION_GUARD=remote_user_guard usaldab Firefly III ette paigutatud autentimisproksit, näiteks Autheliat või Authentikut, mis edastab kasutaja päises.Mitu funktsiooni töötab ainult ajastatud ülesandega: automaatsed eelarved, korduvad tehingud, tellimuste hoiatused ja ajakohased vahetuskursid. Dockeri tõmmis ei käivita croni ise; ametlik fail lisab selleks väikese teenuse cron, mis kutsub rakendust iga päev kell 3 öösel.
See autendib end staatilise märgiga. Looge sama käsuga kolmas string ja pange see faili .env:
STATIC_CRON_TOKEN=
See märk on täpselt 32 märki pikk: versiooni 6.7.9 kood ei aktsepteeri muud pikkust. Siin on teenus nii, nagu ametlik fail selle deklareerib; kahekordne $$ on tahtlik ja viitab faili .env ridadele TZ ja STATIC_CRON_TOKEN:
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
Ühest ülesandest piisab kõigile instantsi kasutajatele. Et kontrollida, kas see käivitus, lugege konteineri logi: iga ülesanne annab aru JSON-is, väljadega job_fired ja job_succeeded.
docker logs firefly_iii_cron
Käsitsi käivitamiseks palub Dockeri KKK kasutada kasutajat www-data, mitte root: KKK seostab selle lõksu logifailide õiguste vigadega:
docker exec --user www-data firefly_iii_core /usr/local/bin/php /var/www/html/artisan firefly-iii:cron --force
Ametlik fail tuleb MariaDB-ga, tõmmisega mariadb:lts. Firefly III toetab ka PostgreSQL-i ja SQLite’i, mis valitakse failis .env muutujaga DB_CONNECTION:
| Andmebaas | Seadistamine | Varukoopia |
|---|---|---|
| MariaDB või MySQL | Ametliku faili teenus db; DB_CONNECTION=mysql, port 3306 | Eksport käsuga mariadb-dump või andmebaasi köide peatatud teenusega |
| PostgreSQL | DB_CONNECTION=pgsql, port 5432, tõmmis postgres ja muutujad POSTGRES_* failis .db.env | Eksport käsuga pg_dump või andmebaasi köide peatatud teenusega |
| SQLite | DB_CONNECTION=sqlite, ilma teenuseta db, ja köide, mis on paigaldatud kausta /var/www/html/storage/database | Andmebaasi köide peatatud teenusega |
DB_CONNECTION=pgsql
DB_HOST=db
DB_PORT=5432
PostgreSQL-i puhul suunab dokumentatsioon ka teenuse db tõmmisele postgres, mis paigaldab PostgreSQL 18, ja paigaldab selle köite kausta /var/lib/postgresql. Failis .db.env muutuvad muutujad MYSQL_* muutujateks POSTGRES_USER, POSTGRES_DB ja POSTGRES_PASSWORD.
Tehke see valik enne esimeste tehingute sisestamist. KKK ütleb, et ühelt andmebaasilt teisele üleminek jääb võimalikuks, ilma et Firefly III ise seda toetaks, ning et rakenduse eksport ei kanna kõiki andmeid.
Firefly III Data Importer on eraldi tööriist, oma paigalduse ja oma uuendustega; selle versioon 2.3.5 ilmus 23. septembril 2026. See impordib CSV- ja CAMT.053-faile ning oskab ka tehinguid teie pankadest kolmandate osapoolte andmepakkujate kaudu tuua, igaühel oma tingimused.
Ametlik Dockeri hoidla tarnib selle teises failis docker-compose-importer.yml, mis säilitab samad teenused ja lisab teenuse importer. Selle sätted lähevad faili .importer.env, mis võetakse importija failist .env.example. Teenindage seda oma domeeninime all, kohalikult avaldatud pordi ja teise proksiplokiga: KKK palub seda mitte alamkausta paigutada.
FIREFLY_III_URL=http://app:8080
VANITY_URL=https://finances.example.com
TRUSTED_PROXIES=*
FIREFLY_III_URL: rakenduse sisemine aadress, milleni importija jõuab Dockeri võrgu kaudu.VANITY_URL: Firefly III avalik aadress, see, mida teie kasutajad teavad./callback, ja eemaldage linnuke valikult «Confidential». Importija küsib seejärel selle kliendi ID-d.FIREFLY_III_ACCESS_TOKEN tühjaks ja säilitage FIREFLY_III_URL; iga kasutaja logib siis importijasse sisse oma kontoga.Vaikimisi kirjutab MAIL_MAILER=log sõnumid logidesse, selle asemel et neid saata. Teavituste, näiteks tellimuste hoiatuste saamiseks seadistage saatmine failis .env. Dokumentatsioon palub alati muuta MAIL_FROM ja SITE_OWNER, vastasel juhul ei lähe ükski e-kiri välja.
Simafri VPS-is läheb saatmine läbi autenditud SMTP-releesõlme pordis 587: selleks sobib teil juba olemasoleva e-postikonto aadress või 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 aktsepteerib väärtusi null, ssl, starttls või tls, sõltuvalt teie teenusepakkujast; versiooni 6.7.9 kood kasutab tühja väärtuse korral tls./settings/notifications saadab testkirja, kui konteiner on uuesti loodud./slack.Firefly III-l ei ole sisseehitatud varundusrutiini: dokumentatsioon soovitab süsteemi enda tööriistu ja märgib, et rakenduse ekspordifunktsioon ei ole varukoopia. Dockeriga tuleb hoida järgmist:
| Element | Mida see hoiab | Varundada |
|---|---|---|
Andmebaas (firefly_iii_db) | Kontod, tehingud, eelarved, reeglid ja kasutajad | Kohustuslik |
Manused (firefly_iii_upload) | Tehingutele lisatud failid | Kohustuslik |
.env | Sätted ja eelkõige APP_KEY | Kohustuslik, krüpteeritult |
.db.env | Andmebaasi juurdepääsuandmed | Kohustuslik, krüpteeritult |
docker-compose.yml ja .importer.env | Teie versioon ametlikest failidest | Soovitatav |
MariaDB puhul ekspordib mariadb-dump andmebaasi teenust peatamata; selle valik --single-transaction annab InnoDB tabelitest järjepideva koopia neid lukustamata. Compose’i faili kaustast käivitatuna loeb käsk juurdepääsuandmed konteineri keskkonnast:
docker exec firefly_iii_db sh -c 'mariadb-dump --single-transaction -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE"' > firefly-$(date +%F).sql
PostgreSQL-i puhul käib sama mõte läbi pg_dump-i:
docker exec firefly_iii_db sh -c 'pg_dump -U "$POSTGRES_USER" "$POSTGRES_DB"' > firefly-$(date +%F).sql
Ajastage see eksport serveris vähemalt kord päevas ja sorteerige failid, mis kuhjuvad.
Dokumentatsioon arhiveerib iga köite ühekordse konteineriga. Docker Compose lisab köidete nimedele ette projekti nime, mis on vaikimisi kausta nimi: kontrollige täpseid nimesid enne arhiveerimist.
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
Valesti kirjutatud köite nimi ei anna viga: Docker loob selle nime all tühja köite ja arhiveerib selle, mis kirjutab eelmise varukoopia üle. Dokumentatsioon palub enne iga arhiveerimist kontrollida, et köide on olemas.
Hoidke failist .env ja nendest arhiividest koopiat väljaspool serverit, krüpteeritult, sest see kannab võtit ja andmebaasi juurdepääsuandmeid. Serveri kettale pandud failid jõuavad ka selle öistesse varukoopiatesse.
Dokumentatsioon taastab köite vastupidise käsuga, teenus peatatud; manuste köide taastatakse samamoodi:
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-eksport laaditakse tagasi töötavasse andmebaasi:
docker exec -i firefly_iii_db sh -c 'mariadb -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE"' < firefly-YYYY-MM-DD.sql
Taastage ka .env koos selle APP_KEY-ga, käivitage seejärel uuesti ja avage oma kontod. Dokumentatsioon kordab seda iga meetodi järel: varukoopiaga tuleb kõigepealt teha taastamine, et kontrollida, kas see toimib.
Firefly III uuendab end ise, isegi nii vanadest versioonidest nagu 4.7, ja migreerib oma andmebaasi konteineri käivitumisel. Dokumentatsioon hoiatab, et mõned uuendused eemaldavad või puhastavad andmeid, ja palub enne igaüht andmebaasi ja köidete varukoopiat, eriti peaversioonide vahel. Compose’i faili kaustast:
docker compose stop
docker compose pull
docker compose -f docker-compose.yml up -d --remove-orphans
/settings.php artisan correction:rollback-single-migration viimase migratsioonikirje andmeid puutumata ja seejärel käivitab php artisan migrate selle uuesti, konteineri sees.Importija uueneb samamoodi, oma dokumentatsiooni järgi käsuga docker compose rm -f peatamise ja tõmmiste allalaadimise vahel.
Ise majutamine nõuab lisaks rakendusele ka serveri hoidmist. Managed VPS-is võtavad meie meeskonnad serveri enda hoole alla ja jälgivad teie instantsi proaktiivselt; Firefly III jääb teie tarkvaraks oma sätete ja teie rahaliste andmetega.
| Teema | Meie meeskonnad | Teie |
|---|---|---|
| Server | Süsteemi- ja turvauuendused, sekkumised serverisse kaasa arvatud | Hetk, mis sobib teie tegevusele |
| Seire | Serverit jälgitakse ööpäevaringselt, sekkumisega ilma teie kõnet ootamata | Teie instantsi logide lugemine |
| Firefly III | Proaktiivne jälgimine: vead, aeglus, cron-ülesanne ja kettaruum avastatakse, parandus soovitatakse | Selle paigaldus, uuendused ja sätted, mille rakendate teie või teie tehisintellekti assistent |
| Kontod ja andmed | Neid kandev server, jälgitud ja varundatud | Kasutajad, kaksikautentimine, andmete importija ja selle andmepakkujad |
| Varukoopiad | Igal ööl, krüpteeritult ja masinast väljaspool hoituna; taastamine sisaldub | Firefly III enda ekspordid ja taastamistaotlus, kui seda vajate |
| Üleviimine | Teie praeguse serveri üleviimine, tasuta | Ümberlülitamise hetk |
Kui eelistate, et meie meeskonnad sekkuksid rakendusse endasse, arveldatakse see teenus tunni- või kindlahinnaga, hinnapakkumine edastatakse enne sekkumist.
Simafri Managed VPS-iga hoiavad meie meeskonnad teie Firefly III instantsi serveri ajakohasena, jälgivad seda päeval ja öösel ning sekkuvad ilma teie kõnet ootamata; nad jälgivad ka teie instantsi proaktiivselt ja soovitavad teile kasulikud parandused, mille rakendate ise või oma tehisintellekti assistendiga. Varukoopiad krüpteeritakse igal ööl ja hoitakse väljaspool masinat, nende taastamine sisaldub hinnas ning teie praeguse serveri üleviimine on tasuta.
Jah. Firefly III on litsentsi AGPL-3.0-or-later all: võite seda käitada enda, oma pere või ettevõtte jaoks, ilma et peaksite litsentsi ostma. Kui te seda muudate, peab teie versioon pakkuma oma lähtekoodi neile, kes seda võrgu kaudu kasutavad. Jääb ainult seda käitava serveri hind.
Laadige alla kolm ametlikku faili: docker-compose.yml, .env ja .db.env. Seadke 32-märgiline APP_KEY ning sama parool muutujatesse DB_PASSWORD ja MYSQL_PASSWORD enne esimest käivitamist ja käivitage seejärel docker compose up -d. Pange siis selle ette HTTPS-iga pöördproksi.
APP_KEY on seansside krüpteerimisvõti. See on täpselt 32 märki pikk, ilma erimärkideta nagu = või #, ja jääb salajaseks. Dokumentatsioon palub seda varundada koos köidetega: see on osa sellest, mida instantsi taastamiseks vajate.
Dockeri KKK järgi puudub failist .env TRUSTED_PROXIES=*: ilma selleta eirab Firefly III proksi päist X-Forwarded-Proto, lingid jäävad http-le ning vormid ja graafikud lakkavad töötamast. Seadke ka oma avalik aadress muutujasse APP_URL.
Ametlik Compose’i fail sisaldab teenust cron, mis kutsub rakendust iga päev kell 3 öösel. Seadke failis .env täpselt 32-märgiline STATIC_CRON_TOKEN ja taaskäivitage seejärel teenuste komplekt. Üks ülesanne teenindab kõiki instantsi kasutajaid.
Esimene registreeruja saab omanikuks ja seejärel registreerimine suletakse. Omanik avab selle uuesti aadressil /settings, Firefly III konfiguratsioonivalikute all. Iga kasutaja hoiab siis teistest eraldatud rahalist haldust.
Varundage andmebaas mariadb-dump- või pg_dump-ekspordiga, manuste köide ning failid .env ja .db.env, krüpteeritult. Rakenduse ekspordifunktsioon ei ole varukoopia. Testige taastamist kohe pärast esimest varundamist.
Managed VPS katab serveri: süsteem, turvalisus, seire ja varukoopiad. Meie meeskonnad jälgivad ka teie instantsi proaktiivselt ja soovitavad teile kasulikud parandused, mille rakendate teie. Sekkumine rakendusse arveldatakse tunni- või kindlahinnaga.
Simafri
Räägime teie kavatsusest
Öelge meile paari sõnaga, mida vajate: vastame teile kiiresti.
Aitäh! Teie päring on saadetud. Võtame teiega peagi ühendust.
Eelistate e-posti? Kirjutage meile aadressil support@simafri.com.