Adds firefly and homebox, replaces nginx-proxy/acme-companion with acme

This commit is contained in:
tga
2026-08-15 20:08:35 +02:00
parent 7e87a6cbb9
commit c8af74ad7d
38 changed files with 596 additions and 52 deletions
+105
View File
@@ -0,0 +1,105 @@
[Unit]
Description=FireFly III cron container
After=firefly.container
Requires=firefly.container
[Container]
AutoUpdate=registry
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"
ContainerName=firefly-cron
Environment=APP_DEBUG=false
Environment=APP_ENV=production
Environment=APP_LOG_LEVEL=notice
Environment=APP_NAME=FireflyIII
Environment=APP_URL=https://finance.gtache.ch
Environment=AUDIT_LOG_CHANNEL=
Environment=AUDIT_LOG_LEVEL=emergency
Environment=AUTHENTICATION_GUARD=web
Environment=AUTHENTICATION_GUARD_EMAIL=
Environment=AUTHENTICATION_GUARD_HEADER=REMOTE_USER
Environment=BROADCAST_DRIVER=log
Environment=CACHE_DRIVER=redis
Environment=CACHE_PREFIX=firefly
Environment=COOKIE_DOMAIN=
Environment=COOKIE_PATH="/"
Environment=COOKIE_SAMESITE=lax
Environment=COOKIE_SECURE=false
Environment=CUSTOM_LOGOUT_URL=
Environment=DB_CONNECTION=pgsql
Environment=DB_DATABASE=firefly
Environment=DB_HOST=firefly-database
Environment=DB_PORT=5432
Environment=DB_SOCKET=
Environment=DB_USERNAME=firefly
Environment=DKR_CHECK_SQLITE=false
Environment=DEFAULT_LANGUAGE=en_US
Environment=DEFAULT_LOCALE=equal
Environment=DEMO_PASSWORD=
Environment=DEMO_USERNAME=
Environment=DISABLE_CSP_HEADER=false
Environment=DISABLE_FRAME_HEADER=false
Environment=FIREFLY_III_LAYOUT=v1
Environment=IPINFO_TOKEN=
Environment=LOG_CHANNEL=stack
Environment=MAIL_ALLOW_SELF_SIGNED=false
Environment=MAIL_ENCRYPTION=null
Environment=MAIL_FROM=guillaume@gtache.ch
Environment=MAIL_HOST=null
Environment=MAIL_MAILER=log
Environment=MAIL_PASSWORD=null
Environment=MAIL_PORT=2525
Environment=MAIL_SENDMAIL_COMMAND=
Environment=MAIL_USERNAME=null
Environment=MAIL_VERIFY_PEER=true
Environment=MAIL_VERIFY_PEER_NAME=true
Environment=MAILERSEND_API_KEY=
Environment=MAILGUN_DOMAIN=
Environment=MAILGUN_ENDPOINT=api.eu.mailgun.net
Environment=MAILGUN_SECRET=
Environment=MANDRILL_SECRET=
Environment=MAP_DEFAULT_LAT=46.593555
Environment=MAP_DEFAULT_LONG=6.834227
Environment=MAP_DEFAULT_ZOOM=6
Environment=PAPERTRAIL_HOST=
Environment=PAPERTRAIL_PORT=
Environment=PGSQL_SCHEMA=public
Environment=PGSQL_SSL_CERT=null
Environment=PGSQL_SSL_CRL_FILE=null
Environment=PGSQL_SSL_KEY=null
Environment=PGSQL_SSL_MODE=prefer
Environment=PGSQL_SSL_ROOT_CERT=null
Environment=PUSHER_ID=
Environment=PUSHER_KEY=
Environment=PUSHER_SECRET=
Environment=QUEUE_DRIVER=sync
Environment=REDIS_CACHE_DB="1"
Environment=REDIS_DB="0"
Environment=REDIS_HOST=firefly-redis
Environment=REDIS_PATH=
Environment=REDIS_PORT=6379
Environment=REDIS_SCHEME=tcp
Environment=REDIS_USERNAME=firefly
Environment=SEND_ERROR_MESSAGE=true
Environment=SESSION_DRIVER=file
Environment=SITE_OWNER=guillaume@gtache.ch
Environment=SPARKPOST_SECRET=
Environment=TRACKER_SITE_ID=
Environment=TRACKER_URL=
Environment=TRUSTED_PROXIES=*
Environment=TZ=Europe/Zurich
Image=docker.io/alpine:latest
Label=io.containers.autoupdate=registry
Pod=firefly.pod
Secret=database-password,type=env,target=DB_PASSWORD
StartWithPod=true
Timezone=Europe/Zurich
[Service]
Restart=always
[Install]
WantedBy=default.target
@@ -0,0 +1,27 @@
[Unit]
Description=FireFly III database container
[Container]
AutoUpdate=registry
ContainerName=firefly-database
Environment=POSTGRES_USER=firefly
Environment=POSTGRES_DB=firefly
Environment=TZ=Europe/Zurich
HealthCmd=pg_isready -U firefly
HealthInterval=30s
HealthTimeout=10s
HealthRetries=5
Image=docker.io/postgres:18
Label=io.containers.autoupdate=registry
Pod=firefly.pod
Secret=database-password,type=env,target=POSTGRES_PASSWORD
StartWithPod=true
Timezone=Europe/Zurich
Volume=firefly-database.volume:/var/lib/postgresql
Volume=/var/mnt/nas/containers/firefly/storage/database-backup:/backup
[Service]
Restart=always
[Install]
WantedBy=default.target
+2
View File
@@ -0,0 +1,2 @@
[Volume]
VolumeName=firefly-database
+113
View File
@@ -0,0 +1,113 @@
[Unit]
Description=FireFly III container
After=firefly.container
Requires=firefly.container
[Container]
AutoUpdate=registry
ContainerName=firefly-importer
Environment=APP_DEBUG=false
Environment=APP_ENV=local
Environment=APP_NAME=DataImporter
Environment=APP_URL=http://localhost
Environment=ASSET_URL=
Environment=BROADCAST_DRIVER=log
Environment=CACHE_DRIVER=file
Environment=CAN_POST_AUTOIMPORT=false
Environment=CAN_POST_FILES=false
Environment=CONNECTION_TIMEOUT=31.41
Environment=ENABLE_BANKING_APP_ID=
Environment=ENABLE_BANKING_IMPORT_IP=autodetect
Environment=ENABLE_BANKING_IMPORT_IP_HEADER=false
Environment=ENABLE_BANKING_PRIVATE_KEY=
Environment=ENABLE_MAIL_REPORT=false
Environment=EXPECT_SECURE_URL=false
Environment=FAKE_DATA=false
Environment=FALLBACK_IN_DIR=false
Environment=FALLBACK_LOCALE=fr_CH
Environment=FCGI_CONNECT=localhost:9001
Environment=FIREFLY_III_ACCESS_TOKEN=
Environment=FIREFLY_III_CLIENT_ID=
Environment=FIREFLY_III_URL=http://firefly:8080
Environment=GOCARDLESS_GET_ACCOUNT_DETAILS=false
Environment=GOCARDLESS_GET_BALANCE_DETAILS=false
Environment=IGNORE_DUPLICATE_ERRORS=false
Environment=IGNORE_NOT_FOUND_TRANSACTIONS=false
Environment=IMPORT_DIR_ALLOWLIST=
Environment=IS_EXTERNAL=false
Environment=JSON_CONFIGURATION_DIR=
Environment=LOG_CHANNEL=stack
Environment=LOG_LEVEL=notice
Environment=LOG_RETURN_JSON=false
Environment=LUNCH_FLOW_API_KEY=
Environment=LUNCH_FLOW_API_URL=https://lunchflow.app/api/v1/
Environment=MAIL_DESTINATION=guillaume@gtache.ch
Environment=MAIL_ENCRYPTION=null
Environment=MAIL_FROM_ADDRESS=guillaume@gtache.ch
Environment=MAIL_HOST=
Environment=MAIL_MAILER=
Environment=MAIL_PASSWORD=
Environment=MAIL_PORT=2525
Environment=MAIL_USERNAME=
Environment=MAILGUN_DOMAIN=
Environment=MAILGUN_ENDPOINT=
Environment=MAILGUN_SECRET=
Environment=NGINX_HTTP_PORT=8081
Environment=NGINX_HTTPS_PORT=8444
Environment=NORDIGEN_ID=
Environment=NORDIGEN_KEY=
Environment=NORDIGEN_SANDBOX=false
Environment=POSTMARK_TOKEN=
Environment=QUEUE_CONNECTION=sync
Environment=REDIS_CACHE_DB="1"
Environment=REDIS_DB="0"
Environment=REDIS_HOST=127.0.0.1
Environment=REDIS_PASSWORD=null
Environment=REDIS_PORT=6379
Environment=RESPOND_TO_GOCARDLESS_LIMIT=wait
Environment=SESSION_DRIVER=file
Environment=SESSION_LIFETIME=120
Environment=SIMPLEFIN_AUTO_CREATE_EXPENSE_ACCOUNTS=true
Environment=SIMPLEFIN_CACHE_DURATION=3600
Environment=SIMPLEFIN_CLUSTERING_SIMILARITY_THRESHOLD=0.7
Environment=SIMPLEFIN_CONNECTION_TIMEOUT=30
Environment=SIMPLEFIN_DEFAULT_DATE_RANGE=90
Environment=SIMPLEFIN_DEMO_TOKEN=
Environment=SIMPLEFIN_DEMO_URL=
Environment=SIMPLEFIN_ENABLE_CACHING=true
Environment=SIMPLEFIN_ENABLE_TRANSACTION_CLUSTERING=true
Environment=SIMPLEFIN_EXPENSE_MATCHING_THRESHOLD=0.7
Environment=SIMPLEFIN_MAX_TRANSACTIONS=10000
Environment=SIMPLEFIN_REQUEST_TIMEOUT=60
Environment=SIMPLEFIN_RETRY_ATTEMPTS=3
Environment=SIMPLEFIN_RETRY_DELAY=
Environment=SIMPLEFIN_SMART_EXPENSE_MATCHING=true
Environment=SIMPLEFIN_TOKEN=
Environment=SOPHTRON_ACCESS_KEY=
Environment=SOPHTRON_SANDBOX=false
Environment=SOPHTRON_USER_ID=
Environment=SPECTRE_APP_ID=
Environment=SPECTRE_SECRET=
Environment=TRACKER_SITE_ID=
Environment=TRACKER_URL=
Environment=TRUSTED_PROXIES=*
Environment=TZ=Europe/Zurich
Environment=USE_CACHE=true
Environment=VANITY_URL=https://finance.gtache.ch
Environment=VERIFY_TLS_SECURITY=true
Image=docker.io/fireflyiii/data-importer:latest
Label=io.containers.autoupdate=registry
Pod=firefly.pod
Secret=auto-import,type=env,target=AUTO_IMPORT_SECRET
StartWithPod=true
Timezone=Europe/Zurich
Volume=firefly-upload.volume:/var/www/html/storage/upload
Volume=/var/mnt/nas/containers/firefly/storage/importer.http.conf.template:/etc/nginx/site-opts.d/http.conf.template
Volume=/var/mnt/nas/containers/firefly/storage/importer.https.conf.template:/etc/nginx/site-opts.d/https.conf.template
Volume=/var/mnt/nas/containers/firefly/storage/importer.www.conf:/usr/local/etc/php-fpm.d/docker-php-serversideup-pool.conf
[Service]
Restart=always
[Install]
WantedBy=default.target
@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/firefly/storage/redis-config
Driver=local
Options=bind
Type=none
VolumeName=firefly-redis-config
@@ -0,0 +1,2 @@
[Volume]
VolumeName=firefly-redis-data
+22
View File
@@ -0,0 +1,22 @@
[Unit]
Description=FireFly III Redis container
[Container]
AutoUpdate=registry
ContainerName=firefly-redis
Environment=TZ=Europe/Zurich
Exec=/bin/sh -c 'redis-server --appendonly yes --requirepass $${REDIS_PASSWORD}'
Image=docker.io/redis:alpine
Label=io.containers.autoupdate=registry
Pod=firefly.pod
Secret=redis-password,type=env,target=REDIS_PASSWORD
StartWithPod=true
Timezone=Europe/Zurich
Volume=firefly-redis-config.volume:/usr/local/etc/redis
Volume=firefly-redis-data.volume:/data
[Service]
Restart=always
[Install]
WantedBy=default.target
+7
View File
@@ -0,0 +1,7 @@
[Volume]
Copy=true
Device=/var/mnt/nas/containers/firefly/storage/upload
Driver=local
Options=bind
Type=none
VolumeName=firefly-upload
+108
View File
@@ -0,0 +1,108 @@
[Unit]
Description=FireFly III container
After=firefly-database.container
Requires=firefly-database.container
After=firefly-redis.container
Requires=firefly-redis.container
[Container]
AutoUpdate=registry
ContainerName=firefly
Environment=APP_DEBUG=false
Environment=APP_ENV=production
Environment=APP_LOG_LEVEL=notice
Environment=APP_NAME=FireflyIII
Environment=APP_URL=https://finance.gtache.ch
Environment=AUDIT_LOG_CHANNEL=
Environment=AUDIT_LOG_LEVEL=emergency
Environment=AUTHENTICATION_GUARD=web
Environment=AUTHENTICATION_GUARD_EMAIL=
Environment=AUTHENTICATION_GUARD_HEADER=REMOTE_USER
Environment=BROADCAST_DRIVER=log
Environment=CACHE_DRIVER=redis
Environment=CACHE_PREFIX=firefly
Environment=COOKIE_DOMAIN=
Environment=COOKIE_PATH="/"
Environment=COOKIE_SAMESITE=lax
Environment=COOKIE_SECURE=false
Environment=CUSTOM_LOGOUT_URL=
Environment=DB_CONNECTION=pgsql
Environment=DB_DATABASE=firefly
Environment=DB_HOST=firefly-database
Environment=DB_PORT=5432
Environment=DB_SOCKET=
Environment=DB_USERNAME=firefly
Environment=DKR_CHECK_SQLITE=false
Environment=DEFAULT_LANGUAGE=en_US
Environment=DEFAULT_LOCALE=equal
Environment=DEMO_PASSWORD=
Environment=DEMO_USERNAME=
Environment=DISABLE_CSP_HEADER=false
Environment=DISABLE_FRAME_HEADER=false
Environment=FIREFLY_III_LAYOUT=v1
Environment=IPINFO_TOKEN=
Environment=LOG_CHANNEL=stack
Environment=MAIL_ALLOW_SELF_SIGNED=false
Environment=MAIL_ENCRYPTION=null
Environment=MAIL_FROM=guillaume@gtache.ch
Environment=MAIL_HOST=null
Environment=MAIL_MAILER=log
Environment=MAIL_PASSWORD=null
Environment=MAIL_PORT=2525
Environment=MAIL_SENDMAIL_COMMAND=
Environment=MAIL_USERNAME=null
Environment=MAIL_VERIFY_PEER=true
Environment=MAIL_VERIFY_PEER_NAME=true
Environment=MAILERSEND_API_KEY=
Environment=MAILGUN_DOMAIN=
Environment=MAILGUN_ENDPOINT=api.eu.mailgun.net
Environment=MAILGUN_SECRET=
Environment=MANDRILL_SECRET=
Environment=MAP_DEFAULT_LAT=46.593555
Environment=MAP_DEFAULT_LONG=6.834227
Environment=MAP_DEFAULT_ZOOM=6
Environment=PAPERTRAIL_HOST=
Environment=PAPERTRAIL_PORT=
Environment=PGSQL_SCHEMA=public
Environment=PGSQL_SSL_CERT=null
Environment=PGSQL_SSL_CRL_FILE=null
Environment=PGSQL_SSL_KEY=null
Environment=PGSQL_SSL_MODE=prefer
Environment=PGSQL_SSL_ROOT_CERT=null
Environment=PUSHER_ID=
Environment=PUSHER_KEY=
Environment=PUSHER_SECRET=
Environment=QUEUE_DRIVER=sync
Environment=REDIS_CACHE_DB="1"
Environment=REDIS_DB="0"
Environment=REDIS_HOST=firefly-redis
Environment=REDIS_PATH=
Environment=REDIS_PORT=6379
Environment=REDIS_SCHEME=tcp
Environment=REDIS_USERNAME=firefly
Environment=SEND_ERROR_MESSAGE=true
Environment=SESSION_DRIVER=file
Environment=SITE_OWNER=guillaume@gtache.ch
Environment=SPARKPOST_SECRET=
Environment=TRACKER_SITE_ID=
Environment=TRACKER_URL=
Environment=TRUSTED_PROXIES=**
Environment=TZ=Europe/Zurich
Image=docker.io/fireflyiii/core:latest
Label=io.containers.autoupdate=registry
Pod=firefly.pod
Secret=app-key,type=env,target=APP_KEY
Secret=cron-token,type=env,target=STATIC_CRON_TOKEN
Secret=database-password,type=env,target=DB_PASSWORD
Secret=passport-private-key,type=env,target=PASSPORT_PRIVATE_KEY
Secret=passport-public-key,type=env,target=PASSPORT_PUBLIC_KEY
Secret=redis-password,type=env,target=REDIS_PASSWORD
StartWithPod=true
Timezone=Europe/Zurich
Volume=firefly-upload.volume:/var/www/html/storage/upload
[Service]
Restart=always
[Install]
WantedBy=default.target
+4
View File
@@ -0,0 +1,4 @@
[Pod]
PodName=firefly
PublishPort=9028:8080
PublishPort=9029:8081