Running Caddy on Android
Clone this wiki locally
So far, there are two confirmed ways to run Caddy on Android: Termux and adb. (If you find another way, please add your instructions!) If you set up your router to forward ports, you should be able to serve live sites with Caddy straight from your phone or tablet. Pretty cool!
Termux (root not required)Using
Method 1: getcaddy.com
This is the easiest way. Ensure curl is installed (
apt install curl), then:
curl https://getcaddy.com | bash
You can use
-s to get Caddy with plugins:
curl https://getcaddy.com | bash -s ipfilter,jwt
Allow the download a minute to start after submitting the command.
caddy to start the server!
Method 2: Build from source
This method downloads and builds Caddy from source directly on your device.
Put these commands into a bash script and run it. You can, of course, customize this as desired. For example, you may replace nano with any other editor in the list of available packages.
apt install git gcc golang nano export GOPATH=~/dev export CGO_ENABLED=0 export PATH=$PATH:$GOPATH/bin go get github.com/mholt/caddy
Note that the build step may take two or three minutes, depending on your device. On the Nexus 9 it takes about one minute.
GOPATH set and with
$GOPATH/bin in your
PATH, you're ready to run Caddy:
If you want to build Caddy with cgo, use
Side-loading using adb (root not required)
Caddy is available for Linux ARM, which means it can run on most newer Android devices.
- Android with ARM architecture
- adb (part of the Android SDK; if you have Android Studio, you already have adb)
- A copy of Caddy for ARM Linux
Assuming the ARM binary is called
$ adb push caddy /data/local/tmp $ adb shell "cd /data/local/tmp; chmod 755 caddy; ./caddy"
You may also want to push a Caddyfile to customize how Caddy runs.