Uma plataforma completa de e-commerce focada no nicho de suplementação alimentar. O projeto foi desenvolvido com foco em escalabilidade, utilizando Docker para containerização e implantado em uma instância EC2 na AWS, com integração real de pagamentos via Mercado Pago.
- Gestão de Produtos: Catálogo completo com suporte a categorias, preços e controle de estoque.
- Checkout Inteligente: Integração com API do Mercado Pago para pagamentos via Cartão, Pix e Boleto.
- Painel Administrativo: Interface completa para gestão de produtos, pedidos, usuários.
- Arquitetura Cloud: Deploy automatizado em ambiente de nuvem.
- Segurança: Variáveis de ambiente protegidas e isolamento de processos via containers.
- Docker Hub: A imagem da aplicação está versionada e disponível para pull.
- PostgreSQL: Banco de dados robusto rodando em container isolado.
- AWS EC2: Hospedagem em servidor Ubuntu na nuvem.
- Tipo de instância: t3.micro.
- Ngrok: Túnel seguro com suporte a HTTPS para comunicação com webhooks de pagamento.
- Persistência: Uso de Docker Volumes para manter dados do banco e arquivos de mídia (fotos de produtos) seguros.
A administração remota da infraestrutura e a configuração de rede do servidor EC2 foram realizadas utilizando o cliente **MobaXterm**.
Para garantir a alta disponibilidade e a comunicação contínua com os webhooks de pagamento (Mesmo quando o acesso SSH é encerrado), a seguinte arquitetura de rede local foi aplicada:
- Acesso SSH: Conexão segura estabelecida com o servidor Ubuntu na AWS utilizando chaves
.pem. - Processos em Background (
screen): Utilização da ferramenta de multiplexação de terminalscreendo Linux. Garantindo que a aplicação não caia ao fechar o MobaXterm, inicialização automática. - Túnel Ngrok Seguro: Execução do Ngrok em segundo plano para expor portas específicas do servidor localmente, criando um túnel HTTPS seguro vital para receber os callbacks (Webhooks) de mudança de status de pagamento do Mercado Pago.
Caso queria ver o checkout de pagamento, será necessário configurar o mercado pago e colocar o token no .env .
-
Acesse o Painel de Desenvolvedores do Mercado Pago. Para que o checkout e a atualização de status de pedidos funcionem, você precisa configurar as suas credenciais do Mercado Pago:
O link a seguir é próprio deles, explica muito bem como criar a aplicação/integração: https://www.mercadopago.com.br/developers/pt/docs/checkout-pro/create-application -
Crie uma nova aplicação e copie o seu Access Token (pode ser as credenciais de Teste ou Produção).
-
Cole esse token no arquivo
.envna variávelMP_ACCESS_TOKEN. -
Configuração do Webhook (Para testes locais):
- Inicie o Ngrok apontando para a porta do projeto:
ngrok http 8000 - No painel do Mercado Pago, vá em Notificações > Webhooks.
- Adicione a URL gerada pelo Ngrok seguida do endpoint da sua aplicação. Exemplo:
https://sua-url-ngrok.ngrok-free.dev/caminho-do-seu-webhook/ - Selecione o evento Pagamentos (
payment) e salve.
- Inicie o Ngrok apontando para a porta do projeto:
Independentemente da forma que você escolher para rodar o projeto, será necessário criar um arquivo .env na raiz do diretório com as seguintes variáveis:
DEBUG=True
SECRET_KEY=sua_secret_key_aqui
DB_NAME=LojaBD
DB_USER=postgres
DB_PASSWORD=admin
DB_HOST=db
DB_PORT=5432
MP_ACCESS_TOKEN=seu_token_do_mercado_pago
Com o .env configurado, você pode testar a aplicação de duas maneiras: baixando a imagem já pronta do Docker Hub ou clonando o repositório para fazer o build local:
Nesta opção, você não precisa do código fonte, apenas do arquivo de orquestração.
-
Crie uma pasta vazia e adicione o seu arquivo
.env. -
Crie um arquivo
docker-compose.ymle cole a configuração abaixo:version: '3.8'
services: db: image: postgres:15 environment: - POSTGRES_DB=LojaBD - POSTGRES_USER=postgres - POSTGRES_PASSWORD=admin volumes: - postgres_data:/var/lib/postgresql/data
web: image: brunobiazon/loja-suplementos:latest ports: - "8000:8000" env_file: .env depends_on: - db volumes: - media_data:/app/media
volumes: postgres_data: media_data:
-
Abra o terminal na pasta e execute:
docker-compose up -d docker-compose exec web python manage.py migrate docker-compose exec web python manage.py createsuperuser
Nesta opção, você terá acesso a todo o código fonte e construirá a imagem do zero na sua máquina.
-
Clone o repositório e acesse a pasta:
git clone https://github.com/BrunoBiazon/NOME_DO_SEU_REPOSITORIO.git cd NOME_DO_SEU_REPOSITORIO
-
Crie o arquivo
.envna raiz do projeto (conforme a seção de configuração). -
Faça o build das imagens e suba os containers:
docker-compose up -d --build docker-compose exec web python manage.py migrate docker-compose exec web python manage.py createsuperuser
Para navegar pela loja, ver o layout e gerenciar o catálogo, acesse diretamente: 👉 http://localhost:8000
- Painel Administrativo:
http://localhost:8000/admin(Use as credenciais docreatesuperuser).
Para testar o fluxo de checkout e receber o retorno (Webhooks) do Mercado Pago mudando o status do pedido em tempo real, você deve acessar a loja através do túnel Ngrok:
- Inicie o túnel no seu terminal:
ngrok http 8000 - Acesse a URL HTTPS gerada (Ex:
https://sua-url.ngrok-free.dev). - Certifique-se de que essa URL está configurada no painel do Mercado Pago e no seu arquivo
.env(se necessário).
