armor

package module
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 2, 2016 License: MIT Imports: 4 Imported by: 0

README

Armor License Build Status Twitter

Simple HTTP server, supports HTTP/2 and auto TLS

Armor is written in Go. It is based on the upcoming Echo v3.

What can it do today?

  • Serve HTTP2
  • Automatically install TLS certificates from https://letsencrypt.org
  • Proxy HTTP and WebSocket requests
  • Define virtual hosts with path level routing
  • Graceful shutdown
  • Limit request body
  • Serve static files
  • Log requests
  • Gzip response
  • CORS
  • Security
    • XSSProtection
    • ContentTypeNosniff
    • ContentSecurityPolicy
  • Add / Remove trailing slash from the URL with option to redirect
  • Redirect requests
  • http to https
  • http to https www
  • http to https non www
  • non www to www
  • www to non www

Most of the functionality is implemented via Plugin interface which makes writing a custom plugin super easy.

Getting Started

What's on the roadmap?

  • More command-line options
  • More plugins
  • More features
  • Website
  • Code coverage
  • Test cases

Documentation

Index

Constants

View Source
const (
	Version = "0.1.1"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Armor

type Armor struct {
	Address      string                 `json:"address"`
	TLS          *TLS                   `json:"tls"`
	ReadTimeout  time.Duration          `json:"read_timeout"`
	WriteTimeout time.Duration          `json:"write_timeout"`
	Plugins      map[string]interface{} `json:"plugins"`
	Hosts        map[string]*Host       `json:"hosts"`
	Logger       *log.Logger            `json:"-"`
}

type Host

type Host struct {
	CertFile string                 `json:"cert_file"`
	KeyFile  string                 `json:"key_file"`
	Plugins  map[string]interface{} `json:"plugins"`
	Paths    map[string]*Path       `json:"paths"`
	Echo     *echo.Echo             `json:"-"`
}

type Path

type Path struct {
	Plugins map[string]interface{} `json:"plugins"`
}

type TLS

type TLS struct {
	Address      string                      `json:"address"`
	CertFile     string                      `json:"cert_file"`
	KeyFile      string                      `json:"key_file"`
	Auto         bool                        `json:"auto"`
	CacheFile    string                      `json:"cache_file"`
	Certificates map[string]*tls.Certificate `json:"-"`
}

Directories

Path Synopsis
cmd
package plugin is a generated protocol buffer package.
package plugin is a generated protocol buffer package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL