Skip to main content
Firefly III is configured using environment variables, typically stored in a .env file or passed to your container.
Many variables support a _FILE suffix (e.g., APP_KEY_FILE, DB_PASSWORD_FILE) for Docker secrets or other file-based secret management.

Application Settings

Core application configuration.
The APP_KEY must be exactly 32 characters. Changing it after setup will break encrypted data. Keep it secure and backed up!

Database Configuration

Database connection settings.

MySQL/MariaDB SSL

PostgreSQL SSL

Cache and Session

Performance and session management.

Redis Configuration

Used when CACHE_DRIVER or SESSION_DRIVER is set to redis.
Using Redis significantly improves performance, especially with multiple users.

Logging

Log configuration for debugging and auditing.

Papertrail

Audit logs may contain sensitive financial information. Store them securely and comply with data protection regulations.

Email Configuration

Email notifications and password resets.

Self-Signed Certificates

Third-Party Email Services

Authentication

User authentication and security.

OAuth/Passport

See the authentication documentation for details on alternative authentication methods.

Security Headers

Security-related HTTP headers.

Proxy and Networking

Reverse proxy and network configuration.
When using a reverse proxy (nginx, Traefik, etc.), set TRUSTED_PROXIES=** to ensure correct IP detection and HTTPS redirection.

Cron Jobs

Scheduled task configuration. Cron URL format:
See the cron documentation for setup instructions.

Maps

Default map location.

Analytics

Tracking configuration (optional).

Docker-Specific Settings

Settings for Docker container startup optimization.

Advanced/Internal Settings

Do not modify these unless you know what you’re doing.

Environment File Example

Here’s a complete example .env file for a production deployment:

Using File-Based Secrets

For Docker Swarm, Kubernetes secrets, or other secret management systems, append _FILE to sensitive variables:
docker-compose.yml

Validation

After configuration, verify your settings:
1

Check database connection

Then:
Should return a PDO object without errors.
2

Test email (optional)

3

Clear caches

After any configuration change:

Next Steps

Docker Installation

Deploy with Docker

Self-Hosted Installation

Install on your own server