beetask/deploy/.env.production.example
Gabriel Santana de Menezes 59a5c61585 feat: add MinIO image server and profile photo upload
Infrastructure: MinIO service added to docker-compose (prod + dev) with
minio-init container that creates the avatars bucket with public read
policy. Traefik routes minio.task.beetech.dev → port 9000.

Backend: native MinIO SDK integration via MinioStorageService;
UploadUserPhotoUseCase validates 5 MB limit and image content-type;
new POST /auth/profile/photo endpoint (multipart). All hardcoded
ui-avatars.com fallback URLs removed from 6 use cases — backend now
returns null when user has no photo.

Frontend: ProfilePage gains clickable avatar with camera overlay,
file picker, preview, and photo upload on save. UserAvatar gains
onError handler for broken URLs and xs size. OrganizationAdminPage
replaces hardcoded ui-avatars.com with UserAvatar component.

CI/CD: deploy-main.yml passes 5 new MinIO secrets to the server and
writes them to .env.production.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 18:01:59 -04:00

20 lines
707 B
Text

POSTGRES_USER=beetask
POSTGRES_PASSWORD=change-me
DB_URL=jdbc:postgresql://203.0.113.10:5432/beetask
BACKEND_IMAGE=ghcr.io/owner/repo-backend:latest
FRONTEND_IMAGE=ghcr.io/owner/repo-frontend:latest
QUARKUS_HTTP_CORS_ORIGINS=https://app.example.com
MP_JWT_VERIFY_ISSUER=https://beetech.net
SMALLRYE_JWT_SIGN_KEY_LOCATION=privateKey.pem
MP_JWT_VERIFY_PUBLICKEY_LOCATION=publicKey.pem
# MinIO (object storage for user avatars)
# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD are used both by the MinIO service
# and by the backend as access/secret keys.
MINIO_ROOT_USER=change-me
MINIO_ROOT_PASSWORD=change-me
MINIO_ENDPOINT=http://minio:9000
MINIO_PUBLIC_URL=https://minio.task.beetech.dev
MINIO_BUCKET=avatars