From f09eb4db946c62338cbd6c4f274cbd1d0a2618ed Mon Sep 17 00:00:00 2001 From: Jonathan Dahan Date: Sun, 24 Sep 2023 15:11:06 -0400 Subject: [PATCH] Web serving and authoring works! --- .gitignore | 4 ++++ all.do | 1 + data/readme | 1 + readme | 23 +++++++++++++++++++++++ secrets/readme | 1 + services/caddy/.gitignore | 3 +++ services/caddy/caddy.do | 4 ++++ services/caddy/readme | 4 ++++ services/caddy/xcaddy.do | 17 +++++++++++++++++ services/web/Caddyfile | 11 +++++++++++ services/web/run.do | 7 +++++++ 11 files changed, 76 insertions(+) create mode 100644 .gitignore create mode 100644 all.do create mode 100644 data/readme create mode 100644 readme create mode 100644 secrets/readme create mode 100644 services/caddy/.gitignore create mode 100644 services/caddy/caddy.do create mode 100644 services/caddy/readme create mode 100644 services/caddy/xcaddy.do create mode 100644 services/web/Caddyfile create mode 100755 services/web/run.do diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..853958a --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +secrets/ +data/ +.redo +*.tmp diff --git a/all.do b/all.do new file mode 100644 index 0000000..2221077 --- /dev/null +++ b/all.do @@ -0,0 +1 @@ +redo services/web/run diff --git a/data/readme b/data/readme new file mode 100644 index 0000000..14a5ecf --- /dev/null +++ b/data/readme @@ -0,0 +1 @@ +# backup this entire folder diff --git a/readme b/readme new file mode 100644 index 0000000..beb0f6d --- /dev/null +++ b/readme @@ -0,0 +1,23 @@ +# community services for woodbine.nyc + +Install [redo](https://redo.readthedocs.io) + + sudo apt install --yes redo || brew install redo + +Build the services you want + + redo services/caddy + +## beta release + +- [*] caddy with landing page of this readme +- [ ] backup +- [ ] zitadel sso +- [ ] bookstack wiki +- [ ] caddy webdav for personal home pages +- [ ] dendrite matrix server +- [ ] gitea instance + +## credits + +thank you hackerspace.zone diff --git a/secrets/readme b/secrets/readme new file mode 100644 index 0000000..6c51d11 --- /dev/null +++ b/secrets/readme @@ -0,0 +1 @@ +Do not check in anything in this directory diff --git a/services/caddy/.gitignore b/services/caddy/.gitignore new file mode 100644 index 0000000..f7dcae4 --- /dev/null +++ b/services/caddy/.gitignore @@ -0,0 +1,3 @@ +caddy +xcaddy +.latest_download diff --git a/services/caddy/caddy.do b/services/caddy/caddy.do new file mode 100644 index 0000000..05e02f7 --- /dev/null +++ b/services/caddy/caddy.do @@ -0,0 +1,4 @@ +redo-ifchange xcaddy + +./xcaddy build --output $3 \ + --with github.com/mholt/caddy-webdav diff --git a/services/caddy/readme b/services/caddy/readme new file mode 100644 index 0000000..57d8ec4 --- /dev/null +++ b/services/caddy/readme @@ -0,0 +1,4 @@ +caddy is our web server + +- it handles SSL certificates for each subdomain +- it handles redirecting from a subdomain to an internal service diff --git a/services/caddy/xcaddy.do b/services/caddy/xcaddy.do new file mode 100644 index 0000000..de3d2e5 --- /dev/null +++ b/services/caddy/xcaddy.do @@ -0,0 +1,17 @@ +ARCH=arm64 +OS=mac + +# get the latest version +curl --silent https://api.github.com/repos/caddyserver/xcaddy/releases/latest \ + | grep browser_download_url \ + | cut -d : -f 2,3 \ + | tr -d \" \ + | grep $ARCH \ + | grep $OS \ + > .latest_download + +redo-ifchange .latest_download +curl --location --silent $(cat .latest_download) \ + | tar xf - -O xcaddy > $3 + +chmod +x $3 \ No newline at end of file diff --git a/services/web/Caddyfile b/services/web/Caddyfile new file mode 100644 index 0000000..d81792e --- /dev/null +++ b/services/web/Caddyfile @@ -0,0 +1,11 @@ +localhost + +root * ../../data/web + +route { + rewrite /dav /dav/ + webdav /dav/* { + prefix /dav + } + file_server +} diff --git a/services/web/run.do b/services/web/run.do new file mode 100755 index 0000000..28503b5 --- /dev/null +++ b/services/web/run.do @@ -0,0 +1,7 @@ +DIRNAME="$(dirname $0)" +cd "$DIRNAME" + +redo-ifchange ../caddy/caddy +touch $3 + +../caddy/caddy run