Skip to content


Repository files navigation


License: MIT Go Report Card Go Reference codecov Build Status Mentioned in Awesome Go

This is a simple skeleton for golang application. Inspired by development experience and updated according to

How to use?

  1. Clone the repository (with git client git clone [project_name] or use it as template on github for creating a new project)
  2. replace with [your_pkg_name] in the all files


  • /api - OpenAPI specs, documentation generated by swag
  • /cmd - apps
  • /db - database migrations and seeds
  • /docs - documentation
  • /internal - application sources for internal usage
  • /pkg - application sources for external usage(SDK and libraries)
  • /test - some stuff for testing purposes


# install dev tools(wire, golangci-lint, swag, ginkgo)
make install-tools

# start test environment from docker-compose-test.yml
make start-docker-compose-test

# stop test environment from docker-compose-test.yml
make stop-docker-compose-test

# build application
make build

# run all tests
make test-all

# run go generate
make gen

# generate OpenAPI docs with swag
make swagger

# generate source code from .proto files
make proto

# generate dependencies with wire
make deps

Create new project

# install clonegopkg
go install

# create your project
clonegopkg clone

# push to your git repository
cd ~/go/src/
git add .
git commit -m "init project from gobase template"
git remote add origin
git push origin master

Tools and packages

  • gin-gonic
  • ginkgo with gomega
  • spf13/viper
  • spf13/cobra
  • envy
  • zerolog
  • golangci-lint
  • wire
  • swag
  • migrate
  • protoc
  • jsonapi
  • docker with docker-compose