Commit 5fbd63e3 authored by Matthew Holt's avatar Matthew Holt

Update README to match new site, branding, and latest version

parent f09fff3d
<a href="https://caddyserver.com"><img src="https://caddyserver.com/resources/images/caddy-lower.png" alt="Caddy" width="350"></a> <p align="center">
<a href="https://caddyserver.com"><img src="https://cloud.githubusercontent.com/assets/1128849/25305033/12916fce-2731-11e7-86ec-580d4d31cb16.png" alt="Caddy" width="400"></a>
[![community](https://img.shields.io/badge/community-forum-ff69b4.svg?style=flat-square)](https://forum.caddyserver.com) [![twitter](https://img.shields.io/badge/twitter-@caddyserver-55acee.svg?style=flat-square)](https://twitter.com/caddyserver) [![Documentation](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat-square)](https://godoc.org/github.com/mholt/caddy) [![Linux Build Status](https://img.shields.io/travis/mholt/caddy.svg?style=flat-square&label=linux+build)](https://travis-ci.org/mholt/caddy) [![Windows Build Status](https://img.shields.io/appveyor/ci/mholt/caddy.svg?style=flat-square&label=windows+build)](https://ci.appveyor.com/project/mholt/caddy) </p>
[![Go Report Card](https://goreportcard.com/badge/github.com/mholt/caddy?style=flat-square)](https://goreportcard.com/report/mholt/caddy) <h3 align="center">Every Site on HTTPS <!-- Serve Confidently. --></h3>
[![Sourcegraph Badge](https://sourcegraph.com/github.com/mholt/caddy/-/badge.svg)](https://sourcegraph.com/github.com/mholt/caddy?badge) <p align="center">Caddy is a general-purpose HTTP/2 web server that serves HTTPS by default.</p>
<p align="center">
<a href="https://travis-ci.org/mholt/caddy"><img src="https://img.shields.io/travis/mholt/caddy.svg?label=linux+build"></a>
Caddy is a general-purpose web server for Windows, Mac, Linux, BSD, and <a href="https://ci.appveyor.com/project/mholt/caddy"><img src="https://img.shields.io/appveyor/ci/mholt/caddy.svg?label=windows+build"></a>
[Android](https://github.com/mholt/caddy/wiki/Running-Caddy-on-Android). It is <a href="https://godoc.org/github.com/mholt/caddy"><img src="https://img.shields.io/badge/godoc-reference-blue.svg"></a>
a capable but easier alternative to other popular web servers. <a href="https://goreportcard.com/report/mholt/caddy"><img src="https://goreportcard.com/badge/github.com/mholt/caddy"></a>
<br>
[Releases](https://github.com/mholt/caddy/releases) · <a href="https://twitter.com/caddyserver" title="@caddyserver on Twitter"><img src="https://img.shields.io/badge/twitter-@caddyserver-55acee.svg" alt="@caddyserver on Twitter"></a>
[User Guide](https://caddyserver.com/docs) · <a href="https://forum.caddyserver.com" title="Caddy Forum"><img src="https://img.shields.io/badge/community-forum-ff69b4.svg" alt="Caddy Forum"></a>
[Community](https://forum.caddyserver.com) <a href="https://sourcegraph.com/github.com/mholt/caddy?badge" title="Caddy on Sourcegraph"><img src="https://sourcegraph.com/github.com/mholt/caddy/-/badge.svg" alt="Caddy on Sourcegraph"></a>
</p>
**Attend the [Caddy launch event](https://www.facebook.com/events/1413078512092363/) on April 20! It's free, and we will try to get a live stream going.** <p align="center">
<a href="https://caddyserver.com/download">Download</a> ·
<a href="https://www.facebook.com/events/1413078512092363/"><img src="http://i.imgur.com/CjGICWU.png" alt="Caddy launch event" width="500"></a> <a href="https://caddyserver.com/docs">Documentation</a> ·
<a href="https://forum.caddyserver.com">Community</a>
Try browsing [the code on Sourcegraph](https://sourcegraph.com/github.com/mholt/caddy)! </p>
---
Caddy is fast, easy to use, and makes you more productive.
Available for Windows, Mac, Linux, BSD, Solaris, and [Android](https://github.com/mholt/caddy/wiki/Running-Caddy-on-Android).
## Menu ## Menu
- [Features](#features) - [Features](#features)
- [Install](#install)
- [Quick Start](#quick-start) - [Quick Start](#quick-start)
- [Running from Source](#running-from-source)
- [Running in Production](#running-in-production) - [Running in Production](#running-in-production)
- [Contributing](#contributing) - [Contributing](#contributing)
- [Donors](#donors)
- [About the Project](#about-the-project) - [About the Project](#about-the-project)
## Features ## Features
- **Easy configuration** with Caddyfile - **Easy configuration** with the Caddyfile
- **Automatic HTTPS** via [Let's Encrypt](https://letsencrypt.org); Caddy - **Automatic HTTPS** on by default (via [Let's Encrypt](https://letsencrypt.org))
obtains and manages all cryptographic assets for you - **HTTP/2** by default
- **HTTP/2** enabled by default (powered by Go standard library) - **Virtual hosting** so multiple sites just work
- **Virtual hosting** for hundreds of sites per server instance, including TLS
SNI
- Experimental **QUIC support** for those that like speed - Experimental **QUIC support** for those that like speed
- TLS session ticket **key rotation** for more secure connections - TLS session ticket **key rotation** for more secure connections
- **Brilliant extensibility** so Caddy can be customized for your needs - **Extensible with plugins** because a convenient web server is a helpful one
- **Runs anywhere** with **no external dependencies** (not even libc) - **Runs anywhere** with **no external dependencies** (not even libc)
There's way more, too! [See all features built into Caddy.](https://caddyserver.com/features) On top of all those, Caddy does even more with plugins: choose which plugins you want at [download](https://caddyserver.com/download).
## Quick Start ## Install
Caddy binaries have no dependencies and are available for every platform. Caddy binaries have no dependencies and are available for every platform. Get Caddy any one of these ways:
Install Caddy any one of these ways:
- **[Download page](https://caddyserver.com/download)** allows you to - **[Download page](https://caddyserver.com/download)** allows you to
customize your build in the browser customize your build in the browser
- **[Latest release](https://github.com/mholt/caddy/releases/latest)** for - **[Latest release](https://github.com/mholt/caddy/releases/latest)** for
pre-built binaries pre-built, vanilla binaries
- **curl [getcaddy.com](https://getcaddy.com)** for auto install: - **go get** to build from source: `go get github.com/mholt/caddy/caddy` (requires Go 1.8 or newer)
`curl https://getcaddy.com | bash`
Then make sure the `caddy` binary is in your PATH.
## Quick Start
To serve static files from the current working directory, run:
```
caddy
```
Once `caddy` is in your PATH, you can `cd` to your website's folder and run Caddy's default port is 2015, so open your browser to [http://localhost:2015](http://localhost:2015).
`caddy` to serve it. By default, Caddy serves the current directory at
[localhost:2015](http://localhost:2015).
To customize how your site is served, create a file named Caddyfile by your ### Go from 0 to HTTPS in 5 seconds
site and paste this into it:
If the `caddy` binary has permission to bind to low ports and your domain name's DNS records point to the machine you're on:
```
caddy -host example.com
```
This command serves static files from the current directory over HTTPS. Certificates are automatically obtained and renewed for you!
### Customizing your site
To customize how your site is served, create a file named Caddyfile by your site and paste this into it:
```plain ```plain
localhost localhost
gzip push
browse browse
websocket /echo cat websocket /echo cat
ext .html ext .html
...@@ -76,93 +98,59 @@ proxy /api 127.0.0.1:7005 ...@@ -76,93 +98,59 @@ proxy /api 127.0.0.1:7005
header /api Access-Control-Allow-Origin * header /api Access-Control-Allow-Origin *
``` ```
When you run `caddy` in that directory, it will automatically find and use When you run `caddy` in that directory, it will automatically find and use that Caddyfile.
that Caddyfile to configure itself.
This simple file enables compression, allows directory browsing (for folders This simple file enables server push (via Link headers), allows directory browsing (for folders without an index file), hosts a WebSocket echo server at /echo, serves clean URLs, logs requests to an access log, proxies all API requests to a backend on port 7005, and adds the coveted `Access-Control-Allow-Origin: *` header for all responses from the API.
without an index file), hosts a WebSocket echo server at /echo, serves clean
URLs, logs requests to access.log, proxies all API requests to a backend on
port 7005, and adds the coveted `Access-Control-Allow-Origin: *` header for
all responses from the API.
Wow! Caddy can do a lot with just a few lines. Wow! Caddy can do a lot with just a few lines.
To host multiple sites and do more with the Caddyfile, please see the ### Doing more with Caddy
[Caddyfile documentation](https://caddyserver.com/docs/caddyfile).
Note that production sites are served over
[HTTPS by default](https://caddyserver.com/docs/automatic-https).
Caddy has a command line interface. Run `caddy -h` to view basic help or see
the [CLI documentation](https://caddyserver.com/docs/cli) for details.
**Running as root:** We advise against this. You can still listen on ports To host multiple sites and do more with the Caddyfile, please see the [Caddyfile tutorial](https://caddyserver.com/tutorial/caddyfile).
< 1024 using setcap like so: `sudo setcap cap_net_bind_service=+ep ./caddy`
Sites with qualifying hostnames are served over [HTTPS by default](https://caddyserver.com/docs/automatic-https).
Caddy has a command line interface. Run `caddy -h` to view basic help or see the [CLI documentation](https://caddyserver.com/docs/cli) for details.
## Running from Source
Note: You will need **[Go 1.8](https://golang.org/dl/)** or newer.
1. `go get github.com/mholt/caddy/caddy`
2. `cd` into your website's directory
3. Run `caddy` (assuming `$GOPATH/bin` is in your `$PATH`)
Caddy's `main()` is in the caddy subfolder. To recompile Caddy, use
`build.bash` found in that folder.
## Running in Production ## Running in Production
The Caddy project does not officially maintain any system-specific Caddy is production-ready if you find it to be a good fit for your site and workflow.
integrations, but your download file includes
[unofficial resources](https://github.com/mholt/caddy/tree/master/dist/init)
contributed by the community that you may find helpful for running Caddy in
production.
How you choose to run Caddy is up to you. Many users are satisfied with **Running as root:** We advise against this. You can still listen on ports < 1024 on Linux using setcap like so: `sudo setcap cap_net_bind_service=+ep ./caddy`
`nohup caddy &`. Others use `screen`. Users who need Caddy to come back up
after reboots either do so in the script that caused the reboot, add a command
to an init script, or configure a service with their OS.
The Caddy project does not officially maintain any system-specific integrations nor suggest how to administer your own system. But your download file includes [unofficial resources](https://github.com/mholt/caddy/tree/master/dist/init) contributed by the community that you may find helpful for running Caddy in production.
How you choose to run Caddy is up to you. Many users are satisfied with `nohup caddy &`. Others use `screen`. Users who need Caddy to come back up after reboots either do so in the script that caused the reboot, add a command to an init script, or configure a service with their OS.
## Contributing ## Contributing
**[Join our community](https://forum.caddyserver.com) where you can chat with **[Join our forum](https://forum.caddyserver.com) where you can chat with other Caddy users and developers!**
other Caddy users and developers!**
Please see our [contributing guidelines](https://github.com/mholt/caddy/blob/master/CONTRIBUTING.md) Please see our [contributing guidelines](https://github.com/mholt/caddy/blob/master/CONTRIBUTING.md). If you want to write a plugin, check out the [developer wiki](https://github.com/mholt/caddy/wiki).
and check out the [developer wiki](https://github.com/mholt/caddy/wiki).
We use GitHub issues and pull requests only for discussing bug reports and We use GitHub issues and pull requests only for discussing bug reports and the development of specific changes. We welcome all other topics on the [forum](https://forum.caddyserver.com)!
the development of specific changes. We welcome all other topics on the
[forum](https://forum.caddyserver.com)!
If you want to contribute to the documentation, please submit pull requests to [caddyserver/caddyserver.com](https://github.com/caddyserver/caddyserver.com). If you want to contribute to the documentation, please submit pull requests to [caddyserver/website](https://github.com/caddyserver/website).
Thanks for making Caddy -- and the Web -- better! Thanks for making Caddy -- and the Web -- better!
Special thanks to
[![DigitalOcean](https://i.imgur.com/sfGr0eY.png)](https://www.digitalocean.com)
for hosting the Caddy project.
## Donors
- [DigitalOcean](https://m.do.co/c/6d7bdafccf96) is hosting the Caddy project.
- [DNSimple](https://dnsimple.link/resolving-caddy) provides DNS services for Caddy's sites.
- [DNS Spy](https://dnsspy.io) keeps an eye on Caddy's DNS properties.
We thank them for their services. **If you want to help keep Caddy free, please [become a sponsor](https://caddyserver.com/pricing)!**
## About the Project ## About the Project
Caddy was born out of the need for a "batteries-included" web server that runs Caddy was born out of the need for a "batteries-included" web server that runs anywhere and doesn't have to take its configuration with it. Caddy took inspiration from [spark](https://github.com/rif/spark), [nginx](https://github.com/nginx/nginx), lighttpd,
anywhere and doesn't have to take its configuration with it. Caddy took [Websocketd](https://github.com/joewalnes/websocketd) and [Vagrant](https://www.vagrantup.com/), which provides a pleasant mixture of features from each of them.
inspiration from [spark](https://github.com/rif/spark),
[nginx](https://github.com/nginx/nginx), lighttpd, **The name "Caddy":** The name of the software is "Caddy", not "Caddy Server" or "CaddyServer". Please call it "Caddy" or, if you wish to clarify, "the Caddy web server". See [brand guidelines](https://caddyserver.com/brand).
[Websocketd](https://github.com/joewalnes/websocketd)
and [Vagrant](https://www.vagrantup.com/),
which provides a pleasant mixture of features from each of them.
**The name "Caddy":** The name of the software is "Caddy", not "Caddy Server"
or "CaddyServer". Please call it "Caddy" or, if you wish to clarify, "the
Caddy web server". See [brand guidelines](https://caddyserver.com/brand).
*Author on Twitter: [@mholt6](https://twitter.com/mholt6)* *Author on Twitter: [@mholt6](https://twitter.com/mholt6)*
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment