diff --git a/README.md b/README.md index 9465b1ffb..436c0068b 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,10 @@ -Caddy 2 -======= - -This is the development branch for Caddy 2, the web server of the Go community. - -**Caddy 2 is production-ready, but there may be breaking changes before the stable 2.0 release.** Please test it and deploy it as much as you are able, and submit your feedback! - ---- -

Caddy

Every site on HTTPS

Caddy is an extensible server platform that uses TLS by default.

- +
@@ -31,6 +22,7 @@ This is the development branch for Caddy 2, the web server of the Go community. ### Menu +- [Features](#features) - [Build from source](#build-from-source) - [For development](#for-development) - [With version information and/or plugins](#with-version-information-andor-plugins) @@ -46,6 +38,27 @@ This is the development branch for Caddy 2, the web server of the Go community. CertMagic

+ +## Features + +- **Easy configuration** with the [Caddyfile](https://caddyserver.com/docs/caddyfile) +- **Powerful configuration** with its [native JSON config](https://caddyserver.com/docs/json/) +- **Dynamic configuration** with the [JSON API](https://caddyserver.com/api) +- [**Config adapters**](https://caddyserver.com/docs/config-adapters) if you don't like JSON +- **Automatic HTTPS** by default + - [Let's Encrypt](https://letsencrypt.org) for public sites + - Fully-managed local CA for internal names & IPs + - Can coordinate with other Caddy instances in a cluster +- **Stays up when other servers go down** due to TLS/OCSP/certificate-related issues +- **HTTP/1.1, HTTP/2, and experimental HTTP/3** support +- **Highly extensible** [modular architecture](https://caddyserver.com/docs/extending-caddy) lets Caddy do anything without bloat +- **Runs anywhere** with **no external dependencies** (not even libc) +- Written in Go, a language with higher **memory safety guarantees** than other servers +- Actually **fun to use** +- So, so much more + + + ## Build from source Requirements: @@ -54,22 +67,30 @@ Requirements: - Do NOT disable [Go modules](https://github.com/golang/go/wiki/Modules) (`export GO111MODULE=on`) ### For development - -_**Note:** These steps [will not embed proper version information](https://github.com/golang/go/issues/29228). For that, please follow the instructions below._ ```bash -$ git clone -b v2 "https://github.com/caddyserver/caddy.git" +$ git clone "https://github.com/caddyserver/caddy.git" $ cd caddy/cmd/caddy/ $ go build ``` +_**Note:** These steps [will not embed proper version information](https://github.com/golang/go/issues/29228). For that, please follow the instructions below._ + ### With version information and/or plugins +Using [our builder tool](https://github.com/caddyserver/builder)... + +``` +$ builder --version CADDY_VERSION +``` + +...the following steps are automated: + 1. Create a new folder: `mkdir caddy` 2. Change into it: `cd caddy` -3. Copy [Caddy's main.go](https://github.com/caddyserver/caddy/blob/v2/cmd/caddy/main.go) into the empty folder. Add imports for any custom plugins you want to add. +3. Copy [Caddy's main.go](https://github.com/caddyserver/caddy/blob/master/cmd/caddy/main.go) into the empty folder. Add imports for any custom plugins you want to add. 4. Initialize a Go module: `go mod init caddy` -5. Pin Caddy version: `go get github.com/caddyserver/caddy/v2@TAG` replacing `TAG` with a git tag or commit. +5. Pin Caddy version: `go get github.com/caddyserver/caddy/v2@TAG` replacing `TAG` with a git tag or commit. You can also pin any plugin versions similarly. 6. Compile: `go build`