Skip to content

sapiderman/seed-go

Golang Seed

Go

Small starter project to play around with golang features, github actions and various pipelines.

Features

Features Description
gorilla mux routing using gorilla mux
contexts contexts
logrus logging library
sqlx sqlx driver
pgx pgx driver
monitoring elastic's application performance monitoring
health check IETF RFC Health Ceck via nelkinda's health-go
swagger api API documentations using swagger swagger.io

todo:

  • circuit breaker
  • profiler
  • test

endpoints

GET /health GET /docs
GET /v1/hello
GET /v1/time GET /web/

GET /v1/users
GET /v1/devices
POST /v1/user
POST /v1/device

build

go build ./...

tests

go test ./... -v -covermode=count -coverprofile=coverage.out

or

make test
make test-coverage

generate-binary

go build -a -o seed-go-img cmd/Main.go

or

make build

create docker

make docker

run docker

make docker-run

some docs

license
code of conduct

project structure

├── api
├── cmd
├── docs
├── internal
└── web

name descriptions
api swagger api, any protocol and schema file are here
cmd main application lives here
docs design and user documentations collected here
internal internal application and libraries are here
web web static files, htmls and css stored here

Further information see:

  1. Golang Project Structure
  2. Golang standard project layout

integrations

Using some free ci tools and code quality scanners. There's some really great tools for public projects, trying them here.

Service Status
github integations
github codeQL CodeQL
azure Build Status
circleci Build Status
travic-ci.com Build Status
appveyor.com Build status
goreportcard.com Go Report Card
codeclimate.com Maintainability
Test Coverage

fork. clone. contribute and share!

About

seed project for golang. for quick starts. experiment with various ci/cd.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published