This project is a template generator based on Golang mainly focused on microservices.
The purpose is to accelerate the development by providing a base solution avoiding starting from scratch.
- GO 1.22 or higher
- Docker
- Docker-Compose
High-Level Architecture Diagram. (to be defined)
- Hexagonal Architecture based
- Highly scalable
- Local-Dev: handy management tools through make statements
- GitHub Actions (CI/CD) base layout
- Mockery (mocks)
- Viper support (env configuration)
- Chi (router)
- ZeroLog (logger)
- PostgreSQL database support
- PgAdmin PostgreSQL database Web-GUI
CAM-Go
applications use Mockery to generate mocks. This tool is able to handy generate and mantain your mock objects. It uses the stretchr/testify/mock package. Moreover, reduce the boilerplate code over mocking.
To add new mock objects please edit the Makefile file look for the mocks
target, and according to the Mockery's documentation add the specific rule.
Before start, please make sure to install mockery
command line tool.
To automatically generate mocks, run make mocks
at the top level of the project/repository.
CAM-Go
uses Docker and Docker-compose to generate a containerized environment with tools(make statements) to speed up development time.
Ensure you have configured the services environment variables in the deployments/.env
file.
Run make help
to learn how to use all commands to handle your application environment.