diff options
| author | Robert Günzler <r@gnzler.io> | 2025-09-07 17:32:13 +0200 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2025-09-07 17:42:42 +0200 |
| commit | 38be6c13f76e893cf47636257071b440dec0c5b2 (patch) | |
| tree | f7ded3235a7e3362cbd1ed3d91523968fe0faf90 /bundles/www | |
initial commit
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to 'bundles/www')
11 files changed, 96 insertions, 0 deletions
diff --git a/bundles/www/files/etc/s6-rc/templates/www/+service-log/consumer-for b/bundles/www/files/etc/s6-rc/templates/www/+service-log/consumer-for new file mode 100644 index 0000000..83c1762 --- /dev/null +++ b/bundles/www/files/etc/s6-rc/templates/www/+service-log/consumer-for @@ -0,0 +1 @@ ++service-srv diff --git a/bundles/www/files/etc/s6-rc/templates/www/+service-log/notification-fd b/bundles/www/files/etc/s6-rc/templates/www/+service-log/notification-fd new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/bundles/www/files/etc/s6-rc/templates/www/+service-log/notification-fd @@ -0,0 +1 @@ +3 diff --git a/bundles/www/files/etc/s6-rc/templates/www/+service-log/pipeline-name b/bundles/www/files/etc/s6-rc/templates/www/+service-log/pipeline-name new file mode 100644 index 0000000..0db7d83 --- /dev/null +++ b/bundles/www/files/etc/s6-rc/templates/www/+service-log/pipeline-name @@ -0,0 +1 @@ ++service diff --git a/bundles/www/files/etc/s6-rc/templates/www/+service-log/run b/bundles/www/files/etc/s6-rc/templates/www/+service-log/run new file mode 100644 index 0000000..d558f3c --- /dev/null +++ b/bundles/www/files/etc/s6-rc/templates/www/+service-log/run @@ -0,0 +1,10 @@ +#!/bin/execlineb -P + +envfile -I /etc/s6-rc/system.conf +importas -sCuD "/run/log" s6_log_dir s6_log_dir + +envfile -I /etc/s6-rc/+service.conf +importas -sCuD "n3 s2000000 T" s6_log_directives s6_log_directives + +foreground { install -d ${s6_log_dir}/+service } +exec -c s6-log -d3 -b -- ${s6_log_directives} ${s6_log_dir}/+service diff --git a/bundles/www/files/etc/s6-rc/templates/www/+service-log/type b/bundles/www/files/etc/s6-rc/templates/www/+service-log/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/bundles/www/files/etc/s6-rc/templates/www/+service-log/type @@ -0,0 +1 @@ +longrun diff --git a/bundles/www/files/etc/s6-rc/templates/www/+service-srv/notification-fd b/bundles/www/files/etc/s6-rc/templates/www/+service-srv/notification-fd new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/bundles/www/files/etc/s6-rc/templates/www/+service-srv/notification-fd @@ -0,0 +1 @@ +3 diff --git a/bundles/www/files/etc/s6-rc/templates/www/+service-srv/producer-for b/bundles/www/files/etc/s6-rc/templates/www/+service-srv/producer-for new file mode 100644 index 0000000..cba6eea --- /dev/null +++ b/bundles/www/files/etc/s6-rc/templates/www/+service-srv/producer-for @@ -0,0 +1 @@ ++service-log diff --git a/bundles/www/files/etc/s6-rc/templates/www/+service-srv/run b/bundles/www/files/etc/s6-rc/templates/www/+service-srv/run new file mode 100755 index 0000000..677d7e1 --- /dev/null +++ b/bundles/www/files/etc/s6-rc/templates/www/+service-srv/run @@ -0,0 +1,31 @@ +#!/bin/execlineb -P + +# load location of deployments from system config +envfile /etc/s6-rc/system.conf +importas -iu www_dir www_dir + +# load port from service config +envfile /etc/s6-rc/+service.conf +importas -iu www_port www_port + +# route all logs to stdout +fdmove -c 2 1 + +ifthenelse -s { eltest -e ${www_dir}/+service/Caddyfile } +{ + define caddyfile ${www_dir}/+service/Caddyfile +} +{ + define caddyfile /etc/caddy/www.conf +} + +# check that port env var is actually used +if -X { grep -q CADDY_HTTP_PORT ${caddyfile} } +export CADDY_HTTP_PORT ${www_port} + +cd ${www_dir}/+service + +exec caddy run --watch \ + --pidfile=/dev/fd/3 \ + --adapter=caddyfile \ + --config=${caddyfile} diff --git a/bundles/www/files/etc/s6-rc/templates/www/+service-srv/type b/bundles/www/files/etc/s6-rc/templates/www/+service-srv/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/bundles/www/files/etc/s6-rc/templates/www/+service-srv/type @@ -0,0 +1 @@ +longrun diff --git a/bundles/www/items.py b/bundles/www/items.py new file mode 100644 index 0000000..7805991 --- /dev/null +++ b/bundles/www/items.py @@ -0,0 +1,40 @@ +if node.os != "alpine": + raise BundleError(f"{node.name}: OS {node.os} is not supported.") + +from os.path import join + +files = { + "/etc/s6-rc/templates/www/+service-srv/run": { "mode": "0755" }, + "/etc/s6-rc/templates/www/+service-log/run": { "mode": "0755" }, + "/etc/s6-rc/services/default/contents.d/www": { + "content_type": "text", + "content": "", + "triggers": { + "svc_openrc:s6-rc-init:reload", + "svc_openrc:s6-rc-up:restart", + }, + }, + "/etc/s6-rc/services/www/type": { + "content_type": "text", + "content": "bundle", + "triggers": { + "svc_openrc:s6-rc-init:reload", + "svc_openrc:s6-rc-up:restart", + }, + }, +} + +repo.libs.gen.add_files_recursive( + files, + join(repo.path, "bundles", "www", "files"), +) + +directories = { + "/etc/s6-rc/services/www/contents.d": {} +} + +for www, _ in node.metadata.get("www", {}).items(): + svc_s6rc[www] = { + "bundle": "www", + "generate": "www", + } diff --git a/bundles/www/metadata.py b/bundles/www/metadata.py new file mode 100644 index 0000000..1d5700a --- /dev/null +++ b/bundles/www/metadata.py @@ -0,0 +1,8 @@ +defaults = { + "apk": { + "packages": { + "caddy": {}, + "rsync": {}, # used to sync up changes + }, + }, +} |