Installation

Docker

Learn how to install Firefly Pico using Docker or manually.

Installation

If you already have Firefly III installed the fastest way to get started with Firefly-Pico is via docker-compose.

version: '3.3'
services:
  firefly-pico:
    image: cioraneanu/firefly-pico:dev
    ports:
      - "6977:80"
    environment:
      - FIREFLY_URL=https://firefly.domain.com  
    volumes:
      - /path/firefly-pico-data:/var/www/html/database/data
Make sure the environment variable FIREFLY_URL points to your Firefly III instance. This can be either IP + Port (ex. http://192.168.1.99:8080) or subdomain (ex. https://firefly.domain.com) if you use a reverse proxy like Nginx Proxy Manager.
  • Set the volume to a persistent folder for the SQLite database.
  • Make sure the environment variable FIREFLY_URL points to your Firefly III instance. This can be either IP + Port (ex. http://192.168.1.99:8080) or subdomain (ex. https://firefly.domain.com) if you use a reverse proxy like Nginx Proxy Manager.
  • Set the volume to a persistent folder for the SQLite database.

Other variants:

If you don't yet have Firefly III installed and want both inside a single Docker-compose file:

Further information on how to setup and configure Firefly III can be found on their officials docs: HERE

Environment Variables

NameDescription
NUXT_PUBLIC_QUERY_TIMEOUTMilliseconds Pico should wait before a request times out. (Default: 4000)
TZPico backend Timezone (ex. Europe/London)

Docker image flavors

  • :latest - Stable, less frequent updates
  • :dev - Latest features, more updates, still stable.

Post-install Configuration

  1. Generate Firefly III Auth Token: Open up Firefly III and finish the onboarding process if this is your first usage. **** Go to Options -> Profile -> OAuth -> Create New Personal Access Token.
  2. Connect Pico: Open Firefly-Pico, **** go to Settings -> Setup and paste the token.
In most scenarios you don't need to change the Pico Backend URL field!!! This is helpful only if deploy the Firefly-Pico backend somewhere separate from the frontend.