Skip to content

Commit ad399f9

Browse files
author
root
committed
update source
1 parent 4e06236 commit ad399f9

11 files changed

+2138
-157
lines changed

.dockerignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ release/
1616

1717
Dockerfile
1818
.*
19-
*.sh
2019
*.md
2120
LICENSE
21+
22+
xcaddy*

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ bin/
1515
release/
1616

1717
.DS_Store
18+
xcaddy*

Dockerfile

+11-62
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,20 @@
1-
FROM caddy:builder as builder
1+
FROM cnk3x/golang as builder
22

3-
RUN apk --no-cache add upx ca-certificates
3+
RUN echo ":80\nrespond \"hello caddy server!\"" > /rootfs/Caddyfile
44

5-
ENV GOPROXY=https://goproxy.cn
5+
ENV GOPROXY=https://proxy.golang.com.cn,https://goproxy.cn,direct
66

7-
RUN xcaddy build --output /caddy \
8-
--with github.com/caddyserver/caddy/v2/modules/standard \
9-
--with github.com/caddy-dns/alidns \
10-
--with github.com/caddy-dns/azure \
11-
--with github.com/caddy-dns/cloudflare \
12-
--with github.com/caddy-dns/digitalocean \
13-
--with github.com/caddy-dns/dnspod \
14-
--with github.com/caddy-dns/duckdns \
15-
--with github.com/caddy-dns/gandi \
16-
--with github.com/caddy-dns/hetzner \
17-
--with github.com/caddy-dns/openstack-designate \
18-
--with github.com/caddy-dns/route53 \
19-
--with github.com/caddy-dns/vultr \
20-
--with github.com/mholt/caddy-dynamicdns \
21-
--with github.com/abiosoft/caddy-exec \
22-
--with github.com/hslatman/caddy-crowdsec-bouncer/crowdsec \
23-
--with github.com/ss098/certmagic-s3 \
24-
--with github.com/gamalan/caddy-tlsredis \
25-
--with github.com/silinternational/certmagic-storage-dynamodb/v2 \
26-
--with github.com/pteich/caddy-tlsconsul \
27-
--with github.com/caddyserver/format-encoder \
28-
--with github.com/mastercactapus/caddy2-proxyprotocol \
29-
--with github.com/ggicci/caddy-jwt \
30-
--with github.com/ueffel/caddy-brotli \
31-
--with github.com/HeavenVolkoff/caddy-authelia/plugin \
32-
--with github.com/greenpau/caddy-auth-portal \
33-
--with github.com/casbin/caddy-authz/v2 \
34-
--with github.com/aksdb/caddy-cgi/v2 \
35-
--with github.com/hslatman/caddy-crowdsec-bouncer/http \
36-
--with github.com/cubic3d/caddy-ct \
37-
--with github.com/dunglas/mercure/caddy \
38-
--with github.com/abiosoft/caddy-json-parse \
39-
--with github.com/abiosoft/caddy-hmac \
40-
--with magnax.ca/caddy/gopkg \
41-
--with github.com/sjtug/caddy2-filter \
42-
--with github.com/caddyserver/replace-response \
43-
--with github.com/kirsch33/realip \
44-
--with github.com/mholt/caddy-ratelimit \
45-
--with github.com/cubic3d/caddy-quantity-limiter \
46-
--with github.com/lindenlab/caddy-s3-proxy \
47-
--with github.com/lolPants/caddy-requestid \
48-
--with github.com/caddyserver/ntlm-transport \
49-
--with github.com/porech/caddy-maxmind-geolocation \
50-
--with github.com/WingLim/caddy-webhook \
51-
--with github.com/mholt/caddy-webdav \
52-
--with github.com/dunglas/vulcain/caddy \
53-
--with github.com/greenpau/caddy-trace \
54-
--with github.com/mholt/caddy-l4/layer4 \
55-
--with github.com/mholt/caddy-l4/modules/l4echo \
56-
--with github.com/mholt/caddy-l4/modules/l4proxy \
57-
--with github.com/mholt/caddy-l4/modules/l4tee \
58-
--with github.com/mholt/caddy-l4/modules/l4tls \
59-
--with github.com/mholt/caddy-l4/modules/l4ssh \
60-
--with github.com/mholt/caddy-l4/modules/l4http \
61-
--with github.com/hslatman/caddy-crowdsec-bouncer/layer4 \
62-
--with github.com/baldinof/caddy-supervisor && \
63-
upx -9 /caddy
7+
WORKDIR /go/caddy
8+
COPY local_build.sh ./
9+
RUN chmod +x local_build.sh && \
10+
./local_build.sh && \
11+
mv /go/caddy/caddy /rootfs/caddy && \
12+
upx /caddy/caddy && \
13+
echo ":80\nrespond \"hello caddy server!\"" > /caddy/Caddyfile
6414

6515
FROM scratch
6616

67-
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
68-
COPY --from=builder /caddy /caddy
17+
COPY --from=builder /rootfs/ /
6918

7019
ENV HOME=/data
7120
WORKDIR /data

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -199,4 +199,4 @@
199199
distributed under the License is distributed on an "AS IS" BASIS,
200200
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201201
See the License for the specific language governing permissions and
202-
limitations under the License.
202+
limitations under the License.

README.md

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,20 @@
11
# caddy builder
22

3-
编译 caddy,集成目前官网发布的所有插件
3+
官网要编译一个大全插件版本根本不可能,依赖地狱太痛苦了,所以搞了一个项目来编译 caddy, 尽可能的集成官网列出来的插件
4+
5+
```text
6+
下列插件多年没更新,已经不适合最新的代码了,暂时过滤掉
7+
8+
firecow/caddy-forward-auth //forward_auth: 在2.5.1中已经内置了
9+
github.com/francislavoie/caddy-hcl
10+
github.com/techknowlogick/certmagic-s3
11+
github.com/hslatman/caddy-openapi-validator
12+
github.com/mohammed90/caddy-ssh
13+
github.com/dunglas/vulcain/caddy
14+
github.com/dunglas/mercure/caddy
15+
github.com/RussellLuo/caddy-ext/flagr
16+
github.com/caddyserver/cache-handler
17+
```
418

519
```sh
620
git clone https://github.com/cnk3x/caddy.git

build.sh

-92
This file was deleted.

build_scripts.sh

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#!/usr/bin/env sh
2+
3+
set -e
4+
5+
root=$(
6+
cd $(dirname $0)
7+
pwd
8+
)
9+
10+
cd ${root}
11+
12+
modules=$(cat ${root}/package.json |
13+
grep '"path": "' |
14+
sed 's/"path": "//g; s/",//g; s/ //g' |
15+
grep -v 'firecow/caddy-forward-auth' |
16+
grep -v 'RussellLuo/caddy-ext/ratelimit' |
17+
grep -v 'francislavoie/caddy-hcl' |
18+
grep -v 'techknowlogick/certmagic-s3' |
19+
grep -v 'hslatman/caddy-openapi-validator' |
20+
grep -v 'mohammed90/caddy-ssh' |
21+
grep -v 'dunglas/vulcain/caddy' |
22+
grep -v 'dunglas/mercure/caddy' |
23+
grep -v 'silinternational/certmagic-storage-dynamodb' |
24+
# sed 's|silinternational/certmagic-storage-dynamodb/v2|silinternational/certmagic-storage-dynamodb/v3|g' |
25+
grep -v 'firecow/caddy-elastic-encoder' |
26+
grep -v 'RussellLuo/caddy-ext/flagr' |
27+
grep -v 'caddyserver/cache-handler' |
28+
sed 's|caddyserver/nginx-adapter|caddyserver/nginx-adapter@master|g' |
29+
sed 's|lucaslorentz/caddy-docker-proxy/plugin/v2|lucaslorentz/caddy-docker-proxy/v2|g' |
30+
sort -u)
31+
32+
shfn=local_build.sh
33+
cat >${shfn} <<EOF
34+
#!/usr/bin/env sh
35+
set -eu
36+
export XCADDY_GO_BUILD_FLAGS="-ldflags '-s -w -extldflags -static'"
37+
export GOPROXY=https://proxy.golang.com.cn,direct
38+
export GOBIN=/mnt/d/devlops/caddy
39+
export XCADDY_SKIP_CLEANUP=1
40+
go install -v github.com/caddyserver/xcaddy/cmd/xcaddy@master
41+
42+
./xcaddy build \\
43+
EOF
44+
for n in $modules; do
45+
echo " --with ${n} \\" >>${shfn}
46+
done
47+
echo " --with github.com/darkweak/souin@v1.6.6" >>${shfn}
48+
49+
psfn=local_build.ps1
50+
cat >${psfn} <<EOF
51+
\$env:XCADDY_GO_BUILD_FLAGS = "-ldflags '-s -w -extldflags -static'"
52+
\$env:GOPROXY = "https://proxy.golang.com.cn,direct"
53+
\$env:GOBIN = Get-Location
54+
\$env:XCADDY_SKIP_CLEANUP = 1
55+
go install -v github.com/caddyserver/xcaddy/cmd/xcaddy@master
56+
57+
./xcaddy build \`
58+
EOF
59+
for n in $modules; do
60+
echo " --with ${n} \`" >>${psfn}
61+
done
62+
echo " --with github.com/darkweak/souin@v1.6.6" >>${psfn}

local_build.ps1

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
$env:XCADDY_GO_BUILD_FLAGS = "-ldflags '-s -w -extldflags -static'"
2+
$env:GOPROXY = "https://proxy.golang.com.cn,direct"
3+
$env:GOBIN = Get-Location
4+
$env:XCADDY_SKIP_CLEANUP = 1
5+
go install -v github.com/caddyserver/xcaddy/cmd/xcaddy@master
6+
7+
./xcaddy build `
8+
--with github.com/Elegant996/scgi-transport `
9+
--with github.com/HeavenVolkoff/caddy-authelia/plugin `
10+
--with github.com/RussellLuo/caddy-ext/requestbodyvar `
11+
--with github.com/RussellLuo/olaf/caddyconfig/adapter `
12+
--with github.com/WingLim/caddy-webhook `
13+
--with github.com/abiosoft/caddy-exec `
14+
--with github.com/abiosoft/caddy-hmac `
15+
--with github.com/abiosoft/caddy-json-parse `
16+
--with github.com/abiosoft/caddy-json-schema `
17+
--with github.com/abiosoft/caddy-named-routes `
18+
--with github.com/abiosoft/caddy-yaml `
19+
--with github.com/aksdb/caddy-cgi/v2 `
20+
--with github.com/baldinof/caddy-supervisor `
21+
--with github.com/caddy-dns/alidns `
22+
--with github.com/caddy-dns/azure `
23+
--with github.com/caddy-dns/cloudflare `
24+
--with github.com/caddy-dns/digitalocean `
25+
--with github.com/caddy-dns/dnspod `
26+
--with github.com/caddy-dns/duckdns `
27+
--with github.com/caddy-dns/gandi `
28+
--with github.com/caddy-dns/godaddy `
29+
--with github.com/caddy-dns/googleclouddns `
30+
--with github.com/caddy-dns/hetzner `
31+
--with github.com/caddy-dns/lego-deprecated `
32+
--with github.com/caddy-dns/metaname `
33+
--with github.com/caddy-dns/netcup `
34+
--with github.com/caddy-dns/netlify `
35+
--with github.com/caddy-dns/openstack-designate `
36+
--with github.com/caddy-dns/route53 `
37+
--with github.com/caddy-dns/vultr `
38+
--with github.com/caddyserver/jsonc-adapter `
39+
--with github.com/caddyserver/nginx-adapter@master `
40+
--with github.com/caddyserver/ntlm-transport `
41+
--with github.com/caddyserver/replace-response `
42+
--with github.com/caddyserver/transform-encoder `
43+
--with github.com/casbin/caddy-authz/v2 `
44+
--with github.com/chukmunnlee/caddy-openapi `
45+
--with github.com/circa10a/caddy-geofence `
46+
--with github.com/cubic3d/caddy-ct `
47+
--with github.com/cubic3d/caddy-quantity-limiter `
48+
--with github.com/darkweak/souin/plugins/caddy `
49+
--with github.com/gamalan/caddy-tlsredis `
50+
--with github.com/gbox-proxy/gbox `
51+
--with github.com/ggicci/caddy-jwt `
52+
--with github.com/git001/caddyv2-upload `
53+
--with github.com/greenpau/caddy-git `
54+
--with github.com/greenpau/caddy-security `
55+
--with github.com/greenpau/caddy-trace `
56+
--with github.com/hairyhenderson/caddy-teapot-module `
57+
--with github.com/hslatman/caddy-crowdsec-bouncer `
58+
--with github.com/imgk/caddy-trojan `
59+
--with github.com/kirsch33/realip `
60+
--with github.com/lindenlab/caddy-s3-proxy `
61+
--with github.com/lolPants/caddy-requestid `
62+
--with github.com/lucaslorentz/caddy-docker-proxy/v2 `
63+
--with github.com/mastercactapus/caddy2-proxyprotocol `
64+
--with github.com/mholt/caddy-dynamicdns `
65+
--with github.com/mholt/caddy-l4 `
66+
--with github.com/mholt/caddy-ratelimit `
67+
--with github.com/mholt/caddy-webdav `
68+
--with github.com/mpilhlt/caddy-conneg `
69+
--with github.com/muety/caddy-pirsch-plugin `
70+
--with github.com/muety/caddy-remote-host `
71+
--with github.com/porech/caddy-maxmind-geolocation `
72+
--with github.com/pteich/caddy-tlsconsul `
73+
--with github.com/shift72/caddy-geo-ip `
74+
--with github.com/sillygod/cdp-cache `
75+
--with github.com/sjtug/caddy2-filter `
76+
--with github.com/techknowlogick/caddy-s3browser `
77+
--with github.com/tosie/caddy-dns-linode `
78+
--with github.com/ueffel/caddy-basic-auth-filter `
79+
--with github.com/ueffel/caddy-brotli `
80+
--with github.com/ueffel/caddy-imagefilter/defaults `
81+
--with github.com/ueffel/caddy-tls-format `
82+
--with magnax.ca/caddy/gopkg `
83+
--with github.com/darkweak/souin@v1.6.6

0 commit comments

Comments
 (0)