Projeto simples de exemplo para gerenciar segredos — contém uma API em .NET 9 (pass-api), um cliente Angular (pass-client) e uma gateway (pass-gw). Este README traz instruções rápidas e amigáveis para rodar o projeto localmente ou via Docker.
Resumo rápido:
- API:
pass-api(ASP.NET Core, EF Core + Npgsql) - Client:
pass-client(Angular) - Gateway:
pass-gw(Krakend) - Banco de dados: PostgreSQL (configurado no
docker-compose.yml)
Pré-requisitos
- .NET 9 SDK (para desenvolvimento da API)
- Node.js (v18+) e
npm(para o client Angular) - Docker e
docker-compose(recomendado para quickstart) - (Opcional)
dotnet-efpara aplicar migrations localmente
- Crie um arquivo
.envna raiz do repositório com os valores abaixo (exemplo):
POSTGRES_PASSWORD=postgres
CONNECTIONSTRING_POSTGRES=Host=db;Database=password_manager;Username=postgres;Password=postgres
JWT_SECRET=nG426ht60vTZ4DC1ITswuJjij8yiVoXROpxNHv9n1J4=
- Suba os serviços (banco + API + gateway):
docker-compose up --build- Acesse:
- API: http://localhost:5000
- Gateway: http://localhost:8080
Observação: o serviço db no docker-compose usa a variável POSTGRES_PASSWORD do .env.
API (dotnet):
- Garanta que um PostgreSQL esteja rodando (ex.:
localhost:5432) e crie um bancopassword_managercom usuáriopostgres.- Você pode rapidamente criar um container postgres local:
docker run --name pm-db -e POSTGRES_DB=password_manager -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres:15- Exporte variáveis de ambiente necessárias (ou ajuste
appsettings.Development.json):
cd pass-api
export ConnectionStrings__Postgres="Host=localhost;Database=password_manager;Username=postgres;Password=postgres"
export JwtSettings__SecretKey="nG426ht60vTZ4DC1ITswuJjij8yiVoXROpxNHv9n1J4="- Restaurar e executar:
dotnet restore
dotnet run --urls=http://localhost:5000- Aplicar migrations (se desejar criar as tabelas via EF):
dotnet tool install --global dotnet-ef --version 9.0.0
dotnet ef database updateClient (Angular):
- Abra outra janela/terminal e rode:
cd pass-client
npm install
npm start- O cliente Angular normalmente abre em
http://localhost:4200. Ajuste o endpoint da API empass-client/src/environments/environment.tsou viaapp.config.tscaso necessário.
pass-apilê as connection strings a partir deConnectionStrings:Postgres(noappsettings.jsonou via variáveis de ambienteConnectionStrings__Postgres).JWTe outros segredos podem ser fornecidos viaJwtSettings__SecretKeyem variáveis de ambiente ou.envquando usando Docker.
- Se a API não conseguir conectar ao banco, verifique se o Postgres está rodando e se a connection string está correta.
- Para development é útil rodar o banco via Docker (comandos acima) para evitar diferenças de ambiente.
- Se usar Docker e o compose falhar devido a variáveis, verifique que o arquivo
.envestá no diretório raiz.
