Este projeto é um Encurtador de URL desenvolvido utilizando o framework Hyperf. Ele oferece uma API para encurtar URLs longas e redirecionar para elas, facilitando o compartilhamento de links.
- Encurtar URLs longas.
- Cadastro de URLs por usuários.
- Redirecionamento para a URL original de maneira rápida e cacheada usando Redis.
- Docker e Docker Compose instalados na máquina.
- Para uso com Kubernetes:
- Um cluster Kubernetes configurado.
kubectl
instalado e configurado para se comunicar com o cluster.
-
Clone o repositório:
git clone https://github.com/srgoogle23/encurtador-de-url.git
-
Navegue até o diretório do projeto:
cd encurtador-de-url
-
Configure as variáveis de ambiente:
- Renomeie o arquivo
.env.example
para.env
. - Atualize as configurações, como informações de banco de dados, conforme necessário.
- Renomeie o arquivo
-
Inicie os containers com Docker Compose:
docker-compose up -d
-
Execute as migrações para configurar o banco de dados:
docker-compose exec encurtador php bin/hyperf.php migrate
Nota: Caso o Kubernetes esteja configurado para usar os dados de produção, não será possível rodar as migrações diretamente. Certifique-se de utilizar a imagem de desenvolvimento para essa tarefa.
-
Prepare a imagem do container:
-
Para produção:
docker build -f Dockerfile -t encurtador:latest .
-
Para desenvolvimento (inclui dados de dev instalados pelo Composer):
docker build -f .devcontainer/Dockerfile -t encurtador:latest .
-
-
Configure o Kubernetes:
-
Navegue até a pasta
k8
do projeto.cd k8
-
Aplique os manifestos na seguinte ordem:
kubectl apply -f database/encurtador-pgsql-deployment.yml kubectl apply -f cache/encurtador-redis-deployment.yml kubectl apply -f app/encurtador-deployment.yml kubectl apply -f settings/hpa.yml
-
-
Execute as migrações (opcional):
- Utilize a imagem de desenvolvimento para rodar as migrações:
kubectl run migrate-job --rm -i --tty \ --image=encurtador:latest -- \ php bin/hyperf.php migrate
- Utilize a imagem de desenvolvimento para rodar as migrações:
Desenvolvendo documentação da API...
- Faça um fork deste repositório.
- Crie uma nova branch para sua feature ou correção:
git checkout -b minha-feature
. - Commit suas alterações:
git commit -m 'Adiciona minha feature'
. - Envie para o repositório remoto:
git push origin minha-feature
. - Abra um Pull Request.
Este projeto está licenciado sob a Licença MIT. Consulte o arquivo LICENSE para mais detalhes.