diff options
Diffstat (limited to 'meta-phosphor/recipes-core/systemd/obmc-targets')
35 files changed, 253 insertions, 0 deletions
diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-hard-poweroff@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-hard-poweroff@.target new file mode 100644 index 0000000000..48fc441694 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-hard-poweroff@.target @@ -0,0 +1,11 @@ +[Unit] +Description=Chassis%i (Hard Power Off) +Wants={SYSTEMD_DEFAULT_TARGET} +After={SYSTEMD_DEFAULT_TARGET} +Wants=mapper-wait@-xyz-openbmc_project-state-chassis%i.service +After=mapper-wait@-xyz-openbmc_project-state-chassis%i.service +Conflicts=obmc-chassis-poweron@%i.target +Conflicts=obmc-chassis-powerreset@%i.target +Conflicts=obmc-host-shutdown@%i.target +Conflicts=xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-powered-off@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-powered-off@.target new file mode 100644 index 0000000000..84c1ddab1f --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-powered-off@.target @@ -0,0 +1,9 @@ +[Unit] +Description=Chassis%i (Powered Off) +Wants={SYSTEMD_DEFAULT_TARGET} +After={SYSTEMD_DEFAULT_TARGET} +Wants=mapper-wait@-xyz-openbmc_project-state-chassis%i.service +After=mapper-wait@-xyz-openbmc_project-state-chassis%i.service +Conflicts=obmc-chassis-poweron@%i.target +Conflicts=obmc-chassis-powerreset@%i.target +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-poweroff@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-poweroff@.target new file mode 100644 index 0000000000..080d72456b --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-poweroff@.target @@ -0,0 +1,9 @@ +[Unit] +Description=Chassis%i (Power Off) +Wants={SYSTEMD_DEFAULT_TARGET} +After={SYSTEMD_DEFAULT_TARGET} +Wants=mapper-wait@-xyz-openbmc_project-state-chassis%i.service +After=mapper-wait@-xyz-openbmc_project-state-chassis%i.service +Conflicts=obmc-chassis-poweron@%i.target +Conflicts=obmc-chassis-powerreset@%i.target +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-poweron@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-poweron@.target new file mode 100644 index 0000000000..55f6d919b0 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-poweron@.target @@ -0,0 +1,12 @@ +[Unit] +Description=Chassis%i (Power On) +Wants={SYSTEMD_DEFAULT_TARGET} +After={SYSTEMD_DEFAULT_TARGET} +Wants=mapper-wait@-xyz-openbmc_project-state-chassis%i.service +After=mapper-wait@-xyz-openbmc_project-state-chassis%i.service +Wants=mapper-subtree-remove@-xyz-openbmc\x5fproject-software\x3Axyz.openbmc_project.Software.ActivationBlocksTransition.service +After=mapper-subtree-remove@-xyz-openbmc\x5fproject-software\x3Axyz.openbmc_project.Software.ActivationBlocksTransition.service +Conflicts=obmc-chassis-poweroff@%i.target +RefuseManualStop=yes +OnFailure=obmc-chassis-poweroff@%i.target +OnFailureJobMode=flush diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-powerreset@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-powerreset@.target new file mode 100644 index 0000000000..8d7c47e6bc --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-chassis-powerreset@.target @@ -0,0 +1,7 @@ +[Unit] +Description=Chassis%i (Reset Check) +Conflicts=obmc-chassis-poweroff@%i.target +RefuseManualStop=yes + +[Install] +WantedBy={SYSTEMD_DEFAULT_TARGET} diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-control-ready@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-control-ready@.target new file mode 100644 index 0000000000..e041a55080 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-control-ready@.target @@ -0,0 +1,4 @@ +[Unit] +Description=Fan Control Ready +RefuseManualStop=yes +Conflicts=obmc-chassis-powered-off@%i.target diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-control.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-control.target new file mode 100644 index 0000000000..50665db4a8 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-control.target @@ -0,0 +1,4 @@ +[Unit] +Description=Fan Control +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-watchdog-takeover.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-watchdog-takeover.target new file mode 100644 index 0000000000..8034083345 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fan-watchdog-takeover.target @@ -0,0 +1,6 @@ +#The system implementation should start this target when dynamic fan control +#is no longer desired or possible. It should also add units to this target +#that enabled continued operation after dynamic fan control is no longer +#desired or possible. +[Unit] +Description=Fan watchdog takeover target diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fans-ready.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fans-ready.target new file mode 100644 index 0000000000..59e61c626a --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-fans-ready.target @@ -0,0 +1,4 @@ +[Unit] +Description=Fans Ready +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-crash@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-crash@.target new file mode 100644 index 0000000000..ea3798b522 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-crash@.target @@ -0,0 +1,4 @@ +[Unit] +Description=Host instance %i crashed +Conflicts=obmc-chassis-poweroff@%i.target +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-quiesce@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-quiesce@.target new file mode 100644 index 0000000000..4f10419abc --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-quiesce@.target @@ -0,0 +1,6 @@ +[Unit] +Description=Quiesce Target +Wants={SYSTEMD_DEFAULT_TARGET} +After={SYSTEMD_DEFAULT_TARGET} +RefuseManualStop=yes +Conflicts=obmc-chassis-poweroff@%i.target diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reboot@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reboot@.target new file mode 100644 index 0000000000..dc280ea653 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reboot@.target @@ -0,0 +1,10 @@ +[Unit] +Description=Reboot Host%i +Wants={SYSTEMD_DEFAULT_TARGET} +After={SYSTEMD_DEFAULT_TARGET} +Wants=mapper-wait@-org-openbmc-control-chassis%i.service +After=mapper-wait@-org-openbmc-control-chassis%i.service +Conflicts=obmc-host-startmin@%i.target +RefuseManualStop=yes +OnFailure=obmc-chassis-poweroff@%i.target +OnFailureJobMode=flush diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reset-running@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reset-running@.target new file mode 100644 index 0000000000..94bb2b130d --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reset-running@.target @@ -0,0 +1,5 @@ +[Unit] +Description=Host%i running after reset +Conflicts=obmc-host-stop@%i.target +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reset@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reset@.target new file mode 100644 index 0000000000..ca95d843c2 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-reset@.target @@ -0,0 +1,7 @@ +[Unit] +Description=Host%i (Reset Check) +Conflicts=obmc-host-stop@%i.target +RefuseManualStop=yes + +[Install] +WantedBy={SYSTEMD_DEFAULT_TARGET} diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-shutdown@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-shutdown@.target new file mode 100644 index 0000000000..4768a567fa --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-shutdown@.target @@ -0,0 +1,6 @@ +[Unit] +Description=Power%i Host Off +Wants={SYSTEMD_DEFAULT_TARGET} +RefuseManualStop=yes +OnFailure=obmc-chassis-poweroff@%i.target +OnFailureJobMode=flush diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-start-pre@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-start-pre@.target new file mode 100644 index 0000000000..2bc270c146 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-start-pre@.target @@ -0,0 +1,7 @@ +[Unit] +Description=Start Host%i (Pre) +Wants={SYSTEMD_DEFAULT_TARGET} +After={SYSTEMD_DEFAULT_TARGET} +Conflicts=obmc-host-stop@%i.target +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-start@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-start@.target new file mode 100644 index 0000000000..144b633878 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-start@.target @@ -0,0 +1,10 @@ +[Unit] +Description=Start Host%i +Wants={SYSTEMD_DEFAULT_TARGET} +After={SYSTEMD_DEFAULT_TARGET} +Wants=mapper-wait@-org-openbmc-control-chassis%i.service +After=mapper-wait@-org-openbmc-control-chassis%i.service +Conflicts=obmc-host-stop@%i.target +RefuseManualStop=yes +OnFailure=obmc-host-quiesce@%i.target +OnFailureJobMode=flush diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-started@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-started@.target new file mode 100644 index 0000000000..eb0a9383be --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-started@.target @@ -0,0 +1,7 @@ +[Unit] +Description=Host%i (Started) +Wants={SYSTEMD_DEFAULT_TARGET} +After=obmc-host-starting@%i.target +Conflicts=obmc-host-stop@%i.target +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-starting@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-starting@.target new file mode 100644 index 0000000000..408139dd43 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-starting@.target @@ -0,0 +1,7 @@ +[Unit] +Description=Host%i (Starting) +Wants={SYSTEMD_DEFAULT_TARGET} +After=obmc-host-start-pre@%i.target +Conflicts=obmc-host-stop@%i.target +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-startmin@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-startmin@.target new file mode 100644 index 0000000000..6e924adcd7 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-startmin@.target @@ -0,0 +1,10 @@ +[Unit] +Description=Start Host%i Minimum +Wants={SYSTEMD_DEFAULT_TARGET} +After={SYSTEMD_DEFAULT_TARGET} +Wants=mapper-wait@-org-openbmc-control-chassis%i.service +After=mapper-wait@-org-openbmc-control-chassis%i.service +Conflicts=obmc-host-stop@%i.target +RefuseManualStop=yes +OnFailure=obmc-host-quiesce@%i.target +OnFailureJobMode=flush diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stop-pre@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stop-pre@.target new file mode 100644 index 0000000000..e88d3ea587 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stop-pre@.target @@ -0,0 +1,8 @@ +[Unit] +Description=Stop Host%i (Pre) +Wants={SYSTEMD_DEFAULT_TARGET} +After={SYSTEMD_DEFAULT_TARGET} +Before=obmc-host-stopping@%i.target +Conflicts=obmc-host-startmin@%i.target +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stop@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stop@.target new file mode 100644 index 0000000000..8e99bccdb9 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stop@.target @@ -0,0 +1,11 @@ +[Unit] +Description=Stop Host%i +Wants={SYSTEMD_DEFAULT_TARGET} +After={SYSTEMD_DEFAULT_TARGET} +Wants=mapper-wait@-org-openbmc-control-chassis%i.service +After=mapper-wait@-org-openbmc-control-chassis%i.service +After=obmc-chassis-poweroff@%i.target +Conflicts=obmc-host-startmin@%i.target +RefuseManualStop=yes +OnFailure=obmc-chassis-poweroff@%i.target +OnFailureJobMode=flush diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stopped@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stopped@.target new file mode 100644 index 0000000000..74039fc25c --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stopped@.target @@ -0,0 +1,9 @@ +[Unit] +Description=Host%i (Stopped) +Wants={SYSTEMD_DEFAULT_TARGET} +Wants=obmc-host-stopping@%i.target +After=obmc-host-stopping@%i.target +Before=obmc-power-stop-pre@%i.target +Conflicts=obmc-host-startmin@%i.target +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stopping@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stopping@.target new file mode 100644 index 0000000000..f087dea723 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-stopping@.target @@ -0,0 +1,10 @@ +[Unit] +Description=Host%i (Stopping) +Wants={SYSTEMD_DEFAULT_TARGET} +Wants=obmc-host-stop-pre@%i.target +After=obmc-host-stop-pre@%i.target +Before=obmc-host-stopped@%i.target +Conflicts=obmc-host-startmin@%i.target +Conflicts=obmc-host-starting@%i.target +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-timeout@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-timeout@.target new file mode 100644 index 0000000000..b87507bf10 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-host-timeout@.target @@ -0,0 +1,4 @@ +[Unit] +Description=Host instance %i timed out refreshing Watchdog +Conflicts=obmc-chassis-poweroff@%i.target +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-mapper.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-mapper.target new file mode 100644 index 0000000000..5e52f4cd53 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-mapper.target @@ -0,0 +1,4 @@ +[Unit] +Description=Phosphor Object Mapper +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-off@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-off@.target new file mode 100644 index 0000000000..c47b21e477 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-off@.target @@ -0,0 +1,7 @@ +[Unit] +Description=Power%i (Off) +Wants={SYSTEMD_DEFAULT_TARGET} +After=obmc-power-stop@%i.target +Conflicts=obmc-chassis-poweron@%i.target +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-on@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-on@.target new file mode 100644 index 0000000000..52135ffc9c --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-on@.target @@ -0,0 +1,7 @@ +[Unit] +Description=Power%i (On) +Wants={SYSTEMD_DEFAULT_TARGET} +After=obmc-power-start@%i.target +Conflicts=obmc-chassis-poweroff@%i.target +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-reset-on@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-reset-on@.target new file mode 100644 index 0000000000..d24d401bfa --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-reset-on@.target @@ -0,0 +1,5 @@ +[Unit] +Description=Chassis%i power on after reset +Conflicts=obmc-chassis-poweroff@%i.target +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-start-pre@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-start-pre@.target new file mode 100644 index 0000000000..1a1ea63191 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-start-pre@.target @@ -0,0 +1,7 @@ +[Unit] +Description=Power%i On (Pre) +Wants={SYSTEMD_DEFAULT_TARGET} +After={SYSTEMD_DEFAULT_TARGET} +Conflicts=obmc-chassis-poweroff@%i.target +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-start@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-start@.target new file mode 100644 index 0000000000..a977d5ad3c --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-start@.target @@ -0,0 +1,7 @@ +[Unit] +Description=Power%i On +After=obmc-power-start-pre@%i.target +Wants={SYSTEMD_DEFAULT_TARGET} +Conflicts=obmc-chassis-poweroff@%i.target +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-stop-pre@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-stop-pre@.target new file mode 100644 index 0000000000..50d5050bb5 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-stop-pre@.target @@ -0,0 +1,9 @@ +[Unit] +Description=Power%i Off (Pre) +Wants={SYSTEMD_DEFAULT_TARGET} +After={SYSTEMD_DEFAULT_TARGET} +Wants=obmc-host-stopped@%i.target +After=obmc-host-stopped@%i.target +Conflicts=obmc-chassis-poweron@%i.target +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-stop@.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-stop@.target new file mode 100644 index 0000000000..f0429d7865 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-power-stop@.target @@ -0,0 +1,9 @@ +[Unit] +Description=Power%i Off +Wants=obmc-power-stop-pre@%i.target +After=obmc-power-stop-pre@%i.target +Wants={SYSTEMD_DEFAULT_TARGET} +Conflicts=obmc-chassis-poweron@%i.target +Conflicts=fsi-disable.service +RefuseManualStart=yes +RefuseManualStop=yes diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-standby.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-standby.target new file mode 100644 index 0000000000..95044a4044 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-standby.target @@ -0,0 +1,9 @@ +[Unit] +Description=Phosphor System - Standby +Requires=multi-user.target +RefuseManualStart=yes +RefuseManualStop=yes +AllowIsolate=yes + +[Install] +WantedBy=multi-user.target diff --git a/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-webserver-pre.target b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-webserver-pre.target new file mode 100644 index 0000000000..ea5200c006 --- /dev/null +++ b/meta-phosphor/recipes-core/systemd/obmc-targets/obmc-webserver-pre.target @@ -0,0 +1,2 @@ +[Unit] +Description=Webserver (pre) |