mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-23 22:27:38 -05:00
66 lines
2 KiB
Markdown
66 lines
2 KiB
Markdown
Meet caddy
|
|
===========
|
|
|
|
Caddy is a web server for your files like Apache, nginx, or lighttpd, but with different goals, features, and advantages.
|
|
|
|
*Note:* This software is pre-1.0. Don't use it in production (yet).
|
|
|
|
### Features
|
|
|
|
- SSL (TLS)
|
|
- Gzip
|
|
- FastCGI (yes, it can serve PHP sites)
|
|
- Logging
|
|
- Rewrite
|
|
- Redirect
|
|
- Extensionless (clean) URLs
|
|
- Multi-core
|
|
- Custom headers
|
|
|
|
Caddy is designed to be super-easy to use and configure.
|
|
|
|
### Run Caddy
|
|
|
|
1. Download or build it
|
|
2. `cd` into a directory you want to serve
|
|
3. `./caddy`
|
|
|
|
Caddy will, by default, serve the current working directory on [http://localhost:8080](http://localhost:8080) (the default port will change before version 1.0).
|
|
|
|
### Configuring Caddy
|
|
|
|
If the current directory has a file called `Caddyfile`, it will be loaded and parsed and used as configuration. To configure Caddy, use a Caddyfile.
|
|
|
|
A Caddyfile always starts with the address to bind to. The rest of the lines are configuration directives. Here's an example:
|
|
|
|
```
|
|
mydomain.com:80
|
|
gzip
|
|
ext .html
|
|
header /api Access-Control-Allow-Origin *
|
|
```
|
|
|
|
This simple file enables gzip compression, serves clean URLs (tries `.html` files under the hood), and adds the coveted `Access-Control-Allow-Origin: *` header to all requests starting with `/api`. Wow! Caddy can do a lot with just four lines.
|
|
|
|
Maybe you want to serve both HTTP and HTTPS. You can define multiple (virtual) hosts using curly braces:
|
|
|
|
```
|
|
mydomain.com:80 {
|
|
gzip
|
|
ext .html
|
|
header /api Access-Control-Allow-Origin *
|
|
}
|
|
|
|
mydomain.com:443 {
|
|
tls cert.pem key.pem
|
|
}
|
|
```
|
|
|
|
For more details, including which directives you can use to configure Caddy, see [the wiki](https://github.com/mholt/caddy/wiki).
|
|
|
|
Better documentation (and rigorous tests) are on their way as the program matures and leaves the experimental phase.
|
|
|
|
|
|
### Contributing
|
|
|
|
Please submit your ideas in an issue or you can drop a quick [tweet to @mholt6](https://twitter.com/mholt6). Pull requests that fix bugs are totally welcome, too. (Pull requests for new features should be discussed in an issue first.) Thanks for being involved!
|