Docs / Self-Hosted Applications / Deploying Firefly III for Personal Finance

Deploying Firefly III for Personal Finance

By Admin · Mar 4, 2026 · Updated Apr 23, 2026 · 4 views · 3 min read

Deploying Firefly III for Personal Finance is a common requirement for VPS administrators. This guide provides practical instructions that you can follow on Ubuntu 22.04/24.04 or Debian 12, though most steps apply to other distributions as well.

Prerequisites

  • Root or sudo access to the server
  • Docker and Docker Compose installed
  • A registered domain name (for public-facing services)
  • A VPS running Ubuntu 22.04 or later (2GB+ RAM recommended)
  • A reverse proxy configured (Nginx or Traefik)

Docker Compose Setup

It's recommended to test this configuration in a staging environment before deploying to production. This helps identify potential compatibility issues and allows you to benchmark performance differences.


# docker-compose.yml
version: '3.8'
services:
  firefly:
    image: firefly/firefly:latest
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - firefly_data:/data
      - firefly_config:/config
    environment:
      - TZ=UTC
      - PUID=1000
      - PGID=1000
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    restart: unless-stopped
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=firefly
      - POSTGRES_USER=firefly
      - POSTGRES_PASSWORD=changeme

volumes:
  firefly_data:
  firefly_config:
  db_data:

These commands should be run as root or with sudo privileges. If you're using a non-root user, prefix each command with sudo.

Important Notes

The firefly configuration requires careful attention to resource limits and security settings. On a VPS with limited resources, it's important to tune these parameters according to your available RAM and CPU cores.

Initial Configuration

The finance component plays a crucial role in the overall architecture. Understanding how it interacts with firefly will help you make better configuration decisions.


# Reverse proxy configuration
server {
    listen 443 ssl http2;
    server_name firefly.example.com;

    ssl_certificate /etc/letsencrypt/live/firefly.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/firefly.example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
        client_max_body_size 0;
    }
}

Each line in the configuration serves a specific purpose. The comments explain the reasoning behind each setting, making it easier to customize for your specific use case.

Important Notes

The firefly configuration requires careful attention to resource limits and security settings. On a VPS with limited resources, it's important to tune these parameters according to your available RAM and CPU cores.

  • Review log files weekly for anomalies
  • Monitor disk space usage and set up alerts
  • Test your backup restore procedure monthly
  • Keep your system packages updated regularly
  • Enable automatic security updates for critical patches

Common Issues and Solutions

  • Connection timeout: Verify your firewall rules allow traffic on the required ports. Use ss -tlnp to confirm the service is listening on the expected port.
  • Service won't start: Check the logs with journalctl -xe -u firefly. Common causes include port conflicts, missing configuration files, or insufficient permissions.
  • Permission denied errors: Ensure files and directories have the correct ownership. Use chown -R to fix ownership and chmod for permissions.

Next Steps

With firefly now set up and running, consider implementing monitoring to track performance metrics over time. Regularly review your configuration as your workload changes and scale resources accordingly.

Was this article helpful?