Files
HetznerDokployLab/projects/firefly/docker-compose.yml
T

82 lines
2.0 KiB
YAML

services:
firefly:
image: fireflyiii/core:version-6.6.2
deploy:
resources:
limits:
cpus: "1.0"
memory: 1.5G
hostname: app
container_name: firefly_iii_core
restart: unless-stopped
labels:
- rclone.storage=storagebox-crypt
volumes:
- type: bind
source: /opt/media/storagebox/firefly/upload
target: /var/www/html/storage/upload
bind:
propagation: rslave
create_host_path: false
healthcheck:
test:
[
"CMD-SHELL",
"timeout 10 ls /var/www/html/storage/upload >/dev/null 2>&1 || exit 1"
]
interval: 30s
timeout: 15s
retries: 3
start_period: 60s
environment:
SITE_OWNER: ${SITE_OWNER}
DB_CONNECTION: ${DB_CONNECTION}
DB_HOST: ${DB_HOST}
DB_PORT: ${DB_PORT}
DB_DATABASE: ${DB_DATABASE}
DB_USERNAME: ${DB_USERNAME}
DB_PASSWORD: ${DB_PASSWORD}
STATIC_CRON_TOKEN: ${STATIC_CRON_TOKEN}
APP_ENV: ${APP_ENV}
APP_KEY: ${APP_KEY}
APP_URL: ${APP_URL}
TRUSTED_PROXIES: ${TRUSTED_PROXIES}
networks:
- dokploy-network
cron:
image: alpine:3.24.2
restart: unless-stopped
container_name: firefly_iii_cron
environment:
STATIC_CRON_TOKEN: ${STATIC_CRON_TOKEN}
command: sh -c "
apk add tzdata && \
(ln -s /usr/share/zoneinfo/$$TZ /etc/localtime || true) && \
echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/$$STATIC_CRON_TOKEN;echo\" | crontab - && \
crond -f -L /dev/stdout"
networks:
- dokploy-network
db:
image: mariadb:13.0
hostname: db
container_name: firefly_iii_db
restart: unless-stopped
environment:
MYSQL_RANDOM_ROOT_PASSWORD: ${MYSQL_RANDOM_ROOT_PASSWORD}
MYSQL_USER: ${DB_USERNAME}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_DATABASE: ${DB_DATABASE}
volumes:
- firefly_iii_db:/var/lib/mysql
networks:
- dokploy-network
volumes:
firefly_iii_db:
networks:
dokploy-network:
external: true