System Requirements
PHP Requirements
Firefly III is built with Laravel and requires:- PHP 8.5 or higher
- Required PHP extensions:
bcmath- Arbitrary precision mathematicscurl- HTTP clientfileinfo- File informationiconv- Character encoding conversionintl- Internationalizationjson- JSON processingmbstring- Multibyte string handlingopenssl- Cryptographic functionspdo- Database abstractionsession- Session handlingsimplexml- XML parsingsodium- Modern cryptographytokenizer- PHP tokenizerxml- XML processingxmlwriter- XML writing
Database Requirements
One of the following:- MySQL 8.0 or higher
- MariaDB 10.5 or higher
- PostgreSQL 13 or higher
- SQLite 3.35 or higher
Web Server
One of:- Apache 2.4+ with
mod_rewriteenabled - Nginx 1.18+
- Any web server that supports PHP-FPM
Additional Requirements
- Composer 2.0 or higher
- At least 512MB RAM
- 1GB+ disk space
Installation Steps
Install system dependencies
- Ubuntu/Debian
- CentOS/RHEL
- Arch Linux
If PHP 8.5 is not available in your distribution, you may need to add a PPA like
ondrej/php:Install dependencies
Install PHP dependencies using Composer:This will download all required packages. It may take a few minutes.
Configure environment
Copy the example environment file:Edit the Required settings:See the Configuration Reference for all available options.
.env file with your settings:.env
Generate application key
Generate a secure encryption key:This will automatically update your
.env file with a secure APP_KEY.Configure web server
- Nginx
- Apache
Create a new site configuration:Add the following configuration:Enable the site:
/etc/nginx/sites-available/firefly
The document root must point to the
/public directory, not the application root!Set up SSL (recommended)
Use Let’s Encrypt for free SSL certificates:Update
- Nginx
- Apache
APP_URL in your .env file to use https://.Post-Installation
Enable Audit Logging (Optional)
To track financial events:.env
Configure Email (Optional)
For notifications and password resets:.env
Performance Optimization
Redis Cache (Recommended)
Install Redis:.env:
.env
PHP-FPM Tuning
Edit PHP-FPM pool configuration:Updating Firefly III
Troubleshooting
500 Internal Server Error
Check the Laravel logs:- Incorrect file permissions on
storage/directory - Missing PHP extensions
- Invalid
.envconfiguration
Database Connection Errors
Test the connection:Page Shows “Public” Warning
Your document root is set incorrectly. It should point to/var/www/firefly-iii/public, not /var/www/firefly-iii.
CSS/JS Not Loading
Run:Security Hardening
Disable Directory Listing
Already configured in the provided.htaccess file:
Firewall Configuration
Allow only HTTP/HTTPS:Regular Updates
Keep your system updated:Next Steps
Configuration
Explore all configuration options
API Documentation
Set up API access