addpkg: 1.0.4-2
This commit is contained in:
		
							
								
								
									
										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)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user