Golang boilerplate with clean architecture
- PORT : 3030
- PATH : /
# clone the repo
$ git clone
# go into app's directory
$ cd goboil-clean
Local environment
# build
$ go build
# run
$ ENV=DEV go run main.go
$ ENV=DEV ./filego
Docker environment
# build
$ docker build -t goboil-clean-api:latest .
# run
$ docker compose -f deployments/docker-compose.yml up -d
Install environment
# get swagger package
$ go install github.com/swaggo/swag/cmd/swag@latest
# move to swagger dir
$ cd $GOPATH/src/github.com/swaggo/swag
# install swagger cmd
$ go install cmd/swag
Generate documentation
# generate swagger doc
$ swag init --propertyStrategy snakecase
to see the results, run app and access {{url}}/swagger/index.html
This project built in clean architecture that contains :
- Factory
- Middleware
- Handler
- Binder
- Validation
- Usecase
- Repository
- Model
- Database
- Migration
- Seed
This project have some default endpoint :
- Auth
- Login
- Register
- Sample
- Get (+ pagination, sort & filter)
- GetByID
- Create (+ transaction scope)
- Update (+ transaction scope)
- Delete
Muhammad Cholis Malik