Site oficial da comunidade Criciúma Devs.
O projeto usa:
- Go
templ- HTMX
- SQLite
- Docker
- landing page da comunidade
- coleta simples de analytics em SQLite
- assets estáticos em
assets/
cmd/site entrypoint da aplicação
internal/app bootstrap da aplicação
internal/server rotas HTTP
internal/analytics persistência e eventos
pages/home template da home
assets/ CSS, JS e imagens
db/ schema do SQLite
- Go 1.26+
- Docker, se for rodar com
docker compose
Para não decorar os comandos:
make helpOs atalhos principais são:
make up: sobe a versão empacotada com Dockermake down: derruba o ambiente do Composemake logs: acompanha os logs do Composemake run: roda no host sem hot reloadmake dev: hot reload no hostmake dev-docker: hot reload no Dockermake test: testes Gomake build: build local emtmp/site
go run ./cmd/sitePor padrão a aplicação sobe em :8080 e grava o banco em data/cricidev.db.
Se quiser mudar o caminho do banco:
DB_PATH=/outro/caminho/cricidev.db go run ./cmd/siteO projeto agora tem um runner de desenvolvimento com:
airpara rebuild/restart do binário Gotemplpara regenerar templates e fazer live reload no navegador
Rode:
make devNo Windows nativo, o make dev chama automaticamente o script PowerShell correspondente.
Abra no navegador:
http://localhost:7331
Esse endereço é o proxy do templ, que recarrega a página quando você altera:
- arquivos
.go - arquivos
.templ - assets em
assets/como.css,.jse imagens
O servidor Go continua rodando internamente em http://localhost:8080.
Importante:
- abra
http://localhost:7331durante o desenvolvimento http://localhost:8080serve a aplicação Go diretamente, sem live reload no navegador
Se preferir, o mesmo fluxo também pode rodar dentro do Docker.
Essa opção sobe um container de desenvolvimento com:
airdentro do containertempldentro do container- bind mount do código local
- SQLite salvo em
data/cricidev.dbno próprio repositório
Rode:
make dev-dockerAbra no navegador:
http://localhost:7331
Notas:
- não rode
appeapp-devao mesmo tempo, porque ambos usam as portas8080e7331 - no modo Docker dev, o banco fica em
data/cricidev.dbno host via bind mount
O docker compose usa um volume externo chamado sqlite_data, mas o Makefile cria esse volume automaticamente antes de subir o ambiente.
Rode:
make upNessa forma, o banco fica em /data/cricidev.db dentro do container e é persistido pelo volume.
ADDR: endereço HTTP da aplicação. Padrão:8080DB_PATH: caminho do arquivo SQLite. Padrãodata/cricidev.dbfora do Docker e/data/cricidev.dbnodocker compose
O site envia eventos do navegador para POST /api/events.
Eventos registrados:
pageviewsession_startsession_endclick
Os eventos são salvos nas tabelas events e sessions.
O htmx já é carregado na home via CDN e fica disponível para uso em qualquer tela nova.
O HTML da home é gerado com templ.
Depois de alterar arquivos .templ, rode:
templ generateNo fluxo de desenvolvimento com ./scripts/dev, isso acontece automaticamente.
O Dockerfile compila o binário a partir de ./cmd/site.