kickstart my code
get stack before call
add stack trace as argument to the panic recovery function
fix build manifest


browse log



You can also use your local clone with git send-email.

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
  • for wrapping http.ResponseWriter