Quick-start Docker setup for Firefly III with automated configurations.(+Raspberry Pi 5)
10K+
If you found this helpful and want to support what I do, you can leave a tip here — thank you so much!
Welcome to the Firefly III Quickstart Docker Image repository! This custom Docker image is optimized to simplify and accelerate the deployment of Firefly III, the free and open-source personal finance manager. This image automates much of the setup process, allowing users to get Firefly III up and running with minimal manual configuration.
docker pull nicxx2/fireflyiii-quickstart
Run with Docker Compose
Use the Docker Compose from the repository, make any necessary adjustments to the environment variables, and start your services:
docker-compose up -d
This command will set up Firefly III along with its necessary services like database and scheduled tasks.
Access Firefly III
Open your web browser and access Firefly III at http://localhost:8081.
Modify the provided Docker Compose file to customize the environment variables as per your requirements. Essential variables include:
APP_KEY: Your unique application key for Laravel.
MYSQL_RANDOM_ROOT_PASSWORD: Set to yes for enhanced security.
MYSQL_USER, MYSQL_PASSWORD: Database credentials.
STATIC_CRON_TOKEN: Security token for scheduled tasks.
Link to Github: https://github.com/Nicxx2/fireflyiii-quickstart
version: '3.3'
services:
app:
image: nicxx2/fireflyiii-quickstart:latest # Use the Docker Hub image
container_name: firefly_iii_core
restart: always
volumes:
- /Data/firefly_iii/upload:/var/www/html/storage/upload # Persistent volume for uploads
- /Data/firefly_iii/export:/var/www/html/storage/export # Persistent volume for exports
networks:
- firefly_network
ports:
- "8081:8080" # Maps port 8080 inside the container to port 8081 on the host
depends_on:
- db
environment:
- APP_KEY=aaadd7f048dcb455a863144ccd44bc27
- MYSQL_RANDOM_ROOT_PASSWORD=yes
- MYSQL_USER=firefly
- MYSQL_PASSWORD=secret_firefly_password
- MYSQL_DATABASE=firefly
- STATIC_CRON_TOKEN=aaadd7f048dcb455a863144ccd44bc2d
db:
image: mariadb:lts
container_name: firefly_iii_db
restart: always
volumes:
- /Data/firefly_iii/db:/var/lib/mysql # Persistent volume for database
networks:
- firefly_network
environment:
- MYSQL_RANDOM_ROOT_PASSWORD=yes
- MYSQL_USER=firefly
- MYSQL_PASSWORD=secret_firefly_password
- MYSQL_DATABASE=firefly
cron:
image: alpine
restart: always
container_name: firefly_iii_cron
command: >-
/bin/sh -c "echo '0 3 * * * wget -qO- http://app:8081/api/v1/cron/$STATIC_CRON_TOKEN' | crontab - && crond -f -L /dev/stdout"
networks:
- firefly_network
depends_on:
- app
environment:
- STATIC_CRON_TOKEN=aaadd7f048dcb455a863144ccd44bc2d
networks:
firefly_network:
driver: bridge
If you need to include the data_importer alongside Firefly III in your setup, the Docker Compose file provided below will help you configure and run both services. This setup ensures that all components are properly networked and configured to communicate with each other within Docker.
version: '3.3'
services:
app:
image: nicxx2/fireflyiii-quickstart:latest # Use the Docker Hub image
container_name: firefly_iii_core
restart: always
volumes:
- /Data/firefly_iii/upload:/var/www/html/storage/upload # Persistent volume for uploads
- /Data/firefly_iii/export:/var/www/html/storage/export # Persistent volume for exports
networks:
- firefly_network
ports:
- "8081:8080" # Maps port 8080 inside the container to port 8081 on the host
depends_on:
- db
environment:
- APP_KEY=aaadd7f048dcb455a863144ccd44bc27
- MYSQL_RANDOM_ROOT_PASSWORD=yes
- MYSQL_USER=firefly
- MYSQL_PASSWORD=secret_firefly_password
- MYSQL_DATABASE=firefly
- STATIC_CRON_TOKEN=aaadd7f048dcb455a863144ccd44bc2d
db:
image: mariadb:lts
container_name: firefly_iii_db
restart: always
volumes:
- /Data/firefly_iii/db:/var/lib/mysql # Persistent volume for database
networks:
- firefly_network
environment:
- MYSQL_RANDOM_ROOT_PASSWORD=yes
- MYSQL_USER=firefly
- MYSQL_PASSWORD=secret_firefly_password
- MYSQL_DATABASE=firefly
cron:
image: alpine
restart: always
container_name: firefly_iii_cron
command: >-
/bin/sh -c "echo '0 3 * * * wget -qO- http://app:8081/api/v1/cron/$STATIC_CRON_TOKEN' | crontab - && crond -f -L /dev/stdout"
networks:
- firefly_network
depends_on:
- app
environment:
- STATIC_CRON_TOKEN=aaadd7f048dcb455a863144ccd44bc2d
data-importer:
image: fireflyiii/data-importer:version-1.4.5
container_name: firefly_iii_data_importer
ports:
- "8082:8080"
environment:
FIREFLY_III_ACCESS_TOKEN: "your_ACCESS_TOKEN"
FIREFLY_III_URL: "http://app:8080"
NORDIGEN_ID: "your_nordigen_id_here"
NORDIGEN_KEY: "your_nordigen_key_here"
SPECTRE_APP_ID: "your_spectre_app_id_here"
SPECTRE_SECRET: "your_spectre_secret_here"
networks:
- firefly_network
depends_on:
- app
restart: always
networks:
firefly_network:
driver: bridge
To use the Firefly III Data Importer, you must first have a running instance of Firefly III. The data importer needs to connect to Firefly III using a Personal Access Token, which provides secure access to your Firefly III data. Follow these steps to set up and configure the data importer correctly.
FIREFLY_III_ACCESS_TOKENOnce you have your Personal Access Token, update the Docker Compose configuration to include this token for the data-importer service.
data-importer:
environment:
FIREFLY_III_ACCESS_TOKEN: "paste_your_token_here"
Content type
Image
Digest
sha256:eee0f0075…
Size
280 MB
Last updated
over 2 years ago
docker pull nicxx2/fireflyiii-quickstartPulls:
1,410
Last week