Este projeto usa as seguintes ferramentas:
- Framework - Next.js (App Router)
- Linguagem - TypeScript
- Autenticação - Auth.js
- Banco de dados - PostgreSQL
- Componentes de UI - Material UI
- Formulários - React Hook Form e zod
- Formatação - Prettier
- Deployment - Os manifests do Kubernetes estão na pasta kustomize. Fluxo de CD utiliza Github Actions: Release Please + build-push-action
Obenha com outra pesssoa as variáveis de ambiente que estão vazias no .env
e adicione ao arquivo .env.local
.
Instale a versão correta do Node.js (presente no .nvmrc
) através de um gerenciador de versões, como o volta
.
Instale Docker, e execute o seguinte para rodar o banco de dados e object store (S3):
docker compose up
Instale ffmpeg e mp3wrap, que são utilizadas para converter e concatenar arquivos de áudio.
Caso esteja usando uma distro linux que é baseada em debian (como Ubuntu), pode instalar diretamente via apt
: sudo apt install ffmpeg mp3wrap
Instale as dependências:
npm install
Execute as migrations para inicializar as tabelas do banco de dados.
npm run typeorm -- -d data-source.ts migration:run
Solicite outra pessoa os valores para preencher o .env.local
.
Inicie o servidor de desenvolvimento:
npm dev
A aplicação estará disponível em http://localhost:3000