Warnung: Wenn dies ein Ordner ist, wird der gesamte Inhalt einschließlich Unterordner und Dokumente gelöscht.
Definieren Sie pfadbasierte Zugriffsregeln für Bereiche Ihres Wikis. Regeln werden in der Reihenfolge ausgewertet. Die erste Übereinstimmung gewinnt.
Erstellen und verwalten Sie Backups Ihrer Wiki-Daten. Backups umfassen alle Dokumente, Bilder und Konfigurationsdateien.
Firefly III ist eine selbst gehostete Finanzverwaltung (Budgets, Konten, Transaktionen, Berichte) mit Weboberfläche, PostgreSQL/MySQL-Backend und optionalem Datenimport-Tool.
Keine.
Tip
Optional
Wenn Firefly III auch von außerhalb des Heimnetzes erreichbar sein soll, werden zusätzlich folgende Komponenten benötigt:
mkdir /syno/firefly
mkdir /syno/firefly/upload
mkdir /syno/firefly/config
mkdir /syno/firefly/db
mkdir /syno/firefly/importer
Im Docker-Ordner folgende Verzeichnisstruktur anlegen:
firefly
firefly/upload
firefly/config
firefly/db
firefly/importer
version: '3.8'
services:
app:
image: fireflyiii/core:latest
hostname: firefly-app
container_name: firefly_iii_app
restart: always
ports:
- 2222:8080
volumes:
# Für die Proxmox-VM verwenden
- /syno/firefly/upload:/var/www/html/storage/upload
- /syno/firefly/config:/var/www/html/storage/app/config
- /syno/firefly/db:/var/lib/mysql
# Für die Synology verwenden
# Volume-Nummer ggf. anpassen
- /volume2/docker/firefly/upload:/var/www/html/storage/upload
- /volume2/docker/firefly/config:/var/www/html/storage/app/config
- /volume2/docker/firefly/db:/var/lib/mysql
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/api/v1/about"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
environment:
- APP_KEY=<app-key>
- APP_URL=http://192.168.111.35:2222
- DB_HOST=db
- DB_PORT=3306
- DB_CONNECTION=mysql
- DB_DATABASE=<db-name>
- DB_USERNAME=<db-user>
- DB_PASSWORD=<db-passwort>
- TZ=Europe/Berlin
- STATIC_CRON_TOKEN=<static-cron-token>
networks:
- firefly_net
depends_on:
- db
db:
image: mariadb:lts
hostname: firefly-db
container_name: firefly_iii_db
restart: always
environment:
- MYSQL_DATABASE=<db-name>
- MYSQL_USER=<db-user>
- MYSQL_PASSWORD=<db-passwort>
- MYSQL_RANDOM_ROOT_PASSWORD=yes
volumes:
# Für die Proxmox-VM verwenden
- /syno/firefly/db:/var/lib/mysql
# Für die Synology verwenden
# Volume-Nummer ggf. anpassen
- /volume2/docker/firefly/db:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 10s
timeout: 5s
retries: 5
networks:
- firefly_net
cron:
image: alpine:latest
restart: always
container_name: firefly_iii_cron
command: >
sh -c "
apk add --no-cache tzdata curl crond &&
cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime &&
echo 'Europe/Berlin' > /etc/timezone &&
echo '0 3 * * * curl -X POST http://app:8080/api/v1/cron/$${STATIC_CRON_TOKEN}' |
crontab - &&
crond -f -L /dev/stdout"
environment:
- STATIC_CRON_TOKEN=<static-cron-token>
networks:
- firefly_net
depends_on:
- app
data-importer:
image: fireflyiii/data-importer:latest
container_name: firefly_iii_importer
ports:
- 2221:8080
volumes:
# Für die Proxmox-VM verwenden
- /syno/firefly/importer:/data
# Für die Synology verwenden
# Volume-Nummer ggf. anpassen
- /volume2/docker/firefly/importer:/data
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
environment:
- FIREFLY_III_URL=http://192.168.X.Y:2222
- FIREFLY_III_ACCESS_TOKEN=<firefly-access-token>
restart: always
networks:
firefly_net:
driver: bridge
Note
Im offiziellen docker-compose.yml des Projekts (firefly-iii/docker) ist kein Healthcheck enthalten. Der Healthcheck für db (healthcheck.sh --connect --innodb_initialized) ist offiziell im MariaDB-Docker-Hub-Image dokumentiert. Die Healthchecks für app und data-importer (wget auf /api/v1/about bzw. /health) wurden selbst erstellt. cron erhält bewusst keinen Healthcheck, da es sich um einen reinen Cron-Runner ohne HTTP-Endpunkt handelt.
Warning
APP_KEY, Datenbank-User/Datenbankname/Datenbank-Passwort, STATIC_CRON_TOKEN und FIREFLY_III_ACCESS_TOKEN sind im obigen Stack durch Platzhalter ersetzt — siehe Notizen.
http://<host-ip>:2222http://<host-ip>:2221APP_URL (Firefly III) bzw. FIREFLY_III_URL (Data-Importer) müssen auf die tatsächlich genutzte Zugriffs-URL zeigen| Oberfläche | Service | Host-Pfad | Container-Pfad | Zweck |
|---|---|---|---|---|
| Proxmox-VM | app | /syno/firefly/upload |
/var/www/html/storage/upload |
Datei-Uploads |
| Proxmox-VM | app | /syno/firefly/config |
/var/www/html/storage/app/config |
Firefly-III-Konfiguration |
| Proxmox-VM | app | /syno/firefly/db |
/var/lib/mysql |
Zugriff auf die MariaDB-Datenbankdateien |
| Proxmox-VM | db | /syno/firefly/db |
/var/lib/mysql |
MariaDB-Datenbankdateien |
| Proxmox-VM | data-importer | /syno/firefly/importer |
/data |
Konfiguration/Zustand des Data-Importers |
| Synology | app | /volume2/docker/firefly/upload |
/var/www/html/storage/upload |
Datei-Uploads |
| Synology | app | /volume2/docker/firefly/config |
/var/www/html/storage/app/config |
Firefly-III-Konfiguration |
| Synology | app | /volume2/docker/firefly/db |
/var/lib/mysql |
Zugriff auf die MariaDB-Datenbankdateien |
| Synology | db | /volume2/docker/firefly/db |
/var/lib/mysql |
MariaDB-Datenbankdateien |
| Synology | data-importer | /volume2/docker/firefly/importer |
/data |
Konfiguration/Zustand des Data-Importers |
| Variable | Wert | Bedeutung |
|---|---|---|
APP_KEY |
(siehe Notizen) | Verschlüsselungsschlüssel der Anwendung (32 Byte, base64) |
APP_URL |
http://192.168.111.35:2222 |
Basis-URL, unter der Firefly III erreichbar ist |
DB_HOST |
db |
Hostname der Datenbank (Container-Name) |
DB_PORT |
3306 |
Datenbank-Port |
DB_CONNECTION |
mysql |
Datenbank-Treiber |
DB_DATABASE |
(siehe Notizen) | Datenbankname |
DB_USERNAME |
(siehe Notizen) | Datenbank-Benutzer |
DB_PASSWORD |
(siehe Notizen) | Datenbank-Passwort |
TZ |
Europe/Berlin | Zeitzone |
STATIC_CRON_TOKEN |
(siehe Notizen) | Token zur Authentifizierung des Cron-Aufrufs (32 Zeichen) |
| Variable | Wert | Bedeutung |
|---|---|---|
MYSQL_DATABASE |
(siehe Notizen) | Zu erstellende Datenbank |
MYSQL_USER |
(siehe Notizen) | Zu erstellender Datenbank-Benutzer |
MYSQL_PASSWORD |
(siehe Notizen) | Passwort des Datenbank-Benutzers |
MYSQL_RANDOM_ROOT_PASSWORD |
yes |
Erzeugt ein zufälliges Root-Passwort (nicht abrufbar) |
| Variable | Wert | Bedeutung |
|---|---|---|
STATIC_CRON_TOKEN |
(siehe Notizen) | Token zur Authentifizierung des Cron-Aufrufs (muss mit app übereinstimmen) |
| Variable | Wert | Bedeutung |
|---|---|---|
FIREFLY_III_URL |
http://192.168.X.Y:2222 |
Adresse der Firefly-III-Instanz |
FIREFLY_III_ACCESS_TOKEN |
(siehe Notizen) | Personal Access Token für den API-Zugriff auf Firefly III |
Netzwerk: eigenes Bridge-Netzwerk firefly_net (app, db, cron)
Neustart-Verhalten: always (alle Services)