---
title: "Deploy Firefly III"
description: "Track spending, budgets and accounts in your own private finance app."
category: "Other"
url: https://railway.com/deploy/firefly-iii-budget-app
---

# Deploy Firefly III

Track spending, budgets and accounts in your own private finance app.

**[Deploy Firefly III on Railway](https://railway.com/template/firefly-iii-budget-app)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/firefly-iii-budget-app/manifest.json

- **Creator:** blueorange
- **Category:** Other

## Template content

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

### Firefly III https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/firefly-iii.svg

- **Image:** fireflyiii/core:latest
- **Start command:** `/bin/sh -c 'mkdir -p /var/www/html/storage/framework/views/twig /var/www/html/storage/framework/cache/data /var/www/html/storage/framework/sessions /var/www/html/storage/logs && chmod -R 777 /var/www/html/storage && (sleep 90; chmod -R 777 /var/www/html/storage) & exec docker-php-serversideup-entrypoint /init'`
- **Public domain:** Yes

## Documentation

# Deploy and Host Firefly III on Railway

![Firefly III logo](https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/firefly-iii.svg)

Firefly III is an open source **personal finance manager**. It tracks every account you have, from checking and savings to credit cards, loans and cash, and helps you budget, categorize spending, set savings goals and see where your money goes. It uses double-entry bookkeeping under the hood, supports any currency, and automates the boring parts with rules, recurring transactions and bills. It is AGPL-3.0 licensed with about 25,200 GitHub stars, and v6.7.9 shipped in October 2026. This template runs Firefly III with PostgreSQL on Railway, secure cookies behind Railway's HTTPS proxy, a generated app key and cron token, and a volume for attachments. YNAB costs $14.99/month or $109/year. Firefly III on Railway costs about $5–10/month, and your financial data stays on your own server.

---

## What This Template Deploys

| Service | Purpose |
|---|---|
| **Firefly III** | `fireflyiii/core:latest`, the official image, on port `8080` with a public domain. Web app and JSON API. Volume at `/var/www/html/storage/upload` for receipts and attachments. |
| **Postgres** | `postgres-ssl:18`, reachable only over Railway's private network. Volume at `/var/lib/postgresql/data` holds accounts, transactions, budgets and rules. |

---

## About Hosting Firefly III

Budgeting apps want your bank login, your data and a yearly subscription. Firefly III keeps everything on a server you control, and nothing is shared with a third party unless you choose to connect an importer.

**Accounts of every kind.** Asset accounts, credit cards, loans, mortgages, debts, expense and revenue accounts, each with its own currency.

**Budgets.** Set budgets per period, see how much is left, and roll over or reset each month.

**Categories, tags and rules.** Categorize transactions by hand or let rules do it automatically based on description, amount, account or other fields. Rules can also set budgets, tags and notes.

**Bills and recurring transactions.** Track subscriptions and regular payments, and let Firefly III create recurring transactions on schedule.

**Piggy banks.** Save toward goals such as a holiday or an emergency fund and track progress.

**Reports and charts.** Monthly and yearly reports, budget and category breakdowns, net worth over time and income versus expenses.

**Search and filters.** A powerful search syntax finds transactions by amount, date, account, category, tag or description, and the same filters drive rule tests.

**Export anytime.** Export all transactions to CSV from the data export page, so your history is never locked in.

**Multi-currency.** Record transactions in any currency with exchange rates, which suits travelers and people with accounts abroad.

**API and importer.** A full REST API with personal access tokens, plus the separate Firefly III Data Importer for CSV files and supported bank connections.

---

## Deploy Firefly III in Under 5 Minutes

1. Click **Deploy on Railway**. The app key, cron token and database password are generated for you.
2. Wait for Postgres, then for Firefly III to run its migrations on the first boot.
3. Open the public domain and register. **The first account you create becomes the administrator**, so do this right away.
4. Follow the setup wizard to add your first bank account and default currency.
5. Add transactions by hand, import a CSV with the Data Importer, or connect apps through the API.

---

## Common Use Cases

- **Personal budgeting:** track spending against monthly budgets and see what's left.
- **Household finances:** share one instance for joint accounts and shared bills.
- **Debt payoff:** follow loans and credit cards as their balances fall.
- **Savings goals:** use piggy banks for trips, emergencies or big purchases.
- **Freelancers:** separate business and personal income and expenses with tags and categories.
- **Multi-currency living:** manage accounts in several countries in one place.
- **Privacy-first tracking:** keep your financial history off third-party clouds.
- **Net worth tracking:** watch assets and liabilities over years in one chart.
- **Expense reports:** filter by tag or category to total costs for a trip, project or tax year.

---

## Configuration

| Variable | Required | Default | Description |
|---|---|---|---|
| `APP_KEY` | 🔐 Auto-generated | 32-char secret | Encryption key for sessions and data. Never change after launch |
| `APP_URL` | Auto-set | Railway domain | Public URL used in links |
| `STATIC_CRON_TOKEN` | 🔐 Auto-generated | 32-char secret | Token for the cron URL that runs recurring tasks |
| `SITE_OWNER` | Optional | `mail@example.com` | Admin contact address shown in errors |
| `TZ` | Optional | `UTC` | Timezone for dates and reports |
| `DEFAULT_LANGUAGE` | Optional | `en_US` | Default interface language |
| `DB_*` | Auto-set | Postgres references | Database connection |
| `MAIL_MAILER` | Optional | `log` | Writes emails to the log; set SMTP variables to send real mail |
| `COOKIE_SECURE` | Optional | `true` | HTTPS-only cookies |
| `TRUSTED_PROXIES` | Optional | `*` | Trusts Railway's TLS proxy |
| `APP_LOG_LEVEL` | Optional | `notice` | Minimum log level |

**Set up the daily cron.** Recurring transactions, bill reminders and auto-budgets need a daily trigger. Add a Railway cron service or any scheduler that calls `https://YOUR-DOMAIN/api/v1/cron/` followed by your `STATIC_CRON_TOKEN` once a day. Without it, recurring transactions are not created.

**Email.** Mail goes to the log by default. To get password resets and notifications, set `MAIL_MAILER=smtp` with `MAIL_HOST`, `MAIL_PORT`, `MAIL_USERNAME`, `MAIL_PASSWORD` and `MAIL_FROM`.

**Importing your history.** Deploy the Firefly III Data Importer as a second service in the same project, give it your Firefly III URL and a personal access token, and import CSV exports from your bank. Saved import configurations make monthly imports a two-minute job.

**Mobile access.** Firefly III works in a mobile browser, and community apps for iOS and Android connect through the API with a personal access token.

**Exchange rates.** Firefly III can fetch exchange rates for foreign currency transactions, or you can enter rates yourself for full control over reports in your main currency.

**Two-factor login.** Turn on two-factor authentication in your profile. Your finances are worth the extra step, especially on a public URL.

**Timezone.** Set `TZ` to your own timezone so transactions near midnight land on the right day.

---

## Firefly III vs. Alternatives

| Feature | Firefly III on Railway | YNAB | Actual Budget | Monarch Money |
|---|---|---|---|---|
| Hosting | Self-hosted | Hosted SaaS | Self-hosted or local | Hosted SaaS |
| License | AGPL-3.0 | Proprietary | MIT | Proprietary |
| Double-entry bookkeeping | ✅ | ❌ | ❌ | ❌ |
| Rules engine | ✅ | Basic | ✅ | ✅ |
| Multi-currency | ✅ | Limited | Limited | Limited |
| REST API | ✅ | ✅ | Partial | ❌ |
| Price | About $5–10/month | $14.99/month | Hosting cost | Subscription |

YNAB is the strongest envelope-budgeting coach. Actual Budget follows a similar envelope method and is lighter to run. Firefly III is the better fit for detailed tracking across many accounts and currencies.

---

## Dependencies for Firefly III Hosting

- A Railway account.
- Optional: the Firefly III Data Importer as a second service for CSV and bank imports.
- Optional: an SMTP provider for password resets.

### Deployment Dependencies

- [Firefly III on GitHub](https://github.com/firefly-iii/firefly-iii): source code and releases
- [Firefly III documentation](https://docs.firefly-iii.org/): setup, cron, API and importer guides
- [Firefly III Data Importer](https://github.com/firefly-iii/data-importer): CSV and bank import tool

### Implementation Details

The image follows the `latest` tag, so a redeploy picks up new releases; the current one is v6.7.9. Database migrations run automatically on boot. Sessions and cache use files inside the container, so a redeploy signs everyone out but loses no data. Attachments are stored on the upload volume. The start command fixes storage permissions before handing over to the image's own entrypoint.

---

## Frequently Asked Questions

**What is Firefly III?**
An AGPL-3.0 self-hosted personal finance manager for budgets, accounts, bills and reports.

**How much does it cost to host Firefly III?**
About $5–10/month on Railway for the app and Postgres.

**How do I create the admin account?**
Register on the public domain right after deploying. The first registered user becomes the administrator.

**Can Firefly III import my bank transactions?**
Yes, through the separate Data Importer, which reads CSV files and supports some bank data providers.

**Why aren't recurring transactions created?**
They need the daily cron. Call the cron URL with your `STATIC_CRON_TOKEN` once a day.

**Is my financial data private?**
Yes. Everything is stored in your own Postgres database on Railway.

---

## Why Deploy and Host Firefly III on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Firefly III on Railway, you get a private budgeting and money-tracking app with Postgres, without a subscription or sharing your finances with a third party.


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — Self-hosted virtual tabletop for role-playing games (license required)
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/firefly-iii-budget-app
