A comprehensive, production-ready Go project template enforcing best practices. This template provides a solid foundation for building scalable, observable, and maintainable Go services.
Getting started
Fork this repo
Create project repo using the fork as a template
Clone the project repo and run make -f rename.mk
Run make all to verify that everything works
Create a PR see how the github workflow gets triggered
Project layout
The template is structured to provide a solid foundation while allowing easy customization for your specific project needs.
Go files
./api/ - rest api layer generated from openapi.yaml
./app/ - business logic that maps to rest endpoints inside api
./applicationtest/ - application/integration tests (tests executed against application binary)
./cmd/demo/ - main package for application, automatically renamed based on repo name
./server/ - configures http.Server with api handler