@marcel91200 / caddy Mirror · read-only / commits / 2d5498ee
Fork 0

Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

Mirrored from https://github.com/Slazee/caddy.git

Synced Nov 14, 05:15 UTC

Update readme

Matthew Holt committed Nov 24, 2020 at 12:57 UTC 2d5498ee6f298703b5934a8f8889fa02778d08aa
1 file changed +35 -6
README.md
+35 -6
@@ -42,27 +42,30 @@
42 </p>
43
44
45 -## Features
45 +## [Features](https://caddyserver.com/v2)
46
47 - **Easy configuration** with the [Caddyfile](https://caddyserver.com/docs/caddyfile)
48 - **Powerful configuration** with its [native JSON config](https://caddyserver.com/docs/json/)
49 - **Dynamic configuration** with the [JSON API](https://caddyserver.com/docs/api)
50 - [**Config adapters**](https://caddyserver.com/docs/config-adapters) if you don't like JSON
51 - **Automatic HTTPS** by default
52 - - [Let's Encrypt](https://letsencrypt.org) for public sites
52 + - [ZeroSSL](https://zerossl.com) and [Let's Encrypt](https://letsencrypt.org) for public names
53 - Fully-managed local CA for internal names & IPs
54 - Can coordinate with other Caddy instances in a cluster
55 + - Multi-issuer fallback
56 - **Stays up when other servers go down** due to TLS/OCSP/certificate-related issues
57 +- **Production-ready** after serving trillions of requests and managing millions of TLS certificates
58 +- **Scales to tens of thousands of sites** ... and probably more
59 - **HTTP/1.1, HTTP/2, and experimental HTTP/3** support
60 - **Highly extensible** [modular architecture](https://caddyserver.com/docs/architecture) lets Caddy do anything without bloat
61 - **Runs anywhere** with **no external dependencies** (not even libc)
62 - Written in Go, a language with higher **memory safety guarantees** than other servers
63 - Actually **fun to use**
61 -- So, so much more to discover
64 +- So, so much more to [discover](https://caddyserver.com/v2)
65
66 ## Install
67
65 -You can install Caddy by downloading from the Github Releases and placing it in your PATH.
68 +The simplest, cross-platform way is to download from [GitHub Releases](https://github.com/caddyserver/caddy/releases) and place the executable file in your PATH.
69
70 For other install options, see https://caddyserver.com/docs/download.
71
@@ -74,13 +77,37 @@ Requirements:
77
78 ### For development
79
80 +_**Note:** These steps [will not embed proper version information](https://github.com/golang/go/issues/29228). For that, please follow the instructions in the next section._
81 +
82 ```bash
83 $ git clone "https://github.com/caddyserver/caddy.git"
84 $ cd caddy/cmd/caddy/
85 $ go build
86 ```
87
83 -_**Note:** These steps [will not embed proper version information](https://github.com/golang/go/issues/29228). For that, please follow the instructions below._
88 +When you run Caddy, it may try to bind to low ports unless otherwise specified in your config. If your OS requires elevated privileges, you will need to give your new binary permission to do so. On Linux, this can be done easily with: `sudo setcap cap_net_bind_service=+ep ./caddy`
89 +
90 +If you prefer to use `go run` which creates temporary binaries, you can still do this. Make an executable file called `setcap.sh` (or whatever you want) with these contents:
91 +
92 +```bash
93 +#!/bin/sh
94 +sudo setcap cap_net_bind_service=+ep "$1"
95 +"$@"
96 +```
97 +
98 +then you can use `go run` like so:
99 +
100 +```bash
101 +$ go run -exec ./setcap.sh main.go
102 +```
103 +
104 +If you don't want to type your password for `setcap`, use `sudo visudo` to edit your sudoers file and allow your user account to run that command without a password, for example:
105 +
106 +```
107 +username ALL=(ALL:ALL) NOPASSWD: /usr/sbin/setcap
108 +```
109 +
110 +replacing `username` with your actual username. Please be careful and only do this if you know what you are doing! We are only qualified to document how to use Caddy, not Go tooling or your computer, and we are providing these instructions for convenience only; please learn how to use your own computer at your own risk and make any needful adjustments.
111
112 ### With version information and/or plugins
113
@@ -107,7 +134,7 @@ $ xcaddy build
134
135 The [Caddy website](https://caddyserver.com/docs/) has documentation that includes tutorials, quick-start guides, reference, and more.
136
110 -**We recommend that all users do our [Getting Started](https://caddyserver.com/docs/getting-started) guide to become familiar with using Caddy.**
137 +**We recommend that all users -- regardless of experience level -- do our [Getting Started](https://caddyserver.com/docs/getting-started) guide to become familiar with using Caddy.**
138
139 If you've only got a minute, [the website has several quick-start tutorials](https://caddyserver.com/docs/quick-starts) to choose from! However, after finishing a quick-start tutorial, please read more documentation to understand how the software works. 🙂
140
@@ -145,6 +172,8 @@ The docs are also open source. You can contribute to them here: https://github.c
172
173 - We **strongly recommend** that all professionals or companies using Caddy get a support contract through [Ardan Labs](https://www.ardanlabs.com/my/contact-us?dd=caddy) before help is needed.
174
175 +- A [sponsorship](https://github.com/sponsors/mholt) goes a long way!
176 +
177 - Individuals can exchange help for free on our community forum at https://caddy.community. Remember that people give help out of their spare time and good will. The best way to get help is to give it first!
178
179 Please use our [issue tracker](https://github.com/caddyserver/caddy/issues) only for bug reports and feature requests, i.e. actionable development items (support questions will usually be referred to the forums).