Este repositório contém o backend de um contador de visitas, desenvolvido em Go (Golang), hospedado utilizando o Fly.io. Ele incrementa e exibe o número de visitas únicas ao site de portfólio de Anderson Gaitolini: https://anderson.gaitolini.com.br/. O backend gerencia o contador através de uma API REST, que é consumida pela aplicação frontend, permitindo exibir e armazenar contagens de visitas de maneira segura e eficiente.
Repositório do backend: Count-Web-Site
- Go (Golang): Utilizado para implementar o servidor backend e a API REST.
- PostgreSQL: Banco de dados para armazenar o contador de visitas de maneira persistente.
- Fly.io: Utilizado para hospedagem do backend e do banco de dados PostgreSQL.
- Docker: Para criar imagens containerizadas do backend.
-
Primeiro, precisamos criar o ambiente no Fly.io:
flyctl launch
Durante o processo, selecione o tipo de aplicativo, defina a região, escolha 256MB de RAM e configure um banco PostgreSQL.
-
Com o ambiente criado, faça o deploy do backend:
flyctl deploy
-
Caso precise monitorar logs:
flyctl logs -a nome_do_app
-
Para rodar o servidor localmente durante o desenvolvimento:
go run main.go
Certifique-se de configurar a string de conexão com o banco corretamente para conectar ao PostgreSQL local.
O Dockerfile utilizado é responsável por compilar o backend e preparar a imagem para o deploy:
# Usando uma imagem base do Go
FROM golang:1.20
# Definindo o diretório de trabalho
WORKDIR /app
# Copiando o módulo e o arquivo de dependências para o container
COPY go.mod ./
COPY go.sum ./
# Baixando as dependências
RUN go mod download
# Copiando o código do projeto para o diretório de trabalho do container
COPY . .
# Compilando o aplicativo Go
RUN go build -o main .
# Definindo a porta que a aplicação vai escutar
EXPOSE 8080
# Comando para rodar o binário
CMD ["/app/main"]
O backend foi hospedado utilizando Fly.io, configurado com PostgreSQL para armazenamento das visitas.
O frontend que consome este backend está disponível no seguinte repositório: Gaitolini-WebPage.
- Go (Golang): Construção de APIs REST eficientes.
- Infraestrutura em Cloud: Configuração e deploy em Fly.io.
- Integração de Serviços: Uso de PostgreSQL com Docker e configuração de Cloudflare Tunnel para garantir a segurança e performance do serviço.
Se você quiser saber mais sobre este projeto ou discutir futuras colaborações, entre em contato comigo:
- LinkedIn: Anderson Gaitolini
- WhatsApp: Entre em contato
🚀 Feito com muito Go, Dockere Cloud por Anderson Gaitolini❤️.
Um grande obrigado a todos que contribuíram para o desenvolvimento deste projeto e ajudaram a aprimorar a automação e o deploy contínuo! 🎉