Assumptions:
- JFFS on and persistent
- EntWare installed on USB
opkg install go
mv $HOME/go /opt/home # So we don't run out of space
export GOROOT=/opt/bin/go # Go is here
export GOPATH=/opt/home/go # XCaddy will go here
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin # So we can access both
export TMPDIR=/opt/tmp # Build folder for Go
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
export XDG_DATA_HOME=/opt/share/caddy
export XDG_CONFIG_HOME=/opt/etc
mkdir /opt/share/caddy
mkdir /opt/var/log/caddy
mkdir /opt/etc/caddy
cat > /opt/etc/caddy/Caddyfile << EOF
{
storage file_system {
root /opt/share/caddy
}
}
EOF
cat > /opt/etc/init.d/S98caddy << EOF
#!/bin/sh
ENABLED="yes"
PROCS="caddy"
ARGS="start --environ --config $XDG_CONFIG_HOME/caddy/Caddyfile"
WORK_DIR="$XDG_DATA_HOME/caddy"
DESC=$PROCS
PREARGS=""
PRECMD=""
POSTCMD=""
. /opt/etc/init.d/rc.func
EOF
xcaddy build --output /opt/bin --with github.com/caddy-dns/cloudflare --with github.com/caddyserver/transform-encoder
/opt/etc/init.d/S98caddy start