kickstart my code
Merge branch 'master' of
builder: add form field name option for csrf
add request id to logging fields


browse log



kick status

Kick streamlines configuration of a robust, hardened, production-ready Go web server. Its core is based on net/http and standard library packages, and it integrates proven, high-quality community Go packages for commonly-needed additional features.

Through the use of the Builders type, it provides some flexibility and pluggability in the choice of third-party packages used to deliver those extra features, but it is not the goal of this package to be fully customizable - it is opinionated and as much as possible, provides an out-of-the-box encoding of best practices.


The tests require a valid TLS certificate for localhost. The recommended approach is to use mkcert to create a local Certificate Authority and generate a locally-trusted certificate for localhost.

The following enviroment variables should be set:

  • KICK_TEST_LOCALHOST_CERT should point to the localhost certificate file.
  • KICK_TEST_LOCALHOST_KEY should point to the localhost certificate key file.

Additionally, to use Go modules with Go 1.11+:

  • GO111MODULE=on

Then run the tests:

$ go test ./...
$ go test ./... -cover
$ go test ./... -race


Kick automatically builds a robust, DOS-hardened web server based on proven, established and widely used Go packages:

  • for sessions with (?) as backing store
  • for websocket
  • for panic recovery, CORS, canonical host, content-type validation, method override, trust proxy headers
  • for CSRF
  • for route multiplexing and static file serving
  • for structured logging
  • for Redis
  • for decoding form values to structs, and for streamlined API with validation
  • for the circuit breaker
  • for production TLS certificate
  • for localhost/development TLS certificate
  • for session-based rate-limiting
  • for absolute endpoint rate-limiting
  • for gzip compression
  • for mysql DB support
  • for added SQL and struct support
  • for configuration, overridable via flags