Firefly III majutamine Managed VPS-is: teie rahaasjad teie enda serveris

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.

Simon Vasconcelos Lee Autor: Avaldatud 10. novembril 2026Lugemisaeg: 13 minutit

Kõik juhendid

Lühidalt

  1. Litsents AGPL-3.0-or-later lubab Firefly III-t vabalt käitada; kui te seda muudate, pakute oma versiooni lähtekoodi neile, kes seda kasutavad.
  2. Paigaldage see kolmest ametlikust failist: docker-compose.yml, .env ja .db.env. Valige andmebaasi parool enne esimest käivitamist.
  3. APP_KEY on täpselt 32 märki pikk, jääb salajaseks ja varundatakse koos andmetega.
  4. HTTPS-iga pöördproksi taga seadke TRUSTED_PROXIES=* ja oma aadress muutujasse APP_URL ning looge kohe oma konto: esimene registreeruja saab omanikuks ja seejärel registreerimine suletakse.
  5. Ametliku faili teenus cron käivitab igal ööl automaatsed eelarved ja korduvad tehingud. Varundage andmebaas, üleslaadimiste köide ja .env enne iga uuendust.

Mida Firefly III teeb

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.

Mida AGPL-litsents lubab

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.

Paigaldus Docker Compose’iga

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.

Terminal
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

Sätted, mida muuta enne esimest käivitamist

Looge failis .env antud käsuga kaks 32-märgilist stringi: üks võtme ja teine andmebaasi parooli jaoks.

Terminal
head /dev/urandom | LC_ALL=C tr -dc 'A-Za-z0-9' | head -c 32 && echo
.env, muudetavad read
SITE_OWNER=you@example.com
APP_KEY=
DB_PASSWORD=
APP_URL=https://finances.example.com
.db.env
MYSQL_PASSWORD=

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.

Kohalikult avaldatud port

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:

docker-compose.yml, teenuses app
ports:
  - 127.0.0.1:8080:8080
Terminal
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.

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.

HTTPS ja pöördproksi

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:

.env
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:

Terminal
docker compose up -d --force-recreate app

Caddy-ga

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:

Caddyfile
finances.example.com {
  reverse_proxy 127.0.0.1:8080
}

Nginxi ja Certbotiga

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:

Nginxi plokk
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:

Terminal
sudo certbot --nginx

Esimene konto ja registreerimine

Esimene registreeruja saab instantsi omanikuks. Turvameetmena suletakse registreerimine seejärel iseenesest: enamik inimesi paigaldab Firefly III ainult enda jaoks.

  1. Avage oma HTTPS-aadress kohe, kui proksi vastab, ja looge oma konto: see saab omaniku rolli.
  2. Lülitage oma profiilis sisse kaksikautentimine ja hoidke alles kaheksa varukoodi, mida see näitab.
  3. Instantsi avamiseks teistele inimestele minge aadressile /settings, avage Firefly III konfiguratsioonivalikud, eemaldage linnuke registreerimise keelavalt valikult ja salvestage.

Cron-ülesanne

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:

.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:

docker-compose.yml, teenus cron
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.

Terminal
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:

Terminal
docker exec --user www-data firefly_iii_core /usr/local/bin/php /var/www/html/artisan firefly-iii:cron --force

MariaDB, PostgreSQL või SQLite

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:

AndmebaasSeadistamineVarukoopia
MariaDB või MySQLAmetliku faili teenus db; DB_CONNECTION=mysql, port 3306Eksport käsuga mariadb-dump või andmebaasi köide peatatud teenusega
PostgreSQLDB_CONNECTION=pgsql, port 5432, tõmmis postgres ja muutujad POSTGRES_* failis .db.envEksport käsuga pg_dump või andmebaasi köide peatatud teenusega
SQLiteDB_CONNECTION=sqlite, ilma teenuseta db, ja köide, mis on paigaldatud kausta /var/www/html/storage/databaseAndmebaasi köide peatatud teenusega
.env (PostgreSQL)
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.

Data Importer

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.

.importer.env, muudetavad read
FIREFLY_III_URL=http://app:8080
VANITY_URL=https://finances.example.com
TRUSTED_PROXIES=*

E-kirjad: SMTP seadistus

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.

.env
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

Varukoopiad

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:

ElementMida see hoiabVarundada
Andmebaas (firefly_iii_db)Kontod, tehingud, eelarved, reeglid ja kasutajadKohustuslik
Manused (firefly_iii_upload)Tehingutele lisatud failidKohustuslik
.envSätted ja eelkõige APP_KEYKohustuslik, krüpteeritult
.db.envAndmebaasi juurdepääsuandmedKohustuslik, krüpteeritult
docker-compose.yml ja .importer.envTeie versioon ametlikest failidestSoovitatav

Andmebaas, teenus töötamas

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:

Terminal
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:

Terminal
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.

Köited, teenus peatatud

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.

Terminal, kaustas firefly-iii
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.

Taastamine

Dokumentatsioon taastab köite vastupidise käsuga, teenus peatatud; manuste köide taastatakse samamoodi:

Terminal
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:

Terminal
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.

Uuendused ja migratsioonid

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:

Terminal
docker compose stop
docker compose pull
docker compose -f docker-compose.yml up -d --remove-orphans

Importija uueneb samamoodi, oma dokumentatsiooni järgi käsuga docker compose rm -f peatamise ja tõmmiste allalaadimise vahel.

Kes mida teeb Managed VPS-is

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.

TeemaMeie meeskonnadTeie
ServerSüsteemi- ja turvauuendused, sekkumised serverisse kaasa arvatudHetk, mis sobib teie tegevusele
SeireServerit jälgitakse ööpäevaringselt, sekkumisega ilma teie kõnet ootamataTeie instantsi logide lugemine
Firefly IIIProaktiivne jälgimine: vead, aeglus, cron-ülesanne ja kettaruum avastatakse, parandus soovitatakseSelle paigaldus, uuendused ja sätted, mille rakendate teie või teie tehisintellekti assistent
Kontod ja andmedNeid kandev server, jälgitud ja varundatudKasutajad, kaksikautentimine, andmete importija ja selle andmepakkujad
VarukoopiadIgal ööl, krüpteeritult ja masinast väljaspool hoituna; taastamine sisaldubFirefly III enda ekspordid ja taastamistaotlus, kui seda vajate
ÜleviimineTeie 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.

Firefly III teie eest hoitud serveris

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.

Vaadake Managed VPS

Korduma kippuvad küsimused

Kas Firefly III 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.

Kuidas paigaldada Firefly III Docker Compose’iga?

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.

Milleks on Firefly III-s APP_KEY?

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.

Miks jäävad Firefly III lingid proksi taga http-le?

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.

Kuidas seadistada Firefly III cron-ülesanne Dockeriga?

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.

Kuidas avada Firefly III mitmele kasutajale?

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.

Kuidas Firefly III-t varundada?

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.

Kas Managed VPS katab Firefly III?

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.

Allikad ja ametlik dokumentatsioon

Võtke meiega ühendust