From 84996ab2f6e416b419e68883d2c21519cd906141 Mon Sep 17 00:00:00 2001 From: Viren070 Date: Sun, 13 Jul 2025 15:37:16 +0100 Subject: [PATCH] feat: add actual budget --- .env | 1 + apps/actual-budget/.env | 4 ++++ apps/actual-budget/compose.yaml | 29 +++++++++++++++++++++++++++++ apps/cloudflare-ddns/compose.yaml | 1 + compose.yaml | 1 + 5 files changed, 36 insertions(+) create mode 100644 apps/actual-budget/.env create mode 100644 apps/actual-budget/compose.yaml diff --git a/.env b/.env index d8ac90f..0fabd3d 100644 --- a/.env +++ b/.env @@ -113,6 +113,7 @@ CLOUDFLARE_API_TOKEN= # These values are the subdomains that Traefik will use to route traffic to the services. # You can modify these values to suit your needs, but ensure that they are unique and do not conflict with other services. +ACTUAL_BUDGET_HOSTNAME=actual-budget.${DOMAIN?} ADDON_MANAGER_HOSTNAME=addon-manager.${DOMAIN?} AI_SEARCH_HOSTNAME=ai-search.${DOMAIN?} AIOLISTS_HOSTNAME=aiolists.${DOMAIN?} diff --git a/apps/actual-budget/.env b/apps/actual-budget/.env new file mode 100644 index 0000000..e65a87e --- /dev/null +++ b/apps/actual-budget/.env @@ -0,0 +1,4 @@ +# File size limits in MB. +UPLOAD_FILE_SYNC_SIZE_LIMIT=20 +UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT=50 +UPLOAD_FILE_SIZE_LIMIT=20 \ No newline at end of file diff --git a/apps/actual-budget/compose.yaml b/apps/actual-budget/compose.yaml new file mode 100644 index 0000000..332ce65 --- /dev/null +++ b/apps/actual-budget/compose.yaml @@ -0,0 +1,29 @@ +services: + actual-budget: + image: actualbudget/actual-server:latest + container_name: actual-budget + restart: unless-stopped + expose: + - 5006 + environment: + ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB: "${UPLOAD_FILE_SYNC_SIZE_LIMIT}" + ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB: "${UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT}" + ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB: "${UPLOAD_FILE_SIZE_LIMIT}" + labels: + - "traefik.enable=true" + - "traefik.http.routers.actual-budget.rule=Host(`${ACTUAL_BUDGET_HOSTNAME?}`)" + - "traefik.http.routers.actual-budget.entrypoints=websecure" + - "traefik.http.routers.actual-budget.tls.certresolver=letsencrypt" + - "traefik.http.routers.actual-budget.middlewares=authelia@docker" + - "traefik.http.services.actual-budget.loadbalancer.server.port=5006" + volumes: + - ${DOCKER_DATA_DIR}/actual-budget:/data + healthcheck: + test: ['CMD-SHELL', 'node src/scripts/health-check.js'] + interval: 60s + timeout: 10s + retries: 3 + start_period: 20s + profiles: + - actual-budget + - all diff --git a/apps/cloudflare-ddns/compose.yaml b/apps/cloudflare-ddns/compose.yaml index 8630f8b..7c97443 100644 --- a/apps/cloudflare-ddns/compose.yaml +++ b/apps/cloudflare-ddns/compose.yaml @@ -12,6 +12,7 @@ services: CLOUDFLARE_API_TOKEN: "${CLOUDFLARE_API_TOKEN}" PROXIED: false DOMAINS: > + ${ACTUAL_BUDGET_HOSTNAME}, ${ADDON_MANAGER_HOSTNAME}, ${AI_SEARCH_HOSTNAME}, ${AIOLISTS_HOSTNAME}, diff --git a/compose.yaml b/compose.yaml index ee05671..d9d3843 100644 --- a/compose.yaml +++ b/compose.yaml @@ -1,4 +1,5 @@ include: + - apps/actual-budget/compose.yaml - apps/addon-manager/compose.yaml - apps/aiolists/compose.yaml - apps/aiostreams/compose.yaml