From 835b3a68125be76b3a1e6811c961e6e8beba2193 Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Sat, 14 Jul 2018 21:52:57 +0100 Subject: [PATCH] Add lots of plugins to cadmium --- .gitignore | 2 +- .gitlab-ci.yml | 2 +- patches/plugins.go | 50 +++++++++++++++++++++++++++++++++ scripts/build | 2 +- scripts/download | 70 ++++++++++++++++++++++++++++++++++++++++------ 5 files changed, 115 insertions(+), 11 deletions(-) create mode 100644 patches/plugins.go diff --git a/.gitignore b/.gitignore index a4b0798..203b0f7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ /cadmium -/source +/gopath diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cead86a..f6f40bf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,7 +13,7 @@ build: artifacts: paths: - cadmium - - source + - gopath - plugins.txt only: - tags diff --git a/patches/plugins.go b/patches/plugins.go new file mode 100644 index 0000000..b4839b6 --- /dev/null +++ b/patches/plugins.go @@ -0,0 +1,50 @@ +package caddymain + +import ( + // Directives / Middleware + _ "github.com/linkonoid/caddy-dyndns" + _ "github.com/casbin/caddy-authz" + _ "github.com/miquella/caddy-awses" + _ "github.com/coopernurse/caddy-awslambda" + _ "github.com/nicolasazrak/caddy-cache" + _ "github.com/jung-kurt/caddy-cgi" + _ "github.com/captncraig/cors" + _ "github.com/payintech/caddy-datadog" + _ "github.com/epicagency/caddy-expires" + _ "github.com/filebrowser/filebrowser/caddy/filemanager" + _ "github.com/echocat/caddy-filter" + _ "github.com/caddyserver/forwardproxy" + _ "github.com/kodnaplakal/caddy-geoip" + _ "github.com/abiosoft/caddy-git" + _ "github.com/zikes/gopkg" + _ "github.com/pieterlouw/caddy-grpc" + _ "github.com/filebrowser/filebrowser/caddy/hugo" + _ "github.com/pyed/ipfilter" + _ "github.com/filebrowser/filebrowser/caddy/jekyll" + _ "github.com/BTBurke/caddy-jwt" + _ "github.com/simia-tech/caddy-locale" + _ "github.com/tarent/loginsrv/caddy" + _ "github.com/SchumacherFM/mailout" + _ "github.com/hacdias/caddy-minify" + _ "github.com/Xumeiquer/nobots" + _ "github.com/miekg/caddy-prometheus" + _ "github.com/mastercactapus/caddy-proxyprotocol" + _ "github.com/xuqingfeng/caddy-rate-limit" + _ "github.com/captncraig/caddy-realip" + _ "github.com/freman/caddy-reauth" + // TODO: _ "github.com/restic/caddy" fails to build + _ "blitznote.com/src/caddy.upload" + _ "github.com/hacdias/caddy-webdav" + + // DNS providers (TODO) + + // Caddyfile loaders + _ "github.com/lucaslorentz/caddy-docker-proxy/plugin" + + // Server types + // TODO: DNS. Should be CoreDNS: https://github.com/coredns/coredns + _ "github.com/pieterlouw/caddy-net/caddynet" + + // Event hooks + _ "github.com/hacdias/caddy-service" +) diff --git a/scripts/build b/scripts/build index efa840f..eb5fc0a 100755 --- a/scripts/build +++ b/scripts/build @@ -8,7 +8,7 @@ fi echo "Building Cadmium $1..." cm="github.com/mholt/caddy/caddy/caddymain" -go build \ +GOPATH="$(pwd)/gopath" go build \ -o cadmium \ -ldflags "-X \"$cm.gitTag=$1\" -X \"$cm.gitNearestTag=$1\"" \ github.com/mholt/caddy/caddy diff --git a/scripts/download b/scripts/download index 9cc7a71..291b2b1 100755 --- a/scripts/download +++ b/scripts/download @@ -1,24 +1,78 @@ #!/bin/sh +set -e + if [ "x$1" = "x" ]; then echo "Usage: $0 " exit 1 fi -if [ -e "source" ]; then - echo "source/ directory already exists, remove it first" +if [ -e "gopath" ]; then + echo "gopath/ directory already exists, remove it first" exit 1 fi -curl -L "$1" | tar -xzf - -mv caddy* source +go_get() { + GOPATH="$(pwd)/gopath" go get -v "$@" +} + +mkdir -p gopath/src/github.com/mholt/caddy +curl -L "$1" | tar --strip-components=1 -C gopath/src/github.com/mholt/caddy -xzf - # Disable telemetry in run.go and rename to Cadmium -patch -d source -p1 <"$(pwd)/patches/run.go.diff" +patch -d gopath/src/github.com/mholt/caddy -p1 <"$(pwd)/patches/run.go.diff" # Replace telemetry with a stub -rm -r source/telemetry -mkdir source/telemetry -cp patches/collection.go source/telemetry/collection.go +rm -r gopath/src/github.com/mholt/caddy/telemetry +mkdir gopath/src/github.com/mholt/caddy/telemetry +cp patches/collection.go gopath/src/github.com/mholt/caddy/telemetry/collection.go +cp patches/plugins.go gopath/src/github.com/mholt/caddy/caddy/caddymain/plugins.go +## Now download all the plugins ## +# Directives / Middleware +go_get github.com/linkonoid/caddy-dyndns +go_get github.com/casbin/caddy-authz +go_get github.com/miquella/caddy-awses +go_get github.com/coopernurse/caddy-awslambda +go_get github.com/nicolasazrak/caddy-cache +go_get github.com/jung-kurt/caddy-cgi +go_get github.com/captncraig/cors +go_get github.com/payintech/caddy-datadog +go_get github.com/epicagency/caddy-expires +go_get github.com/filebrowser/filebrowser/caddy/filemanager +go_get github.com/echocat/caddy-filter +go_get github.com/caddyserver/forwardproxy +go_get github.com/kodnaplakal/caddy-geoip +go_get github.com/abiosoft/caddy-git +go_get github.com/zikes/gopkg +go_get github.com/pieterlouw/caddy-grpc +go_get github.com/filebrowser/filebrowser/caddy/hugo +go_get github.com/pyed/ipfilter +go_get github.com/filebrowser/filebrowser/caddy/jekyll +go_get github.com/BTBurke/caddy-jwt +go_get github.com/simia-tech/caddy-locale +go_get github.com/tarent/loginsrv/caddy +go_get github.com/SchumacherFM/mailout +go_get github.com/hacdias/caddy-minify +go_get github.com/Xumeiquer/nobots +go_get github.com/miekg/caddy-prometheus +go_get github.com/mastercactapus/caddy-proxyprotocol +go_get github.com/xuqingfeng/caddy-rate-limit +go_get github.com/captncraig/caddy-realip +go_get github.com/freman/caddy-reauth +# TODO: go_get github.com/restic/caddy fails to build +go_get blitznote.com/src/caddy.upload +go_get github.com/hacdias/caddy-webdav + +# DNS providers (TODO) + +# Caddyfile loaders +go_get github.com/lucaslorentz/caddy-docker-proxy/plugin + +# Server types +# TODO: DNS. Should be CoreDNS: https://github.com/coredns/coredns +go_get github.com/pieterlouw/caddy-net + +# Event hooks +go_get github.com/hacdias/caddy-service