Firefly III
Firefly III is a self-hosted personal finance manager for tracking expenses, budgets, accounts, and financial reports.
Configuration
version: "3.8"
services:
firefly-iii:
image: fireflyiii/core:version-6.6.3
restart: unless-stopped
depends_on:
firefly-iii-db:
condition: service_healthy
environment:
APP_KEY: ${APP_KEY}
APP_URL: ${APP_URL}
TRUSTED_PROXIES: "**"
TZ: ${TZ}
SITE_OWNER: ${SITE_OWNER}
DEFAULT_LANGUAGE: ${DEFAULT_LANGUAGE}
DEFAULT_LOCALE: ${DEFAULT_LOCALE}
DB_CONNECTION: mysql
DB_HOST: firefly-iii-db
DB_PORT: 3306
DB_DATABASE: ${DB_DATABASE}
DB_USERNAME: ${DB_USERNAME}
DB_PASSWORD: ${DB_PASSWORD}
STATIC_CRON_TOKEN: ${STATIC_CRON_TOKEN}
expose:
- "8080"
volumes:
- firefly-iii-upload:/var/www/html/storage/upload
firefly-iii-db:
image: mariadb:11.8
restart: unless-stopped
environment:
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_USER: ${DB_USERNAME}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_RANDOM_ROOT_PASSWORD: "yes"
volumes:
- firefly-iii-db:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 10s
timeout: 5s
retries: 5
firefly-iii-cron:
image: alpine:3.22
restart: unless-stopped
depends_on:
- firefly-iii
environment:
TZ: ${TZ}
STATIC_CRON_TOKEN: ${STATIC_CRON_TOKEN}
command:
- sh
- -c
- |
apk add --no-cache tzdata wget && \
(ln -snf /usr/share/zoneinfo/$$TZ /etc/localtime || true) && \
echo "0 3 * * * wget -qO- http://firefly-iii:8080/api/v1/cron/$$STATIC_CRON_TOKEN; echo" | crontab - && \
crond -f -L /dev/stdout
volumes:
firefly-iii-upload: {}
firefly-iii-db: {}[variables]
main_domain = "${domain}"
app_key = "${base64:32}"
db_name = "firefly"
db_user = "firefly"
db_password = "${password:32}"
cron_token = "${hash:32}"
site_owner = "${email}"
timezone = "UTC"
default_language = "en_US"
default_locale = "equal"
[config]
env = [
"APP_KEY=base64:${app_key}",
"APP_URL=https://${main_domain}",
"TRUSTED_PROXIES=**",
"TZ=${timezone}",
"SITE_OWNER=${site_owner}",
"DEFAULT_LANGUAGE=${default_language}",
"DEFAULT_LOCALE=${default_locale}",
"DB_DATABASE=${db_name}",
"DB_USERNAME=${db_user}",
"DB_PASSWORD=${db_password}",
"STATIC_CRON_TOKEN=${cron_token}",
"MYSQL_DATABASE=${db_name}",
"MYSQL_USER=${db_user}",
"MYSQL_PASSWORD=${db_password}",
"MYSQL_RANDOM_ROOT_PASSWORD=yes"
]
mounts = []
[[config.domains]]
serviceName = "firefly-iii"
port = 8080
host = "${main_domain}"Base64
To import this template in Dokploy: create a Compose service → Advanced → Base64 import and paste the content below:
ewogICJjb21wb3NlIjogInZlcnNpb246IFwiMy44XCJcblxuc2VydmljZXM6XG4gIGZpcmVmbHktaWlpOlxuICAgIGltYWdlOiBmaXJlZmx5aWlpL2NvcmU6dmVyc2lvbi02LjYuM1xuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIGZpcmVmbHktaWlpLWRiOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgIGVudmlyb25tZW50OlxuICAgICAgQVBQX0tFWTogJHtBUFBfS0VZfVxuICAgICAgQVBQX1VSTDogJHtBUFBfVVJMfVxuICAgICAgVFJVU1RFRF9QUk9YSUVTOiBcIioqXCJcbiAgICAgIFRaOiAke1RafVxuICAgICAgU0lURV9PV05FUjogJHtTSVRFX09XTkVSfVxuICAgICAgREVGQVVMVF9MQU5HVUFHRTogJHtERUZBVUxUX0xBTkdVQUdFfVxuICAgICAgREVGQVVMVF9MT0NBTEU6ICR7REVGQVVMVF9MT0NBTEV9XG4gICAgICBEQl9DT05ORUNUSU9OOiBteXNxbFxuICAgICAgREJfSE9TVDogZmlyZWZseS1paWktZGJcbiAgICAgIERCX1BPUlQ6IDMzMDZcbiAgICAgIERCX0RBVEFCQVNFOiAke0RCX0RBVEFCQVNFfVxuICAgICAgREJfVVNFUk5BTUU6ICR7REJfVVNFUk5BTUV9XG4gICAgICBEQl9QQVNTV09SRDogJHtEQl9QQVNTV09SRH1cbiAgICAgIFNUQVRJQ19DUk9OX1RPS0VOOiAke1NUQVRJQ19DUk9OX1RPS0VOfVxuICAgIGV4cG9zZTpcbiAgICAgIC0gXCI4MDgwXCJcbiAgICB2b2x1bWVzOlxuICAgICAgLSBmaXJlZmx5LWlpaS11cGxvYWQ6L3Zhci93d3cvaHRtbC9zdG9yYWdlL3VwbG9hZFxuXG4gIGZpcmVmbHktaWlpLWRiOlxuICAgIGltYWdlOiBtYXJpYWRiOjExLjhcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGVudmlyb25tZW50OlxuICAgICAgTVlTUUxfREFUQUJBU0U6ICR7REJfREFUQUJBU0V9XG4gICAgICBNWVNRTF9VU0VSOiAke0RCX1VTRVJOQU1FfVxuICAgICAgTVlTUUxfUEFTU1dPUkQ6ICR7REJfUEFTU1dPUkR9XG4gICAgICBNWVNRTF9SQU5ET01fUk9PVF9QQVNTV09SRDogXCJ5ZXNcIlxuICAgIHZvbHVtZXM6XG4gICAgICAtIGZpcmVmbHktaWlpLWRiOi92YXIvbGliL215c3FsXG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTURcIiwgXCJoZWFsdGhjaGVjay5zaFwiLCBcIi0tY29ubmVjdFwiLCBcIi0taW5ub2RiX2luaXRpYWxpemVkXCJdXG4gICAgICBpbnRlcnZhbDogMTBzXG4gICAgICB0aW1lb3V0OiA1c1xuICAgICAgcmV0cmllczogNVxuXG4gIGZpcmVmbHktaWlpLWNyb246XG4gICAgaW1hZ2U6IGFscGluZTozLjIyXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBkZXBlbmRzX29uOlxuICAgICAgLSBmaXJlZmx5LWlpaVxuICAgIGVudmlyb25tZW50OlxuICAgICAgVFo6ICR7VFp9XG4gICAgICBTVEFUSUNfQ1JPTl9UT0tFTjogJHtTVEFUSUNfQ1JPTl9UT0tFTn1cbiAgICBjb21tYW5kOlxuICAgICAgLSBzaFxuICAgICAgLSAtY1xuICAgICAgLSB8XG4gICAgICAgIGFwayBhZGQgLS1uby1jYWNoZSB0emRhdGEgd2dldCAmJiBcXFxuICAgICAgICAobG4gLXNuZiAvdXNyL3NoYXJlL3pvbmVpbmZvLyQkVFogL2V0Yy9sb2NhbHRpbWUgfHwgdHJ1ZSkgJiYgXFxcbiAgICAgICAgZWNobyBcIjAgMyAqICogKiB3Z2V0IC1xTy0gaHR0cDovL2ZpcmVmbHktaWlpOjgwODAvYXBpL3YxL2Nyb24vJCRTVEFUSUNfQ1JPTl9UT0tFTjsgZWNob1wiIHwgY3JvbnRhYiAtICYmIFxcXG4gICAgICAgIGNyb25kIC1mIC1MIC9kZXYvc3Rkb3V0XG5cbnZvbHVtZXM6XG4gIGZpcmVmbHktaWlpLXVwbG9hZDoge31cbiAgZmlyZWZseS1paWktZGI6IHt9XG4iLAogICJjb25maWciOiAiW3ZhcmlhYmxlc11cbm1haW5fZG9tYWluID0gXCIke2RvbWFpbn1cIlxuYXBwX2tleSA9IFwiJHtiYXNlNjQ6MzJ9XCJcbmRiX25hbWUgPSBcImZpcmVmbHlcIlxuZGJfdXNlciA9IFwiZmlyZWZseVwiXG5kYl9wYXNzd29yZCA9IFwiJHtwYXNzd29yZDozMn1cIlxuY3Jvbl90b2tlbiA9IFwiJHtoYXNoOjMyfVwiXG5zaXRlX293bmVyID0gXCIke2VtYWlsfVwiXG50aW1lem9uZSA9IFwiVVRDXCJcbmRlZmF1bHRfbGFuZ3VhZ2UgPSBcImVuX1VTXCJcbmRlZmF1bHRfbG9jYWxlID0gXCJlcXVhbFwiXG5cbltjb25maWddXG5lbnYgPSBbXG4gIFwiQVBQX0tFWT1iYXNlNjQ6JHthcHBfa2V5fVwiLFxuICBcIkFQUF9VUkw9aHR0cHM6Ly8ke21haW5fZG9tYWlufVwiLFxuICBcIlRSVVNURURfUFJPWElFUz0qKlwiLFxuICBcIlRaPSR7dGltZXpvbmV9XCIsXG4gIFwiU0lURV9PV05FUj0ke3NpdGVfb3duZXJ9XCIsXG4gIFwiREVGQVVMVF9MQU5HVUFHRT0ke2RlZmF1bHRfbGFuZ3VhZ2V9XCIsXG4gIFwiREVGQVVMVF9MT0NBTEU9JHtkZWZhdWx0X2xvY2FsZX1cIixcbiAgXCJEQl9EQVRBQkFTRT0ke2RiX25hbWV9XCIsXG4gIFwiREJfVVNFUk5BTUU9JHtkYl91c2VyfVwiLFxuICBcIkRCX1BBU1NXT1JEPSR7ZGJfcGFzc3dvcmR9XCIsXG4gIFwiU1RBVElDX0NST05fVE9LRU49JHtjcm9uX3Rva2VufVwiLFxuICBcIk1ZU1FMX0RBVEFCQVNFPSR7ZGJfbmFtZX1cIixcbiAgXCJNWVNRTF9VU0VSPSR7ZGJfdXNlcn1cIixcbiAgXCJNWVNRTF9QQVNTV09SRD0ke2RiX3Bhc3N3b3JkfVwiLFxuICBcIk1ZU1FMX1JBTkRPTV9ST09UX1BBU1NXT1JEPXllc1wiXG5dXG5tb3VudHMgPSBbXVxuXG5bW2NvbmZpZy5kb21haW5zXV1cbnNlcnZpY2VOYW1lID0gXCJmaXJlZmx5LWlpaVwiXG5wb3J0ID0gODA4MFxuaG9zdCA9IFwiJHttYWluX2RvbWFpbn1cIlxuIgp9Links
Tags
finance, budgeting, self-hosted
Version: 6.6.3
Firecrawl
Firecrawl is an API service that takes a URL, crawls it, and converts it into clean markdown or structured data. It can crawl all accessible subpages and provide clean data for each.
FiveM Server
A modded GTA V multiplayer server with optional txAdmin web interface for easy server management.