Skip to content

Instantly share code, notes, and snippets.

@adapowers
Last active July 20, 2023 23:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adapowers/47194cce6873d9ced829f17f568d2e14 to your computer and use it in GitHub Desktop.
Save adapowers/47194cce6873d9ced829f17f568d2e14 to your computer and use it in GitHub Desktop.
caddy on Asus-Merlin AX86U

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment