diff --git a/repo/caddy-git/Caddyfile b/repo/caddy-git/Caddyfile new file mode 120000 index 0000000..2a04384 --- /dev/null +++ b/repo/caddy-git/Caddyfile @@ -0,0 +1 @@ +../caddy/Caddyfile \ No newline at end of file diff --git a/repo/caddy-git/PKGBUILD b/repo/caddy-git/PKGBUILD new file mode 100644 index 0000000..6d3982c --- /dev/null +++ b/repo/caddy-git/PKGBUILD @@ -0,0 +1,108 @@ +# Base on https://github.com/archlinux/svntogit-packages/tree/packages/bash/trunk +# Contributor: Levente Polyak +# Contributor: Christian Rebischke +# Contributor: Wei Congrui < crvv.mail at gmail dot com > +# Contributor: Carl George < arch at cgtx dot us > +# Contributor: Eric Engeström +# Contributor: Andreas Linz +# Contributor: Akshay S Dinesh + +pkgname=caddy-git +pkgver=2.7.0.beta.1 +pkgrel=3 +pkgdesc='Fast web server with automatic HTTPS' +url='https://caddyserver.com' +arch=('x86_64') +license=('Apache') +depends=('glibc') +makedepends=('go' 'git' 'gzip') +conflicts=('caddy') +provides=('caddy') +backup=('etc/caddy/Caddyfile') +source=( + caddy-git::"git+https://github.com/caddyserver/caddy.git" + caddy-dist::"git+https://github.com/caddyserver/dist.git" + forwardproxy::"git+https://github.com/klzgrad/forwardproxy.git" + main.go + caddy.sysusers + caddy.tmpfiles + Caddyfile +) +sha512sums=( + 'SKIP' + 'SKIP' + 'SKIP' + 'aa9fefd87c87e3a120af66fcd745448831b99baab9b795a35544a752147422920d200e4c0ea9d0ceb0880f80e01c351522209fbcfce0d5b7d7cac940565755a3' + 'c893d88fec89e37da6596030c8dce7103e7e575371e8542a24d2a0741e877358d85219f2d8ade9d6aa0f515efe1156a4badd9fef5f65f553a5b0c72330c4728f' + '55ee8d3f8b14f9adddc7a1026addcea4f85b4bae4cd512fd4da2a5e8adaae4b6fd0f486d2e3847f75518f4710a897b4fca84e48ee15700b968bad762125c4742' + '716da3f4edeb3561243aeaf5c32b01ff7a4ac810b6deba8364fb12a1f71b6a5278c34a97b289bcfdc48784679b942bf780f1f36d416a575791168c94b0d59fe0' +) + +pkgver() { + cd "${pkgname}-git" + git describe --tags --long | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-\([^-]*\)-\([^-]*\)$/.\1.\2/;s/-//' +} + +prepare() { + pushd "${pkgname}-git" + _gitcommit=$(git rev-parse HEAD) + popd + + mkdir ${pkgname} + cd ${pkgname} + cp ../main.go . + go mod init caddy + sed -i -e '$a replace github.com/caddyserver/forwardproxy => ../forwardproxy' go.mod + go get github.com/caddyserver/caddy/v2@${_gitcommit} + go mod tidy + + # welcome page + cp ../caddy-dist/welcome/index.html . + sed 's|/var/www/html|/srv/http|g' -i index.html +} + +build() { + cd ${pkgname} + export CGO_LDFLAGS="${LDFLAGS}" + export CGO_CPPFLAGS="${CPPFLAGS}" + export CGO_CFLAGS="${CFLAGS}" + export CGO_CXXFLAGS="${CXXFLAGS}" + export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw" + go build . + + for i in zsh bash fish; do + ./caddy completion $i >caddy.$i + done + + ./caddy manpage --directory manpages + gzip manpages/* +} + +check() { + cd "${pkgname}" + ./caddy version + ./caddy build-info + ./caddy list-modules +} + +package() { + cd "${pkgname}" + install -Dm 755 caddy -t "${pkgdir}/usr/bin" + + install -Dm 644 "${srcdir}/caddy-dist/init/caddy.service" "${srcdir}/caddy-dist/init/caddy-api.service" -t "${pkgdir}/usr/lib/systemd/system" + install -Dm 644 "${srcdir}/caddy.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/caddy.conf" + install -Dm 644 "${srcdir}/caddy.sysusers" "${pkgdir}/usr/lib/sysusers.d/caddy.conf" + + install -Dm 644 "${srcdir}/Caddyfile" -t "${pkgdir}/etc/caddy" + install -d "${pkgdir}/etc/caddy/conf.d" + + install -Dm 644 index.html "${pkgdir}/usr/share/caddy/index.html" + + install -Dm 644 caddy.zsh "${pkgdir}/usr/share/zsh/site-functions/_caddy" + install -Dm 644 caddy.bash "${pkgdir}/usr/share/bash-completion/completions/caddy" + install -Dm 644 caddy.fish -t "${pkgdir}/usr/share/fish/vendor_completions.d" + + install -Dm 644 manpages/* -t "${pkgdir}/usr/share/man/man8" +} + +# vim: ts=2 sw=2 et: diff --git a/repo/caddy-git/caddy.sysusers b/repo/caddy-git/caddy.sysusers new file mode 120000 index 0000000..8bdef6d --- /dev/null +++ b/repo/caddy-git/caddy.sysusers @@ -0,0 +1 @@ +../caddy/caddy.sysusers \ No newline at end of file diff --git a/repo/caddy-git/caddy.tmpfiles b/repo/caddy-git/caddy.tmpfiles new file mode 120000 index 0000000..1a0248e --- /dev/null +++ b/repo/caddy-git/caddy.tmpfiles @@ -0,0 +1 @@ +../caddy/caddy.tmpfiles \ No newline at end of file diff --git a/repo/caddy-git/lilac.yaml b/repo/caddy-git/lilac.yaml new file mode 100644 index 0000000..a11c065 --- /dev/null +++ b/repo/caddy-git/lilac.yaml @@ -0,0 +1,14 @@ +maintainers: + - github: yingziwu + email: i@bgme.me + +build_prefix: extra-x86_64 + +pre_build: vcs_update + +post_build: git_pkgbuild_commit + +update_on: + - source: github + github: caddyserver/caddy + - source: vcs diff --git a/repo/caddy-git/main.go b/repo/caddy-git/main.go new file mode 120000 index 0000000..80d5db7 --- /dev/null +++ b/repo/caddy-git/main.go @@ -0,0 +1 @@ +../caddy/main.go \ No newline at end of file diff --git a/repo/caddy/Caddyfile b/repo/caddy/Caddyfile new file mode 100644 index 0000000..e8dda50 --- /dev/null +++ b/repo/caddy/Caddyfile @@ -0,0 +1,40 @@ +# The Caddyfile is an easy way to configure your Caddy web server. +# +# https://caddyserver.com/docs/caddyfile +# +# The configuration below serves a welcome page over HTTP on port 80. +# To use your own domain name (with automatic HTTPS), first make +# sure your domain's A/AAAA DNS records are properly pointed to +# this machine's public IP, then replace the line below with your +# domain name. +# +# https://caddyserver.com/docs/caddyfile/concepts#addresses + +{ + # Restrict the admin interface to a local unix file socket whose directory + # is restricted to caddy:caddy. By default the TCP socket allows arbitrary + # modification for any process and user that has access to the local + # interface. If admin over TCP is turned on one should make sure + # implications are well understood. + admin "unix//run/caddy/admin.socket" +} + +http:// { + # Set this path to your site's directory. + root * /usr/share/caddy + + # Enable the static file server. + file_server + + # Another common task is to set up a reverse proxy: + # reverse_proxy localhost:8080 + + # Or serve a PHP site through php-fpm: + # php_fastcgi localhost:9000 + + # Refer to the directive documentation for more options. + # https://caddyserver.com/docs/caddyfile/directives +} + +# Import additional caddy config files in /etc/caddy/conf.d/ +import /etc/caddy/conf.d/* diff --git a/repo/caddy/PKGBUILD b/repo/caddy/PKGBUILD new file mode 100644 index 0000000..1511a7c --- /dev/null +++ b/repo/caddy/PKGBUILD @@ -0,0 +1,106 @@ +# Base on https://github.com/archlinux/svntogit-packages/tree/packages/bash/trunk +# Contributor: Levente Polyak +# Contributor: Christian Rebischke +# Contributor: Wei Congrui < crvv.mail at gmail dot com > +# Contributor: Carl George < arch at cgtx dot us > +# Contributor: Eric Engeström +# Contributor: Andreas Linz +# Contributor: Akshay S Dinesh + +pkgname=caddy +pkgver=2.7.0.beta.1 +_gitcommit=v2.7.0-beta.1 +_distcommit=5ded5351fc9f6f35286e38c4552fc2d8b37f4df3 +pkgrel=3 +pkgdesc='Fast web server with automatic HTTPS' +url='https://caddyserver.com' +arch=('x86_64') +license=('Apache') +depends=('glibc') +makedepends=('go' 'git' 'gzip') +conflicts=('caddy-git') +provides=('caddy') +backup=('etc/caddy/Caddyfile') +source=( + caddy-git::"git+https://github.com/caddyserver/caddy#tag=${_gitcommit}" + caddy-dist::"git+https://github.com/caddyserver/dist#commit=${_distcommit}" + forwardproxy::"git+https://github.com/klzgrad/forwardproxy.git" + main.go + caddy.sysusers + caddy.tmpfiles + Caddyfile +) +sha512sums=( + 'SKIP' + 'SKIP' + 'SKIP' + 'aa9fefd87c87e3a120af66fcd745448831b99baab9b795a35544a752147422920d200e4c0ea9d0ceb0880f80e01c351522209fbcfce0d5b7d7cac940565755a3' + 'c893d88fec89e37da6596030c8dce7103e7e575371e8542a24d2a0741e877358d85219f2d8ade9d6aa0f515efe1156a4badd9fef5f65f553a5b0c72330c4728f' + '55ee8d3f8b14f9adddc7a1026addcea4f85b4bae4cd512fd4da2a5e8adaae4b6fd0f486d2e3847f75518f4710a897b4fca84e48ee15700b968bad762125c4742' + '716da3f4edeb3561243aeaf5c32b01ff7a4ac810b6deba8364fb12a1f71b6a5278c34a97b289bcfdc48784679b942bf780f1f36d416a575791168c94b0d59fe0' +) + +pkgver() { + cd "${pkgname}-git" + git describe --tags --match 'v*' | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' +} + +prepare() { + mkdir ${pkgname} + cd ${pkgname} + cp ../main.go . + go mod init caddy + sed -i -e '$a replace github.com/caddyserver/forwardproxy => ../forwardproxy' go.mod + go get github.com/caddyserver/caddy/v2@${_gitcommit} + go mod tidy + + # welcome page + cp ../caddy-dist/welcome/index.html . + sed 's|/var/www/html|/srv/http|g' -i index.html +} + +build() { + cd ${pkgname} + export CGO_LDFLAGS="${LDFLAGS}" + export CGO_CPPFLAGS="${CPPFLAGS}" + export CGO_CFLAGS="${CFLAGS}" + export CGO_CXXFLAGS="${CXXFLAGS}" + export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw" + go build . + + for i in zsh bash fish; do + ./caddy completion $i >caddy.$i + done + + ./caddy manpage --directory manpages + gzip manpages/* +} + +check() { + cd "${pkgname}" + ./caddy version + ./caddy build-info + ./caddy list-modules +} + +package() { + cd "${pkgname}" + install -Dm 755 caddy -t "${pkgdir}/usr/bin" + + install -Dm 644 "${srcdir}/caddy-dist/init/caddy.service" "${srcdir}/caddy-dist/init/caddy-api.service" -t "${pkgdir}/usr/lib/systemd/system" + install -Dm 644 "${srcdir}/caddy.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/caddy.conf" + install -Dm 644 "${srcdir}/caddy.sysusers" "${pkgdir}/usr/lib/sysusers.d/caddy.conf" + + install -Dm 644 "${srcdir}/Caddyfile" -t "${pkgdir}/etc/caddy" + install -d "${pkgdir}/etc/caddy/conf.d" + + install -Dm 644 index.html "${pkgdir}/usr/share/caddy/index.html" + + install -Dm 644 caddy.zsh "${pkgdir}/usr/share/zsh/site-functions/_caddy" + install -Dm 644 caddy.bash "${pkgdir}/usr/share/bash-completion/completions/caddy" + install -Dm 644 caddy.fish -t "${pkgdir}/usr/share/fish/vendor_completions.d" + + install -Dm 644 manpages/* -t "${pkgdir}/usr/share/man/man8" +} + +# vim: ts=2 sw=2 et: diff --git a/repo/caddy/caddy.sysusers b/repo/caddy/caddy.sysusers new file mode 100644 index 0000000..6fb5633 --- /dev/null +++ b/repo/caddy/caddy.sysusers @@ -0,0 +1 @@ +u caddy - "caddy daemon" /var/lib/caddy diff --git a/repo/caddy/caddy.tmpfiles b/repo/caddy/caddy.tmpfiles new file mode 100644 index 0000000..25f170f --- /dev/null +++ b/repo/caddy/caddy.tmpfiles @@ -0,0 +1,3 @@ +d /var/lib/caddy 0750 caddy caddy +d /var/log/caddy 0750 caddy caddy +d /run/caddy 0750 caddy caddy diff --git a/repo/caddy/lilac.yaml b/repo/caddy/lilac.yaml new file mode 100644 index 0000000..80d7ff5 --- /dev/null +++ b/repo/caddy/lilac.yaml @@ -0,0 +1,12 @@ +maintainers: + - github: yingziwu + email: i@bgme.me + +build_prefix: extra-x86_64 + +pre_build: vcs_update + +post_build: git_pkgbuild_commit + +update_on: + - source: vcs diff --git a/repo/caddy/main.go b/repo/caddy/main.go new file mode 100644 index 0000000..6b73a96 --- /dev/null +++ b/repo/caddy/main.go @@ -0,0 +1,52 @@ +// Copyright 2015 Matthew Holt and The Caddy Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package main is the entry point of the Caddy application. +// Most of Caddy's functionality is provided through modules, +// which can be plugged in by adding their import below. +// +// There is no need to modify the Caddy source code to customize your +// builds. You can easily build a custom Caddy with these simple steps: +// +// 1. Copy this file (main.go) into a new folder +// 2. Edit the imports below to include the modules you want plugged in +// 3. Run `go mod init caddy` +// 4. Run `go install` or `go build` - you now have a custom binary! +// +// Or you can use xcaddy which does it all for you as a command: +// https://github.com/caddyserver/xcaddy +package main + +import ( + caddycmd "github.com/caddyserver/caddy/v2/cmd" + + // plug in Caddy modules here + _ "github.com/caddyserver/caddy/v2/modules/standard" + + _ "github.com/caddyserver/forwardproxy" + + _ "github.com/mholt/caddy-ratelimit" + _ "github.com/caddyserver/replace-response" + _ "github.com/silinternational/certmagic-storage-dynamodb/v3" + _ "github.com/abiosoft/caddy-json-schema" + _ "github.com/fvbommel/caddy-combine-ip-ranges" + _ "github.com/fvbommel/caddy-dns-ip-range" + _ "github.com/WeidiDeng/caddy-cloudflare-ip" + _ "github.com/zhangjiayin/caddy-geoip2" + _ "github.com/corazawaf/coraza-caddy" +) + +func main() { + caddycmd.Main() +}