Feed Hub é uma API desenvolvida em Java com Spring Boot e Mavem, utilizando PostgreSQL como banco de dados. O projeto está containerizado com Docker para facilitar o ambiente de desenvolvimento e execução.
- Java 21
- Spring Boot
- PostgreSQL 12.4
- Docker
- Docker Compose
Certifique-se de ter os seguintes softwares instalados:
Para rodar a aplicação localmente com Docker Compose:
docker-compose up --build
A aplicação será exposta na porta
8085e o banco de dados na porta5432.
Após o container estar em execução, a API poderá ser acessada via:
http://localhost:8085/swagger-ui/index.html
As principais variáveis de ambiente já estão definidas no docker-compose.yml:
| Variável | Valor | Descrição |
|---|---|---|
SERVER_PORT |
8080 | Porta interna do container |
DATASOURCE_URL |
jdbc:postgresql://postgres-db/feedhub_development | URL do banco de dados |
DATASOURCE_USERNAME |
postgres | Usuário do banco de dados |
DATASOURCE_PASSWORD |
postgres | Senha do banco de dados |
DATASOURCE_DBCREATE |
update | Estratégia de atualização do schema |
SECRET_KEY |
4Z^XrroxR@dWxqf$mTTKwW$!@#qGr4P | Chave secreta para autenticação JWT |
ISSUER |
feedhub | Emissor do token |
VALIDITY |
3600000 | Validade do token em milissegundos |
O container postgres-db possui um healthcheck configurado para garantir que o banco esteja pronto antes de iniciar a aplicação.
A aplicação Spring Boot é empacotada como um .jar e copiada via Dockerfile:
FROM openjdk:21
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
Para parar e remover os containers criados:
docker-compose down
Para remover volumes e dados persistentes, execute com
-v:
docker-compose down -v