Brev-ly é um encurtador de links. Este projeto tem como objetivo uma aplicação que permita o cadastro, listagem e remoção de links encurtados, geração de relatório dos acessos de cada links e também o redirecionamento correto do link encurtado para o link original.
Antes de começar, certifique-se de ter:
- Node.js instalado (versão recomendada: 22.16 ou superior)
- pnpm
- Conta Cloudflare com R2 habilitado
- Pulumi instalado e configurado com credenciais (para provisionar infraestrutura)
- Docker
-
Clonar este repositório:
git clone https://github.com/MuriloMorandi/widget-upload.git cd widget-upload -
Instale dependências (frontend e backend):
cd web pnpm install cd ../server pnpm install
-
Configure variáveis de ambiente necessárias:
-
Servidor (backend):
Crie o arquivo.envna pastaserver/com base noserver/.env.example, adicionando suas credenciais e configurações:# server/.env PORT= DATABASE_URL= CLOUDFLARE_ACCOUNT_ID="" CLOUDFLARE_ACCESS_KEY_ID="" CLOUDFLARE_SECRET_ACCESS_KEY="" CLOUDFLARE_BUCKET="" CLOUDFLARE_PUBLIC_URL=""
-
Frontend:
Crie o arquivo.envna pastaweb/com base noweb/.env.example:# web/.env VITE_API_URL=
-
-
Inicie os serviços localmente no Docker e executar as migrations
- Inicie os serviços necessários em segundo plano com o Docker:
cd server docker compose up -d - Após os containers estarem em execução, rode as migrations para aplicar as alterações no banco de dados:
pnpm run db:migrate
- Inicie os serviços necessários em segundo plano com o Docker:
-
Rode frontend e backend separadamente:
-
Servidor (backend):
cd server pnpm run dev -
Frontend:
cd web pnpm run dev
-
- Servidor (backend):
cd server pnpm run test