2017-04-20 18:04:57 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Caddy Installer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								---------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Works on
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  *  Ubuntu Linux
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  *  macOS Sierra
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  *  probably lots of others
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Supports
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-04-20 18:09:15 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  *  **systemd** (Ubuntu, Fedora, Arch, etc)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  *  **launchd** (OS X, macOS, Darwin)
							 
						 
					
						
							
								
									
										
										
										
											2017-04-20 18:04:57 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-04-20 18:09:15 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Quick 'n' Dirty
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**Caddy**:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								curl -L https://git.daplie.com/Daplie/caddy-installer/raw/master/install-caddy | bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**Caddy + Features**:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								curl -L https://git.daplie.com/Daplie/caddy-installer/raw/master/install-caddy | bash -s -- search,realip
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The default site location is `/srv/www/`  and the server begins immediately.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								http://localhost
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Install... the installer
							 
						 
					
						
							
								
									
										
										
										
											2017-04-20 18:04:57 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								-------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Yes... you install the installer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
									
										
										
										
											2017-04-20 18:09:15 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# download
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								curl -L https://git.daplie.com/Daplie/caddy-installer/raw/master/install-caddy -o install-caddy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#change permissions
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sudo chown root:root ./install-caddy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sudo chmod a+x ./install-caddy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# move
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sudo mv ./install-caddy /usr/local/bin/install-caddy
							 
						 
					
						
							
								
									
										
										
										
											2017-04-20 18:04:57 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Usage
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-----
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								install-caddy --help
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Usage: install-caddy [plugin1,plugin2,...]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Optional arguments (defaults shown)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  --os darwin      # any of windows darwin linux freebsd openbsd
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  --arch amd64     # any of arm64 amd64 386 armv5 armv6l armv7l
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Features:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								DNS,awslambda,cors,expires,filemanager,filter,git,hugo,ipfilter,jsonp,jwt,locale,mailout,minify,multipass,prometheus,ratelimit,realip,search,upload,cloudflare,digitalocean,dnsimple,dyn,gandi,googlecloud,linode,namecheap,ovh,rfc2136,route53,vultr
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-04-20 18:09:15 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Where do my websites go?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The default site is `/srv/www/localhost` .
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If you own a domain (say example.com) then you
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								should put a new folder in `/srv/www`  (such as `/srv/www/example.com` )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								and then edit `/etc/caddy/Caddyfile`  to include a config such as this:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```Caddyfile
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								https://example.com {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  root /srv/www/example.com
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								https://www.example.com {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  redir https://example.com
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Start caddy on boot
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Startup Scripts are installed by the installer :)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  *  **systemd** (Ubuntu, Fedora, Arch, etc)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  *  **launchd** (OS X, macOS, Darwin)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Caddy should begin running on ports 80 and 443 as soon as you install it
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								and should automatically start on boot
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-04-20 18:04:57 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Caveats
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### all platforms
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`go`  (in which `caddy`  is written) doesn't support privilege deescalation 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(running on root to bind to port 80 and 443 and then switching to a non-root user).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This isn't usually a problem, however, because the launchers (systemd et al) usually do.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### darwin / macOS / OS X
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `launchd`  doesn't support privilege deescalation 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `authbind`  doesn't work on recent versions of OS X 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								However, you can use [ipfw ](https://apple.stackexchange.com/questions/37418/how-can-i-open-port-80-so-a-non-root-process-can-bind-to-it ) to locally port-forward.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Also, `launchd`  is a pain to configure.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								There's not much in the way of official documuntation...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								but there is some [great unofficial documentation ](http://www.launchd.info/ )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								and [LaunchControl ](http://www.soma-zone.com/LaunchControl/ )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								([direct download ](http://www.soma-zone.com/download/files/LaunchControl_1.30.1.tar.bz2 ))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								makes it actually quite easy.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(ignore that the site looks like a 90s spam site - much like MakeMKV - it's actually legit)