[{"data":1,"prerenderedAt":203},["ShallowReactive",2],{"seo-verification":3,"blog-self-host-firefly-iii-on-a-vps-business-finances-under-control-ma-en":6,"promo-bar-likely":202},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-self-host-firefly-iii-on-a-vps-business-finances-under-control-ma-en",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":141,"ctaBody":142,"ctaButton":143,"ctaUrl":144,"relatedPosts":145},266,"self-host-firefly-iii-on-a-vps-business-finances-under-control",{"fr":12,"en":10,"ar":13,"es":14},"heberger-firefly-iii-vps","استضافة-firefly-iii-على-vps-ماليتك-المهنية-تحت-السيطرة","alojar-firefly-iii-en-un-vps","Self-Host Firefly III on a VPS: Business Finances Under Control","Deploy Firefly III on your VPS in 20 minutes with Docker Compose. Expense tracking, budgets, and reports — your financial data on your own server.",8,0,false,"2026-08-15T00:00:00+00:00","2026-11-04T16:30:26+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-firefly-iii-vps-poster.svg",{"categorySlug":34,"appSlug":35},"erp-business-management","firefly-iii","Keeping professional finances in a spreadsheet or a SaaS tool where you don't own your data is acceptable at the start — but when accounts multiply, clients diversify, and your accountant asks for consistent exports, you need something better. Firefly III is an open-source personal and professional finance manager (AGPL-3.0) that installs on your VPS in twenty minutes, requires no subscription, and stores your data exactly where you decide.",[38,42,53,56,78,81,84,88,132,135,138],{"type":39,"title":40,"body":41},"h2","Why Firefly III Instead of a SaaS Tool?","Firefly III solves three problems at once: **AGPL-3.0 license** (open, modifiable), **docker-compose** in under ten commands, data in your own PostgreSQL database. With **24,300 GitHub stars** and v6.6.6 released in July 2025, it is a mature, actively maintained project.\n\nWhat Firefly III handles for you: checking and savings accounts, credit cards, crypto wallets, monthly or annual budgets, transaction automation rules, custom categories, period\u002Fcategory reports, and bank statement imports via the **Data Importer**.",{"type":43,"title":44,"items":45},"ul","Key Features",[46,47,48,49,50,51,52],"**Multi-account management**: simultaneously manage checking, savings, credit card, and crypto wallet accounts.","**Budgets and envelopes**: set monthly budgets by category and track consumption in real time.","**Automation rules**: create rules applied automatically to new transactions.","**Advanced reports**: period\u002Faccount\u002Fcategory charts, exportable to CSV for your accountant.","**Data Importer**: import bank statements via OFX, QFX, CSV, or European bank connectors (GoCardless).","**Full REST API**: automate transaction creation from any script or third-party tool.","**Responsive mobile interface**: access your accounts from your phone via the browser.",{"type":39,"title":54,"body":55},"Server Prerequisites","Firefly III is a lightweight PHP\u002FLaravel application. Minimum requirements: a VPS with at least **1 GB of RAM** (2 GB recommended), Docker Engine ≥ 24 and Docker Compose V2, a **domain name** for TLS configuration, port **8080** accessible (Firefly III UI) and **8081** (Data Importer), **5 GB of storage** minimum.",{"type":57,"title":58,"steps":59},"steps","Installation with Docker Compose",[60,63,66,69,72,75],{"title":61,"body":62},"Step 1 — Clone the official repository","```bash\nmkdir -p \u002Fopt\u002Ffirefly && cd \u002Fopt\u002Ffirefly\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002Ffirefly-iii\u002Fdocker\u002Fmain\u002Fdocker-compose-importer.yml \\\n  -o docker-compose.yml\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002Ffirefly-iii\u002Ffirefly-iii\u002Fmain\u002F.env.example -o .env\ncurl -L https:\u002F\u002Fraw.githubusercontent.com\u002Ffirefly-iii\u002Fdata-importer\u002Fmain\u002F.env.example -o .importer.env\n```",{"title":64,"body":65},"Step 2 — Configure environment variables","Open `.env` and set: `DB_PASSWORD`, `APP_KEY` (exactly 32 chars — generate with `openssl rand -hex 16`), `APP_URL` (your domain), and `POSTGRES_PASSWORD`.",{"title":67,"body":68},"Step 3 — Start the containers","```bash\ndocker compose up -d\ndocker compose ps\n```\n\nThree containers should be `healthy`: `firefly-iii`, `db` (PostgreSQL), and `importer`. Firefly III waits for PostgreSQL using `depends_on: condition: service_healthy`.",{"title":70,"body":71},"Step 4 — Access the interface","Open your browser at `http:\u002F\u002F\u003CVPS_IP>:8080`. Create your admin account. The setup wizard guides you through creating your first bank account.",{"title":73,"body":74},"Step 5 — Set up Nginx with TLS","Configure Nginx as a reverse proxy with a Let's Encrypt certificate:\n\n```bash\ncertbot --nginx -d firefly.yourdomain.com\nnginx -t && systemctl reload nginx\n```\n\nThen close port 8080 in your firewall.",{"title":76,"body":77},"Step 6 — Import Your Bank Statements","The Data Importer runs on port 8081. Go to `http:\u002F\u002Flocalhost:8081` in your browser:\n\n1. Upload your bank's CSV file or connect via GoCardless (EU banks).\n2. Choose target account (the one you created in Firefly III).\n3. Click **Import** and review the mapped transactions.\n\n**Important**: configure a `Date format` matching your bank's format (e.g. `d\u002Fm\u002FY` for a French Crédit Agricole CSV).",{"type":39,"title":79,"body":80},"Set Up Budgets and Automation Rules","**Create a monthly budget:** go to **Budgets → New budget**, name the budget (e.g., \"Office Supplies\"), set the monthly amount, and link transactions to it.\n\n**Create an automation rule:** go to **Automation → Rules → New rule**, set a trigger (e.g., \"Description contains 'Amazon'\"), then set an action (\"Assign to Office Supplies category\"). Rules apply automatically to new transactions.\n\n**Export for your accountant:** go to **Export data**, select CSV format, filter by period and account.",{"type":39,"title":82,"body":83},"Schedule Automatic Backups","Firefly III stores data in PostgreSQL. Schedule a daily backup:\n\n```bash\nmkdir -p \u002Fopt\u002Ffirefly\u002Fbackups\ncat > \u002Fopt\u002Ffirefly\u002Fbackup.sh \u003C\u003C 'EOF'\n#!\u002Fbin\u002Fbash\nDATE=$(date +%Y%m%d)\ndocker compose -f \u002Fopt\u002Ffirefly\u002Fdocker-compose.yml exec -T db \\\n  pg_dump -U firefly firefly | gzip > \u002Fopt\u002Ffirefly\u002Fbackups\u002Ffirefly-$DATE.sql.gz\nfind \u002Fopt\u002Ffirefly\u002Fbackups -name '*.sql.gz' -mtime +30 -delete\nEOF\nchmod +x \u002Fopt\u002Ffirefly\u002Fbackup.sh\necho '0 3 * * * root \u002Fopt\u002Ffirefly\u002Fbackup.sh' >> \u002Fetc\u002Fcron.d\u002Ffirefly-backup\n```",{"type":85,"title":86,"body":87},"tip","Invalid APP_KEY: The Most Common Error","If Firefly III shows a blank page or authentication fails, check `APP_KEY` in your `.env` first. Two strict rules: exactly **32 characters**, and **never change it** after first launch — changing it invalidates all sessions and corrupts encrypted stored data.\n\nGenerate a valid key: `openssl rand -hex 16`",{"type":89,"title":90,"headers":91,"rows":96},"comparison","Firefly III vs YNAB vs Budgea",[92,93,94,95],"Criterion","Firefly III (self-hosted)","YNAB","Budgea",[97,102,107,112,116,120,124,128],[98,99,100,101],"Price","Free (VPS cost ~$5-10\u002Fmo)","~$99\u002Fyear","~€60\u002Fyear",[103,104,105,106],"Data hosting","Your VPS (full sovereignty)","US servers (Plaid)","FR servers",[108,109,110,111],"Bank import","CSV\u002FOFX + GoCardless (EU)","Direct connection (US)","Direct connection (FR)",[113,114,114,115],"Automation rules","Yes","No",[117,118,119,115],"REST API","Yes (full)","Not public",[121,114,122,123],"Multi-currency","No (USD only)","Yes (partial)",[125,126,127,127],"Customizable reports","Yes (advanced)","Limited",[129,130,131,114],"Native mobile app","No (responsive web)","Yes (iOS\u002FAndroid)",{"type":39,"title":133,"body":134},"Troubleshoot Common Issues","**Firefly III shows a blank page or 500 error**: check container logs with `docker compose logs firefly-iii`. Most common cause: invalid `APP_KEY` or PostgreSQL not yet ready.\n\n**Data Importer rejects the CSV**: check that your bank's CSV uses comma separators. Convert with `sed 's\u002F;\u002F,\u002Fg' import.csv > import-comma.csv`.\n\n**Duplicate transactions after import**: enable deduplication in the Data Importer by checking **Ignore duplicates**.\n\n**Connection refused to database on startup**: verify that `POSTGRES_PASSWORD` in `.env` matches `DB_PASSWORD`.",{"type":39,"title":136,"body":137},"Update Firefly III","```bash\ncd \u002Fopt\u002Ffirefly\ndocker compose pull\ndocker compose up -d\n```\n\nDocker Compose downloads the new images and restarts with the updated version. Database migrations run automatically on first startup. **Before any major update**, take a manual PostgreSQL backup.",{"type":39,"title":139,"body":140},"Deploy Firefly III in One Click from the Marketplace","The ServOrbit Marketplace offers a **Firefly III** template that automatically sets up PostgreSQL 16 and the core application via Docker Compose on your Ubuntu 24.04 VPS — in minutes, without any command line. Choose your VPS, select the template, and find Firefly III ready to receive your accounts from first access. The `APP_KEY` is generated by ServOrbit at provisioning time.","Your Firefly III Ready in Minutes","The Firefly III template automatically sets up PostgreSQL and the finance manager on your VPS — your financial data stays yours, backed up and accessible anywhere.","Deploy Firefly III","\u002Fapplications\u002Ferp-business-management\u002Ffirefly-iii",[146,165,183],{"id":147,"slug":148,"slugs":149,"title":153,"excerpt":154,"readTime":155,"views":156,"isPinned":19,"noindex":19,"publishedAt":157,"updatedAt":158,"category":159,"categories":160,"featuredImage":30,"bgImage":31,"posterImage":162,"relatedSolution":163},173,"self-host-actual-budget-on-a-vps-your-private-ynab-alternative",{"fr":150,"en":148,"ar":151,"es":152},"self-host-actual-budget-vps","استضافة-actual-budget-على-vps-بديل-ynab-الخاص-بك","alojar-actual-budget-en-un-vps","Self-Host Actual Budget on a VPS: Your Private YNAB Alternative","Self-host Actual Budget on a VPS — an MIT-licensed, zero-based budgeting app with bank sync, multi-device access and end-to-end encrypted sync. No subscription.",12,1,"2026-07-07T00:00:00+00:00","2026-10-29T03:10:23+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[161],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fself-host-actual-budget-vps-poster.svg",{"categorySlug":34,"appSlug":164},"actual-budget",{"id":166,"slug":167,"slugs":168,"title":172,"excerpt":173,"readTime":174,"views":18,"isPinned":19,"noindex":19,"publishedAt":175,"updatedAt":176,"category":177,"categories":178,"featuredImage":30,"bgImage":31,"posterImage":180,"relatedSolution":181},143,"hosting-dolibarr-on-a-vps-open-source-erp-under-control",{"fr":169,"en":167,"ar":170,"es":171},"heberger-dolibarr-vps","استضافة-dolibarr-على-خادم-vps-نظام-erp-حر-تحت-السيطرة","alojar-dolibarr-en-un-vps-erp-libre","Hosting Dolibarr on a VPS: open source ERP under control","Deploy Dolibarr on a ServOrbit VPS: open source ERP\u002FCRM, a controlled database, backups and HTTPS access for your SME.",11,"2026-02-02T00:00:00+00:00","2026-11-09T20:55:19+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[179],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-dolibarr-vps-poster.svg",{"categorySlug":34,"appSlug":182},"dolibarr",{"id":184,"slug":185,"slugs":186,"title":190,"excerpt":191,"readTime":174,"views":18,"isPinned":19,"noindex":19,"publishedAt":192,"updatedAt":193,"category":194,"categories":199,"featuredImage":30,"bgImage":31,"posterImage":201,"relatedSolution":30},113,"automate-your-vps-backups-with-restic",{"fr":187,"en":185,"ar":188,"es":189},"sauvegardes-restic-vps","أتمتة-نسخ-خادمك-vps-الاحتياطية-باستخدام-restic","copias-de-seguridad-vps-con-restic","Automate Your VPS Backups with Restic","Automate your VPS backups with Restic: encrypted snapshots, deduplication and shipping to S3 or any object backend.","2026-02-27T00:00:00+00:00","2026-11-08T01:13:12+00:00",{"id":17,"name":195,"slug":196,"color":197,"icon":198},"Security & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[200],{"id":17,"name":195,"slug":196,"color":197,"icon":198},"\u002Fblog\u002Fcovers\u002Fsauvegardes-restic-vps-poster.svg",true,1794270485219]