Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
pteich committed Feb 12, 2019
1 parent f41b93b commit 8118336
Showing 1 changed file with 5 additions and 25 deletions.
30 changes: 5 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
# Caddy Cluster / Certmagic Storage Consul K/V
# Caddy Cluster / Certmagic TLS cluster support for Consul K/V

[Consul K/V](https://github.com/hashicorp/consul) Storage for [Caddy](https://github.com/mholt/caddy) TLS data.

By default Caddy uses local filesystem to store TLS data (generated keys, csr, crt) when it auto-generates certificates from a CA like Lets Encrypt.
Starting with 0.11.x Caddy can work in cluster environments where TLS storage path is shared across servers.
This is a great improvement but you need to take care of mounting a centeralized storage on every server. If you have an already running Consul cluster it can be easier to use it's KV store to save certificates and make them available to all Caddy instances.
This is a great improvement but you need to take care of mounting a centralized storage on every server. If you have an already running Consul cluster it can be easier to use it's KV store to save certificates and make them available to all Caddy instances.

This cluster plugin enables Caddy to store TLS data like keys and certificates in Consul's K/V store.
This allows you to use Caddy in a cluster or multi machine environment and use a centralized storage for auto-generated certificates.
This allows you to use Caddy in a cluster or multi machine environment and use a centralized storage for auto-generated certificates that is
shared between all Caddy instances.

With this plugin it is possible to use multiple Caddy instances with the same HTTPS domain for instance with DNS round-robin.
All data that is saved in KV store is encrypted using AES.
Expand All @@ -17,33 +18,12 @@ its new storage interface (> 0.11.1). More at https://github.com/pteich/caddy-tl

For older versions of Caddy (0.10.x - 0.11.1) you can use the `old_storage_interface` branch.


## Installation (subject to change for Caddy >0.11.1)

For new versions of Caddy this cluster plugin will be available as a first-class plugin on Caddy's download page.

[DEPRECATED] ~~
You need to compile Caddy by yourself to use this plugin. Alternativly you can use my Docker image that already includes Consul KV storage, more infos below.

- Set up a working Go installation, see https://golang.org/doc/install
- Checkout Caddy source code from https://github.com/mholt/caddy
- Get latest caddy-tlsconsul with `go get -u github.com/pteich/caddy-tlsconsul`
- Add this line to `caddy/caddymain/run.go` in the `import` region:
```go
import (
...
_ "github.com/pteich/caddy-tlsconsul"
)
```
- Change dir into `caddy/caddy` do a `go get github.com/caddyserver/builds` and compile Caddy with `go run build.go`
~~

## Configuration

You enable Consul storage with Caddy by setting the `CADDY_CLUSTERING` environment variable to `consul`.

Because this plugin uses the official Consul API client you can use all ENV variables like `CONSUL_HTTP_ADDR` or `CONSUL_HTTP_TOKEN`
to define your Consul connection and credentials. For more information see https://github.com/hashicorp/consul/blob/master/api/api.go
to define your Consul address and token. For more information see https://github.com/hashicorp/consul/blob/master/api/api.go

Without any further configuration a running Consul on 127.0.01:8500 is assumed.

Expand Down

0 comments on commit 8118336

Please sign in to comment.