A progressive framework-agnostic API template following CLEAN architecture and SOLID principles. DDD inspired :)
Gomora provides the example for a module-based gRPC and REST server suitable for building progressive APIs (from monolith to distributed microservices).




Setup the .env file first
cp .env.example .env
To bootstrap everything, run:
make
The command above will install, build, and run the binary
For manual install:
make install
For lint:
make lint
Just ensure you installed golangci-lint.
To test:
make test
For manual build:
make build
# The output for this is in bin/
To build, run:
make run
To run the container:
make up
Gomora uses go-migrate (https://github.com/golang-migrate/migrate) to handle migration. Download and change your migrate database command accordingly.
To create a schema, run:
NAME=<init_schema> make migrate-schema
To migrate up, run:
STEPS=<remove STEPS to apply all or specify step number> make migrate-up
To migrate down, run:
STEPS=<remove STEPS to apply all or specify step number> make migrate-down
To check migrate version, run:
make migrate-version
To force migrate, run:
STEPS=<specify step number> make migrate-force
Made with ❤️ at Nuxify