summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Holt <mholt@users.noreply.github.com>2019-11-04 12:13:21 -0700
committerMatthew Holt <mholt@users.noreply.github.com>2019-11-04 12:13:21 -0700
commit6011ce120a4b2df9314a800fc93a61f852b766c1 (patch)
tree9618ae2d2196fb07fff6d0a8bc3b6ea49b03190d
parent27e288ab19a3a4d9243a8871d5b3c6426478e008 (diff)
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.
-rw-r--r--cmd/caddy/main.go39
-rw-r--r--modules/caddyhttp/standard/imports.go21
-rw-r--r--modules/standard/import.go14
3 files changed, 49 insertions, 25 deletions
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"
+)