From 6011ce120a4b2df9314a800fc93a61f852b766c1 Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Mon, 4 Nov 2019 12:13:21 -0700 Subject: cmd: Move module imports into standard packages This makes it easier to make "standard" caddy builds, since you'll only need to add a single import to get all of Caddy's standard modules. There is a package for all of Caddy's standard modules (modules/standard) and a package for the HTTP app's standard modules only (modules/caddyhttp/standard). We still need to decide which of these, if not all of them, should be kept in the standard build. Those which aren't should be moved out of this repo. See #2780. --- cmd/caddy/main.go | 39 +++++++++++++---------------------- modules/caddyhttp/standard/imports.go | 21 +++++++++++++++++++ modules/standard/import.go | 14 +++++++++++++ 3 files changed, 49 insertions(+), 25 deletions(-) create mode 100644 modules/caddyhttp/standard/imports.go create mode 100644 modules/standard/import.go diff --git a/cmd/caddy/main.go b/cmd/caddy/main.go index 54220de..2383546 100644 --- a/cmd/caddy/main.go +++ b/cmd/caddy/main.go @@ -12,36 +12,25 @@ // 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! +// package main import ( caddycmd "github.com/caddyserver/caddy/v2/cmd" - // this is where modules get plugged in - _ "github.com/caddyserver/caddy/v2/caddyconfig/caddyfile" - _ "github.com/caddyserver/caddy/v2/caddyconfig/json5" - _ "github.com/caddyserver/caddy/v2/caddyconfig/jsonc" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/caddyauth" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/encode" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/encode/brotli" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/encode/gzip" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/encode/zstd" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/fileserver" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/headers" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/httpcache" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/markdown" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/requestbody" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy/fastcgi" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/rewrite" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/starlarkmw" - _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/templates" - _ "github.com/caddyserver/caddy/v2/modules/caddytls" - _ "github.com/caddyserver/caddy/v2/modules/caddytls/distributedstek" - _ "github.com/caddyserver/caddy/v2/modules/caddytls/standardstek" - _ "github.com/caddyserver/caddy/v2/modules/filestorage" - _ "github.com/caddyserver/caddy/v2/modules/logging" + // plug in Caddy modules here + _ "github.com/caddyserver/caddy/v2/modules/standard" ) func main() { diff --git a/modules/caddyhttp/standard/imports.go b/modules/caddyhttp/standard/imports.go new file mode 100644 index 0000000..0e4e1b8 --- /dev/null +++ b/modules/caddyhttp/standard/imports.go @@ -0,0 +1,21 @@ +package standard + +import ( + // standard Caddy HTTP app modules + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/caddyauth" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/encode" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/encode/brotli" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/encode/gzip" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/encode/zstd" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/fileserver" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/headers" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/httpcache" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/markdown" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/requestbody" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy/fastcgi" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/rewrite" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/starlarkmw" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/templates" +) diff --git a/modules/standard/import.go b/modules/standard/import.go new file mode 100644 index 0000000..5ecfb4a --- /dev/null +++ b/modules/standard/import.go @@ -0,0 +1,14 @@ +package standard + +import ( + // standard Caddy modules + _ "github.com/caddyserver/caddy/v2/caddyconfig/caddyfile" + _ "github.com/caddyserver/caddy/v2/caddyconfig/json5" + _ "github.com/caddyserver/caddy/v2/caddyconfig/jsonc" + _ "github.com/caddyserver/caddy/v2/modules/caddyhttp/standard" + _ "github.com/caddyserver/caddy/v2/modules/caddytls" + _ "github.com/caddyserver/caddy/v2/modules/caddytls/distributedstek" + _ "github.com/caddyserver/caddy/v2/modules/caddytls/standardstek" + _ "github.com/caddyserver/caddy/v2/modules/filestorage" + _ "github.com/caddyserver/caddy/v2/modules/logging" +) -- cgit v1.2.3