addpkg: 1.0.4-2
This commit is contained in:
commit
d6ea4a6fea
6
Caddyfile
Normal file
6
Caddyfile
Normal file
@ -0,0 +1,6 @@
|
||||
*:80 {
|
||||
gzip
|
||||
root /usr/share/caddy
|
||||
}
|
||||
|
||||
import conf.d/*.conf
|
150
PKGBUILD
Normal file
150
PKGBUILD
Normal file
@ -0,0 +1,150 @@
|
||||
# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
|
||||
# Contributor: Wei Congrui < crvv.mail at gmail dot com >
|
||||
# Contributor: Carl George < arch at cgtx dot us >
|
||||
# Contributor: Eric Engeström <eric at engestrom dot ch>
|
||||
# Contributor: Andreas Linz <klingt.net at gmail dot com>
|
||||
# Contributor: Akshay S Dinesh <asdofindia at gmail dot com>
|
||||
|
||||
pkgname=caddy
|
||||
pkgver=1.0.4
|
||||
_gitcommit=aadda6e34e5b85b04670ecf3bb096dead3da61fc
|
||||
_distcommit=9e93bfd85c97d71ab842a4a4b555d358295c914e
|
||||
pkgrel=2
|
||||
pkgdesc='HTTP/2 Web Server with Automatic HTTPS'
|
||||
url='https://caddyserver.com'
|
||||
arch=('x86_64')
|
||||
license=('Apache')
|
||||
depends=('glibc')
|
||||
makedepends=('go-pie' 'git')
|
||||
backup=('etc/caddy/caddy.conf')
|
||||
source=("git+https://github.com/caddyserver/caddy#commit=${_gitcommit}?signed"
|
||||
caddy-${_distcommit}-index.html::https://raw.githubusercontent.com/caddyserver/dist/${_distcommit}/welcome/index.html
|
||||
caddy.service
|
||||
caddy.tmpfiles
|
||||
Caddyfile
|
||||
plugins.go)
|
||||
sha256sums=('SKIP'
|
||||
'7668022a48b0cbf459190f0bbfbfb32ae066449a95e006367cac9e1befa80c5f'
|
||||
'c14ac8681e0434caf2c68e4a18dc59f8796fdffe9039f2e3c799ca64d37aa1ea'
|
||||
'c8f002f5ba59985a643600dc3c871e18e110903aa945ef3f2da7c9edd39fbd7a'
|
||||
'fb998b6de7bfe58f65c62eab37a4885e70833d19902da089766ad627a5f5a305'
|
||||
'f5a0fbb961e7c9ecf99e88d0959a3164cbea54660c1c08c3ba3cdf1d45563929')
|
||||
validpgpkeys=(
|
||||
29D0817A67156E4F25DC24782A349DD577D586A5 # Matthew Holt <mholt@users.noreply.github.com>
|
||||
)
|
||||
|
||||
pkgver() {
|
||||
cd ${pkgname}
|
||||
git describe --tags --match 'v*' | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
|
||||
}
|
||||
|
||||
prepare() {
|
||||
cd ${pkgname}/caddy
|
||||
sed 's|/var/www/html|/srv/http|g' -i "${srcdir}/caddy-${_distcommit}-index.html"
|
||||
sed 's|Version: "unknown"|Version: "v'${pkgver}'"|' -i caddymain/run.go
|
||||
|
||||
cat > main.go <<EOF
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/caddyserver/caddy/caddy/caddymain"
|
||||
EOF
|
||||
if [ ${#_plugins[@]} -gt 0 ]; then
|
||||
echo "enabled plugins: ${_plugins[*]}"
|
||||
go run "${srcdir}/plugins.go" "${_plugins[@]}" >> main.go
|
||||
fi
|
||||
cat >> main.go <<EOF
|
||||
)
|
||||
|
||||
func main() {
|
||||
caddymain.EnableTelemetry = false
|
||||
caddymain.Run()
|
||||
}
|
||||
EOF
|
||||
}
|
||||
|
||||
build() {
|
||||
cd ${pkgname}/caddy
|
||||
go build -v \
|
||||
-trimpath \
|
||||
-ldflags "-extldflags ${LDFLAGS}" \
|
||||
.
|
||||
}
|
||||
|
||||
package() {
|
||||
cd ${pkgname}/caddy
|
||||
install -Dm 755 caddy -t "${pkgdir}/usr/bin"
|
||||
install -Dm 644 "${srcdir}/caddy.service" -t "${pkgdir}/usr/lib/systemd/system"
|
||||
install -Dm 644 "${srcdir}/caddy.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/caddy.conf"
|
||||
install -Dm 644 "${srcdir}/Caddyfile" "${pkgdir}/etc/caddy/caddy.conf"
|
||||
install -Dm 644 "${srcdir}/caddy-${_distcommit}-index.html" "${pkgdir}/usr/share/caddy/index.html"
|
||||
install -d "${pkgdir}/etc/caddy/conf.d"
|
||||
}
|
||||
|
||||
_plugins=(
|
||||
# 'dns'
|
||||
# 'docker'
|
||||
# 'dyndns'
|
||||
# 'hook.service'
|
||||
# 'http.authz'
|
||||
# 'http.awses'
|
||||
# 'http.awslambda'
|
||||
# 'http.cache'
|
||||
# 'http.cgi'
|
||||
# 'http.cors'
|
||||
# 'http.datadog'
|
||||
# 'http.expires'
|
||||
# 'http.filter'
|
||||
# 'http.forwardproxy'
|
||||
# 'http.geoip'
|
||||
# 'http.git'
|
||||
# 'http.gopkg'
|
||||
# 'http.grpc'
|
||||
# 'http.ipfilter'
|
||||
# 'http.jwt'
|
||||
# 'http.locale'
|
||||
# 'http.login'
|
||||
# 'http.mailout'
|
||||
# 'http.minify'
|
||||
# 'http.nobots'
|
||||
# 'http.prometheus'
|
||||
# 'http.proxyprotocol'
|
||||
# 'http.ratelimit'
|
||||
# 'http.realip'
|
||||
# 'http.reauth'
|
||||
# 'http.restic'
|
||||
# 'http.s3browser'
|
||||
# 'http.supervisor'
|
||||
# 'http.webdav'
|
||||
# 'net'
|
||||
# 'supervisor'
|
||||
# 'tls.dns.auroradns'
|
||||
# 'tls.dns.azure'
|
||||
# 'tls.dns.cloudflare'
|
||||
# 'tls.dns.cloudxns'
|
||||
# 'tls.dns.digitalocean'
|
||||
# 'tls.dns.dnsimple'
|
||||
# 'tls.dns.dnsmadeeasy'
|
||||
# 'tls.dns.dnspod'
|
||||
# 'tls.dns.duckdns'
|
||||
# 'tls.dns.dyn'
|
||||
# 'tls.dns.exoscale'
|
||||
# 'tls.dns.gandi'
|
||||
# 'tls.dns.gandiv5'
|
||||
# 'tls.dns.godaddy'
|
||||
# 'tls.dns.googlecloud'
|
||||
# 'tls.dns.lightsail'
|
||||
# 'tls.dns.linode'
|
||||
# 'tls.dns.namecheap'
|
||||
# 'tls.dns.namedotcom'
|
||||
# 'tls.dns.ns1'
|
||||
# 'tls.dns.otc'
|
||||
# 'tls.dns.ovh'
|
||||
# 'tls.dns.powerdns'
|
||||
# 'tls.dns.rackspace'
|
||||
# 'tls.dns.rfc2136'
|
||||
# 'tls.dns.route53'
|
||||
# 'tls.dns.vultr'
|
||||
)
|
||||
|
||||
# vim: ts=2 sw=2 et:
|
44
caddy.service
Normal file
44
caddy.service
Normal file
@ -0,0 +1,44 @@
|
||||
[Unit]
|
||||
Description=Caddy HTTP/2 web server
|
||||
Documentation=https://caddyserver.com/docs
|
||||
After=network-online.target
|
||||
Wants=network-online.target systemd-networkd-wait-online.service
|
||||
StartLimitIntervalSec=14400
|
||||
StartLimitBurst=10
|
||||
|
||||
[Service]
|
||||
User=http
|
||||
Group=http
|
||||
Environment=CADDYPATH=/var/lib/caddy
|
||||
EnvironmentFile=-/etc/caddy/envfile
|
||||
ExecStart=/usr/bin/caddy -log stdout -agree -conf /etc/caddy/caddy.conf -root=/usr/share/caddy
|
||||
ExecReload=/usr/bin/kill -USR1 $MAINPID
|
||||
|
||||
# Do not allow the process to be restarted in a tight loop. If the
|
||||
# process fails to start, something critical needs to be fixed.
|
||||
Restart=on-abnormal
|
||||
|
||||
# Use graceful shutdown with a reasonable timeout
|
||||
KillMode=mixed
|
||||
KillSignal=SIGQUIT
|
||||
TimeoutStopSec=5s
|
||||
|
||||
LimitNOFILE=1048576
|
||||
LimitNPROC=512
|
||||
|
||||
# Hardening options
|
||||
PrivateTmp=true
|
||||
PrivateDevices=true
|
||||
ProtectHome=true
|
||||
ProtectSystem=strict
|
||||
ReadWritePaths=/var/lib/caddy /var/log/caddy
|
||||
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||
NoNewPrivileges=true
|
||||
ProtectKernelTunables=true
|
||||
ProtectKernelModules=true
|
||||
ProtectControlGroups=true
|
||||
LockPersonality=true
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
2
caddy.tmpfiles
Normal file
2
caddy.tmpfiles
Normal file
@ -0,0 +1,2 @@
|
||||
d /var/lib/caddy 0750 http http
|
||||
d /var/log/caddy 0750 http http
|
61
plugins.go
Normal file
61
plugins.go
Normal file
@ -0,0 +1,61 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"sort"
|
||||
)
|
||||
|
||||
const URL = "https://caddyserver.com/api/download-page"
|
||||
|
||||
type Plugin struct {
|
||||
Name string
|
||||
ImportPath string
|
||||
}
|
||||
type PluginList struct {
|
||||
Plugins []Plugin `json:"plugins"`
|
||||
}
|
||||
|
||||
func getPlugins() []Plugin {
|
||||
resp, err := http.Get(URL)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
list := PluginList{}
|
||||
err = json.Unmarshal(body, &list)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
return list.Plugins
|
||||
}
|
||||
func main() {
|
||||
plugins := getPlugins()
|
||||
sort.Slice(plugins, func(i, j int) bool {
|
||||
return plugins[i].Name < plugins[j].Name
|
||||
})
|
||||
if len(os.Args) == 1 {
|
||||
fmt.Println("plugins=(")
|
||||
for _, plugin := range plugins {
|
||||
fmt.Printf("# '%s'\n", plugin.Name)
|
||||
}
|
||||
fmt.Println(")")
|
||||
return
|
||||
}
|
||||
pluginsMap := make(map[string]string)
|
||||
for _, plugin := range plugins {
|
||||
pluginsMap[plugin.Name] = plugin.ImportPath
|
||||
}
|
||||
for _, name := range os.Args[1:] {
|
||||
path, ok := pluginsMap[name]
|
||||
if !ok {
|
||||
log.Fatalf("cannot find plugin %s\n", name)
|
||||
}
|
||||
fmt.Printf(`_ "%s"`+"\n", path)
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user