Wiki > Caddy Server Reverse Proxy
"Caddy, sometimes clarified as the Caddy web server, is an open source, HTTP/2-enabled web server written in Go. It uses the Go standard library for its HTTP functionality. One of Caddy's most notable features is enabling HTTPS by default. It is the first general-purpose web server to do so without requiring extra configuration"
This guide is to help setup a reverse proxy for your slot with free SSL security from Lets Encrypt. You will need your own domain and it will need to be managed by Cloudflare. There are other ways to get this working but this guide will assume you own a domain and have it in your own Cloudflare account.
Installation
Downloading the server
-
Create Caddy's directory
mkdir ~/caddy
-
Change to the directory
cd ~/caddy
-
Download the latest version of the Caddy server software
wget -O caddy "https://caddyserver.com/api/download?os=linux&arch=amd64&p=github.com%2Fcaddy-dns%2Fcloudflare"
-
Make it executable
chmod +x caddy
Configuration
-
Create the configuration file
touch ~/caddy/Caddyfile
-
Edit the config
nano ~/caddy/Caddyfile
-
Copy in the example config, don't forget to replace YOUR_API_KEY with the API key you created for the zone of the domain you're using in Cloudflare
{ http_port 24309 https_port 12154 } **my.domain.com** { tls { dns cloudflare **YOUR_API_KEY** } reverse_proxy localhost:**port of exposed service** }
-
Adust the
**bold**
values to enter the correct information. More proxy sites can be added by adding additionalmy.domain.com
(a different subdomain) blocks as long as formatting is kept.
Starting the server
-
Users do no not have root access so a few changes need to be made to ensure things can run.
-
Now run the server in screen, random ports have been set for your use.
screen -dmS caddy ~/caddy/caddy run --config ~/caddy/Caddyfile
-
You will need to accept the terms on the first run and provide your email address for Lets Encrypt
screen -r caddy then *ctrl + a*, then *d* to exit the screen but not stop it running
-
Service should be available at
https://my.domain.com:12154