From 7cd7d95245887a60e16125b121ac2eef12430622 Mon Sep 17 00:00:00 2001 From: Felipe Coutinho Date: Sat, 28 Mar 2026 15:13:44 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20atualizar=20README,=20.env.example=20e?= =?UTF-8?q?=20CLAUDE.md=20para=20a=20vers=C3=A3o=202.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Documenta variáveis S3 opcionais, instruções de self-hosting com anexos e padrão de commit messages no guia do projeto. Co-Authored-By: Claude Sonnet 4.6 --- .env.example | 7 +++++++ CLAUDE.md | 1 + README.md | 34 +++++++++++++++++++++++++++++++++- 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 39627b7..d99ce4c 100644 --- a/.env.example +++ b/.env.example @@ -22,6 +22,13 @@ BETTER_AUTH_URL=http://localhost:3000 APP_PORT=3000 DB_PORT=5432 +# === S3 Server (Opcional) === +S3_ENDPOINT= +S3_REGION= +S3_ACCESS_KEY_ID= +S3_SECRET_ACCESS_KEY= +S3_BUCKET= + # === Email (Opcional) === # Provider: Resend (https://resend.com) RESEND_API_KEY= diff --git a/CLAUDE.md b/CLAUDE.md index 0ade71b..05f90b2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -18,6 +18,7 @@ 5. **Revalidation**: usar `revalidateForEntity("entity")` de `src/shared/lib/actions/helpers.ts` apos mutations. 6. **Versionamento**: registrar mudancas no `CHANGELOG.md` seguindo Keep a Changelog. 7. **Comunicacao**: responder em portugues clara e direta com o time. +8. **Commit messages**: agrupar por natureza. em pt-br. seguindo o padrao do sistema. --- diff --git a/README.md b/README.md index 5430a24..2e687d4 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ > **⚠️ Não há versão online hospedada.** Você precisa clonar o repositório e rodar localmente ou no seu próprio servidor. -[![Version](https://img.shields.io/badge/version-2.0.0-blue?style=flat-square)](CHANGELOG.md) +[![Version](https://img.shields.io/badge/version-2.1.0-blue?style=flat-square)](CHANGELOG.md) [![Next.js](https://img.shields.io/badge/Next.js-black?style=flat-square&logo=next.js)](https://nextjs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-blue?style=flat-square&logo=typescript)](https://www.typescriptlang.org/) [![PostgreSQL](https://img.shields.io/badge/PostgreSQL-blue?style=flat-square&logo=postgresql)](https://www.postgresql.org/) @@ -32,6 +32,7 @@ - [Início Rápido (manual)](#-início-rápido) - [Scripts Disponíveis](#-scripts-disponíveis) - [Docker](#-docker) +- [Storage S3 Compatível](#-storage-s3-compatível) - [Variáveis de Ambiente](#-variáveis-de-ambiente) - [Arquitetura](#-arquitetura) - [Contribuindo](#-contribuindo) @@ -238,6 +239,30 @@ DB_PORT=5433 # Padrão: 5432 --- +## ☁️ Storage S3 Compatível + +O suporte a anexos de lançamentos usa upload direto com URL pré-assinada. Essa configuração é opcional, mas passa a ser necessária se você quiser habilitar anexos no app. + +### Variáveis + +```env +S3_ENDPOINT= +S3_REGION= +S3_ACCESS_KEY_ID= +S3_SECRET_ACCESS_KEY= +S3_BUCKET= +``` + +### Compatibilidade + +- O código atual espera um provider com API compatível com S3 e suporte a `PutObject`, `GetObject`, `HeadObject`, `DeleteObject` e URLs pré-assinadas. +- A implementação usa `endpoint` customizado e `forcePathStyle: true` em [`src/shared/lib/storage/s3-client.ts`](/home/ubuntu/github/openmonetis/src/shared/lib/storage/s3-client.ts). +- Em geral isso cobre MinIO, Cloudflare R2, Backblaze B2 S3-Compatible, DigitalOcean Spaces e AWS S3. Mas foi testado apenas no Supabase Storage. +- Se o seu provider exigir `virtual-hosted-style` em vez de `path-style`, você vai precisar ajustar essa configuração antes de usar anexos. +- Se as variáveis de S3 não forem configuradas, mantenha os anexos desabilitados no seu fluxo de uso. + +--- + ## 🔐 Variáveis de Ambiente Copie `.env.example` para `.env` e configure: @@ -258,6 +283,13 @@ POSTGRES_USER=openmonetis POSTGRES_PASSWORD=openmonetis_dev_password POSTGRES_DB=openmonetis_db +# S3 Server (opcional, necessario para anexos) +S3_ENDPOINT= +S3_REGION= +S3_ACCESS_KEY_ID= +S3_SECRET_ACCESS_KEY= +S3_BUCKET= + # Multi-domínio (landing-only no domínio público) # PUBLIC_DOMAIN=openmonetis.com