Improve expenses receipts UX and Coolify MinIO deployment.

Extract receipt UI components, add view/edit/create dialog modes with list receipt previews, add docker-compose.coolify.yml and clearer COOLIFY/S3 path-style guidance for Application + MinIO setups.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-27 00:47:59 -04:00
co-authored by Cursor
parent 5e6e51337a
commit c267b3e1c8
15 changed files with 1236 additions and 361 deletions
+6 -10
View File
@@ -136,17 +136,12 @@ NEXT_PUBLIC_UMAMI_SCRIPT_URL=https://analytics.umami.is/script.js
# S3_ENDPOINT — who can reach MinIO?
# • Host dev (bun dev + docker-compose.dev.yml MinIO on the host): localhost:9000
# • App in Docker (docker-compose.yml): http://minio:9000 (Compose service name)
# • Coolify — see docs/COOLIFY.md for full steps. Summary:
# - Best: one Compose resource with docker-compose.yml (app+db+minio); do not override S3_ENDPOINT.
# - App + separate MinIO stack: ENOTFOUND minio means the app is not on MinIO's Docker network.
# Fix: Beevoice Application → enable "Connect to Predefined Network" (same destination as MinIO),
# set S3_ENDPOINT=http://<internal-host-from-minio-ui>:9000 (often NOT bare "minio").
# • Coolify — see docs/COOLIFY.md. Summary:
# - Best: one Compose resource with docker-compose.coolify.yml (app+db+minio).
# - Application + separate MinIO: ENOTFOUND minio → set S3_ENDPOINT to
# SERVICE_URL_MINIO_9000 (public domain) OR http://minio-<resource-uuid>:9000
# with Connect to Predefined Network on both resources. Never bare "minio".
# - NEVER use localhost in production — inside the app container that is the app, not MinIO.
# Troubleshooting getaddrinfo ENOTFOUND minio:
# 1) Confirm Beevoice and MinIO are same Coolify project/destination
# 2) Enable Connect to Predefined Network on Beevoice; redeploy
# 3) Copy hostname from MinIO resource internal URL → S3_ENDPOINT (http://HOST:9000)
# 4) Or deploy docker-compose.yml as a single stack instead
#
# Local dev with docker-compose.dev.yml MinIO (host `bun dev`):
S3_ENDPOINT=http://localhost:9000
@@ -154,6 +149,7 @@ S3_BUCKET=beenvoice-receipts
S3_ACCESS_KEY=minioadmin
S3_SECRET_KEY=minioadmin
S3_REGION=us-east-1
# S3_FORCE_PATH_STYLE=true # default on when S3_ENDPOINT is set; required for MinIO/HTTPS proxy
#
# docker-compose.yml sets S3_ENDPOINT=http://minio:9000 inside the app container
# automatically. MINIO_ROOT_* below must match S3_ACCESS_KEY / S3_SECRET_KEY.