GoMicroKit is an interactive CLI tool for generating scalable, idiomatic Go microservice boilerplates β with support for REST frameworks, databases, GORM, Docker, and more. Inspired by Laravel's
artisan
, but for Go developers.
β¨ Built with Bubble Tea, Cobra, and Go best practices.
- ποΈ Generate a full microservice directory with:
- Framework:
fiber
(more coming soon) - DB setup
mysql
(more coming soon) - GORM support toggle
- Docker support
- Framework:
- βοΈ Uses Repository Pattern, Service Layer, DTOs
- π§ͺ Auto-generates test boilerplates
- π³ Dockerfile support
- π Interactive UI with Bubble Tea (fancy CLI)
- π§½ Remove previously generated services
- πΉοΈ Flags & prompts: hybrid control for automation and UX
go install github.com/msdevbytes/gomicrokit@latest
Or clone and run locally:
git clone https://github.com/msdevbytes/gomicrokit.git
cd gomicrokit
go run main.go
gomicrokit new
You'll be guided through:
- Project name
- Framework selection (currently supports
fiber
) - Database selection
- Use GORM? (y/n)
- Include Dockerfile? (y/n)
β¨ A spinner will run while your project is generated, packages are installed, and success is displayed in style.
gomicrokit new
π§± Project Name: mysvc
π οΈ Framework: fiber
ποΈ Database: postgres
π¦ Use GORM: y
π³ Docker Support: y
β‘οΈ Output:
π Scaffolding...
β
Created: internal/service/mysvc_service.go
β
Created: internal/repository/mysvc_repository.go
β
Created: internal/model/mysvc_model.go
β
Created: internal/handler/mysvc_handler.go
β
Updated: internal/service/container.go
β
Updated: internal/routes/index.go
π¦ Installing packages...
π₯ Done! Project 'mysvc' generated successfully.
mysvc/
βββ cmd/
β βββ main.go
βββ internal/
β βββ dto/
β βββ handler/
β βββ model/
β βββ repository/
β βββ routes/
β βββ service/
βββ test/
β βββ unit/
β βββ dto/
βββ go.mod
βββ Dockerfile (optional)
βββ .gen_history.json
gomicrokit make:service --name=event --force
gomicrokit remove:service
Templates are stored in:
templates/service/
βββ model.tmpl
βββ repository.tmpl
βββ service.tmpl
βββ handler.tmpl
βββ dto.tmpl
βββ dto_test.tmpl
go run main.go
MIT β use it freely.
Built with β€οΈ by msdevbytes.