From 3d77057bb6e0a1c213c01f64e699bb0ffca778e4 Mon Sep 17 00:00:00 2001 From: "juno-ci[bot]" <216071710+juno-ci[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 14:52:19 +0100 Subject: [PATCH 1/2] 164-add-auto-shutdown-detail-to-docs (#165) * pr commit * Update documentation to setup autoshutdown --------- Co-authored-by: app/github-actions Co-authored-by: ptownley --- docs/assets/autoshutdown.png | Bin 0 -> 40928 bytes docs/assets/shutdown-api.png | Bin 0 -> 3950 bytes docs/assets/shutdown_env.png | Bin 0 -> 9276 bytes docs/deploy-usage.md | 24 ++++++++++++------------ docs/plugins-autoshutdown.md | 27 +++++++++++++++++++++++++++ mkdocs.yml | 2 ++ 6 files changed, 41 insertions(+), 12 deletions(-) create mode 100644 docs/assets/autoshutdown.png create mode 100644 docs/assets/shutdown-api.png create mode 100644 docs/assets/shutdown_env.png create mode 100644 docs/plugins-autoshutdown.md diff --git a/docs/assets/autoshutdown.png b/docs/assets/autoshutdown.png new file mode 100644 index 0000000000000000000000000000000000000000..38025cf83933b735ba163500101d807862a7c8b9 GIT binary patch literal 40928 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 Y4{o03i_n@AfB*mh07*qoM6N<$f)3-x2mk;8 literal 0 HcmV?d00001 diff --git a/docs/assets/shutdown-api.png b/docs/assets/shutdown-api.png new file mode 100644 index 0000000000000000000000000000000000000000..0ffb96a15b198150f667f92159d3cfb084181c7b GIT binary patch literal 3950 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 ke+%~?h5Rp@#bdUs9(T&9a0l%_qVE_OC literal 0 HcmV?d00001 diff --git a/docs/assets/shutdown_env.png b/docs/assets/shutdown_env.png new file mode 100644 index 0000000000000000000000000000000000000000..407514f0599c83cd37b7a9fda48732e874570903 GIT binary patch literal 9276 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 literal 0 HcmV?d00001 diff --git a/docs/deploy-usage.md b/docs/deploy-usage.md index fb21cb6..755a255 100644 --- a/docs/deploy-usage.md +++ b/docs/deploy-usage.md @@ -4,18 +4,18 @@ Environment variables are used to configure the Helios container. The following environment variables are available: -| Name | Value | Required | -|-------------------|--------------------------------------------------------------------------------------------------------------------------------------|----------| -| USER | Name of the user | X | -| UID | POSIX compliant uid for the user | X | -| GID | POSIX compliant gid for the user | | -| PASSWORD | Password set for the user | | -| IDLE_TIME | Trigger the idle hook after x time | | -| DISABLE_VGL | Disable VirtualGL Wrapper around the entire desktop session. You will need to manually run applications that require it via `vglrun` | | -| DESKTOP_FILES | Paths separated by `:`. For example, `/some/path/1/*.desktop:/some/*/2/*.desktop` | | -| PREFIX | Prefix for URL for use behind a reverse proxy | | -| SELKIES_FRAMERATE | Set framerate as a range (e.g., `15-60`) or a fixed value (e.g., `30`) | | -| SUDO | Grant `SUDO` to the user on the container | | +| Name | Value | Required | +|-------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------| +| USER | Name of the user | X | +| UID | POSIX compliant uid for the user | X | +| GID | POSIX compliant gid for the user | | +| PASSWORD | Password set for the user | | +| IDLE_TIME | Trigger the idle hook after x minutes (only required when the [auto shutdown plugin](https://github.com/juno-fx/Terra-Official-Plugins/tree/main/plugins/helios-auto-shutdown) is installed) | | +| DISABLE_VGL | Disable VirtualGL Wrapper around the entire desktop session. You will need to manually run applications that require it via `vglrun` | | +| DESKTOP_FILES | Paths separated by `:`. For example, `/some/path/1/*.desktop:/some/*/2/*.desktop` | | +| PREFIX | Prefix for URL for use behind a reverse proxy | | +| SELKIES_FRAMERATE | Set framerate as a range (e.g., `15-60`) or a fixed value (e.g., `30`) | | +| SUDO | Grant `SUDO` to the user on the container | | When using the Orion Platform, you can configure them in the [Templates](https://juno-fx.github.io/Orion-Documentation/genesis/workstations/) diff --git a/docs/plugins-autoshutdown.md b/docs/plugins-autoshutdown.md new file mode 100644 index 0000000..808a64f --- /dev/null +++ b/docs/plugins-autoshutdown.md @@ -0,0 +1,27 @@ +# Auto shutdown plugin + +Juno supplies an official [Terra](https://juno-fx.github.io/Orion-Documentation/latest/terra/intro/) plugin for automatically shutting down idle workstations after a configurable amount of time. + +## Install the plugin + +The [plugin](https://github.com/juno-fx/Terra-Official-Plugins/tree/main/plugins/helios-auto-shutdown) can be installed from the official Terra repository. The plugin itself requires no configuration other than which project to enable it in. + +![shutdown plugin image](./assets/autoshutdown.png) + +## Setup the workload + +In order for the workstations to shutdown we need to configure two settings on the Helios workload. + +### IDLE_TIME environment variable + +On the Helios workload configuration screen you are given the option to add `env variables`. Add one with the name `IDLE_TIME` configured to the amount of **minutes** you would like to wait before an idle workstation is shutdown. For example set this to `60` to shutdown after an hour. + +![environment setup](./assets/shutdown_env.png) + +### Enable API access within the workstation + +In order for the workstation to be gracefully shutdown we need to allow the workstation to access the shutdown API endpoint. This is handled automatically and securely, all you need to do is set the setting `enableAPI` to `True` in the workload configuration window. + +![enableAPI setting](./assets/shutdown-api.png) + +Thats it! Your idle workstations will now automatically shutdown as per your configured time. \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 704a288..102f080 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -119,6 +119,8 @@ nav: - deploy-k8s.md - Persistence: - deploy-session.md + - Plugins: + - plugins-autoshutdown.md - Building Workstations: - getting-started.md - Customization: From 3947e5be9cf8ba6f56f34e6da049040e9b99042e Mon Sep 17 00:00:00 2001 From: app/github-actions Date: Tue, 12 May 2026 13:56:37 +0000 Subject: [PATCH 2/2] pr commit