feature/minio-s3-integration

This commit is contained in:
2026-04-02 13:35:18 -06:00
parent 36424a2e04
commit 9439a6a775
42 changed files with 1930 additions and 558 deletions

View File

@@ -182,6 +182,15 @@ services:
- CENTRAL_SERVER_URL=${CENTRAL_SERVER_URL:-""}
- SYNC_SECRET_TOKEN=${SYNC_SECRET_TOKEN:-change-this-sync-token-in-production}
- SPOKE_URLS=${SPOKE_URLS:-""}
- CSV_IMPORT_STORAGE=${CSV_IMPORT_STORAGE:-minio}
- S3_ENDPOINT_URL=${S3_ENDPOINT_URL:-http://minio:9000}
- S3_ACCESS_KEY=${S3_ACCESS_KEY:-${MINIO_ROOT_USER:-minioadmin}}
- S3_SECRET_KEY=${S3_SECRET_KEY:-${MINIO_ROOT_PASSWORD:-minioadmin}}
- S3_BUCKET=${S3_BUCKET:-anexo76}
- S3_REGION=${S3_REGION:-us-east-1}
- S3_USE_SSL=${S3_USE_SSL:-false}
- S3_FILE_STORAGE=${S3_FILE_STORAGE:-true}
- S3_PRESIGNED_EXPIRES_SECONDS=${S3_PRESIGNED_EXPIRES_SECONDS:-3600}
ports:
- "8000:8000"
depends_on:
@@ -189,6 +198,8 @@ services:
condition: service_healthy
keycloak:
condition: service_healthy
minio:
condition: service_healthy
volumes:
- ./backend:/app
- backend_cache:/app/__pycache__
@@ -293,6 +304,14 @@ services:
- SITAR_API_URL=${SITAR_API_URL}
- SITAR_API_USER=${SITAR_API_USER}
- SITAR_API_PASSWORD=${SITAR_API_PASSWORD}
- CSV_IMPORT_STORAGE=${CSV_IMPORT_STORAGE:-minio}
- S3_ENDPOINT_URL=${S3_ENDPOINT_URL:-http://minio:9000}
- S3_ACCESS_KEY=${S3_ACCESS_KEY:-${MINIO_ROOT_USER:-minioadmin}}
- S3_SECRET_KEY=${S3_SECRET_KEY:-${MINIO_ROOT_PASSWORD:-minioadmin}}
- S3_BUCKET=${S3_BUCKET:-anexo76}
- S3_REGION=${S3_REGION:-us-east-1}
- S3_USE_SSL=${S3_USE_SSL:-false}
- S3_FILE_STORAGE=${S3_FILE_STORAGE:-true}
depends_on:
- backend
- valkey
@@ -317,6 +336,14 @@ services:
- CORE_DB_NAME=${CORE_DB_NAME:-anexo76_core}
- CORE_DB_USER=${CORE_DB_USER:-postgres}
- CORE_DB_PASSWORD=${POSTGRES_APP_PASSWORD:-postgres}
- CSV_IMPORT_STORAGE=${CSV_IMPORT_STORAGE:-minio}
- S3_ENDPOINT_URL=${S3_ENDPOINT_URL:-http://minio:9000}
- S3_ACCESS_KEY=${S3_ACCESS_KEY:-${MINIO_ROOT_USER:-minioadmin}}
- S3_SECRET_KEY=${S3_SECRET_KEY:-${MINIO_ROOT_PASSWORD:-minioadmin}}
- S3_BUCKET=${S3_BUCKET:-anexo76}
- S3_REGION=${S3_REGION:-us-east-1}
- S3_USE_SSL=${S3_USE_SSL:-false}
- S3_FILE_STORAGE=${S3_FILE_STORAGE:-true}
depends_on:
- backend
- valkey
@@ -336,6 +363,33 @@ services:
networks:
- backend-net
minio:
image: minio/minio:RELEASE.2025-09-07T16-13-09Z
container_name: anexo76-minio
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin}
ports:
- "${MINIO_API_PORT:-9100}:9000"
- "${MINIO_CONSOLE_PORT:-9101}:9001"
volumes:
- minio_data:/data
networks:
- backend-net
restart: unless-stopped
healthcheck:
test: [ "CMD-SHELL", "curl -f http://127.0.0.1:9000/minio/health/live || exit 1" ]
interval: 10s
timeout: 5s
retries: 5
start_period: 15s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
volumes:
postgres_app_data:
driver: local
@@ -349,6 +403,8 @@ volumes:
driver: local
backend_uploads:
driver: local
minio_data:
driver: local
networks:
backend-net: