[PR #740] [MERGED] 1.19.1 #770

Closed
opened 2025-10-31 15:21:21 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/moghtech/komodo/pull/740
Author: @mbecker20
Created: 8/18/2025
Status: Merged
Merged: 8/24/2025
Merged by: @mbecker20

Base: mainHead: 1.19.1


📝 Commits (10+)

  • bcbe75c start 1.19.1
  • 0c30229 deploy 1.19.1-dev-1
  • b7dab13 Global Auto Update rustdoc
  • 6ee7a29 support stack additional files
  • 420c9c0 deploy 1.19.1-dev-2
  • 4fe84c1 Fe support additional file language detection
  • 8b1a323 fix tsc
  • 5bbd551 Fix: Example code blocks got interpreted as rust code, leading to compilation errors (#743)
  • 38857cb Enhanced Server Stats Dashboard with Performance Optimizations (#746)
  • 829e8f3 gen types

📊 Changes

99 files changed (+4637 additions, -1674 deletions)

View changed files

📝 Cargo.lock (+241 -231)
📝 Cargo.toml (+10 -9)
📝 bin/cli/src/command/container.rs (+1 -1)
📝 bin/cli/src/command/execute.rs (+14 -0)
📝 bin/cli/src/command/list.rs (+1 -1)
📝 bin/cli/src/command/mod.rs (+1 -1)
📝 bin/core/src/alert/discord.rs (+32 -0)
📝 bin/core/src/alert/mod.rs (+239 -3)
📝 bin/core/src/alert/ntfy.rs (+1 -199)
📝 bin/core/src/alert/pushover.rs (+1 -199)
📝 bin/core/src/alert/slack.rs (+35 -0)
📝 bin/core/src/api/execute/alerter.rs (+79 -3)
📝 bin/core/src/api/execute/build.rs (+47 -29)
📝 bin/core/src/api/execute/deployment.rs (+31 -14)
📝 bin/core/src/api/execute/mod.rs (+13 -2)
📝 bin/core/src/api/execute/stack.rs (+456 -37)
📝 bin/core/src/api/read/server.rs (+13 -1)
📝 bin/core/src/api/write/stack.rs (+9 -1)
📝 bin/core/src/helpers/procedure.rs (+34 -0)
📝 bin/core/src/helpers/update.rs (+10 -0)

...and 79 more files

📄 Description

Changelog

🚨 In order to use config_files, Periphery should also be updated to v1.19.1
️In addition to ghcr.io, images are now also being published to moghtech/komodo-* (Docker Hub)

Stack config_files 🦎

One of the most common requests was to allow in UI editing of .env files on server / in repo. But really, there's not much difference between .env files and any config file which a Stack may be dependent on.

This release adds the ability to configure all config files Stacks depend on, such as json / yaml app config files, and edit the files from the Komodo UI. Just add the relative path to the files (from the Run Directory) to the Stack "Config Files".

Users which are already using "Additional Env File" feature will find, with no change, that they can now see / edit all their additional env files from the UI. The only difference is that "Additional Env Files" will also be included in the docker compose up command (with --env-file flag), while "Config Files" will not.

The UI editors support syntax highlighting for a couple of common formats, such as toml, yaml, json, ini, and shell / .env. It will be challenging to add support for all the various formats used, so I won't personally accept requests to add more. The support is set up for extension though, please raise a PR adding support for additional syntax highlighting you would like and I am happy to review and merge it.

Screenshot 2025-08-22 at 1 28 34 AM

Deploy Stack If Changed 🦎

The biggest issue with Deploy Stack If Changed up to v1.19.1 was that it would only Redeploy if one of the compose files changed. If the commit is only to config file, these changes would be missed.

Now in v1.19.1, "Config Files" and "Additional Env Files" will also be tracked and diffed for changes. This means changes made only to a config / additional env file can also trigger deploy using Deploy Stack If Changed.

Any change made to a compose file or additional env file will always lead to a full Redeploy. However users are able to configure what kind of behavior diffs to config files leads to, either globally for the Stack or at the service level. For example, you can set diffs in a config file to only restart a specific service or services.

Screenshot 2025-08-23 at 12 41 58 PM

Action Example 🦎

If you configure Stacks with all dependent additional_files, you can create an Action like this:

const { REPO } = ARGS as { REPO: string };

if (!REPO) {
  throw "Must pass REPO arg with linked repo name";
}

const repo_id = (
  await komodo.read("ListRepos", { query: { names: [REPO] } })
)[0].id;
const stacks = (
  await komodo.read("ListStacks", {
    query: { specific: { linked_repos: [repo_id] } },
  })
)
  .filter((s) => s.info.state === Types.StackState.Running)
  .map((s) => s.name)
  .join("\n");

console.log("Deploying if changed:\n");
console.log(stacks);
console.log();

await komodo.execute("BatchDeployStackIfChanged", { pattern: stacks });

It is re-usable in multiple Procedures, which can wrap the Action an hardcode the actual Repo.
You then setup webhooks for the Procedure on push, or can schedule the Procedure to run at polling intervals.

Community Contributions 🦎

This last week saw a ton of end-to-end feature development in community contributions, and I wanted to highlight them here:

  • Stack: New execute API -- RunStackService -- in #732 by @bpbradley
  • Server: Now includes Core - Periphery version mismatch alerts to highlight this issue for Users. #748 by @MP-Tool
  • Server: Track and view system load averages both real-time and historically. #761 by @jackra1n
  • Server: New monitoring focused server table toggle. #761 by @jackra1n
  • UI: Enhance server stats dashboard in #746 by @MP-Tool
  • UI: Enhance confirm menus accepting "Enter" to confirm in #750 by @MP-Tool
  • Improve rustdocs in #743 by @MP-Tool

Resource

  • Build: Push images to Multiple registries / organizations
    • Using this to now publish images to moghtech/komodo-* (docker.io)
  • Action / Procedure: You can now configure static Action Args using the Procedure Config UI

Misc

  • New execute API -- SendAlert
    • Broadcast custom alert messages from within Actions / Procedures

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/moghtech/komodo/pull/740 **Author:** [@mbecker20](https://github.com/mbecker20) **Created:** 8/18/2025 **Status:** ✅ Merged **Merged:** 8/24/2025 **Merged by:** [@mbecker20](https://github.com/mbecker20) **Base:** `main` ← **Head:** `1.19.1` --- ### 📝 Commits (10+) - [`bcbe75c`](https://github.com/moghtech/komodo/commit/bcbe75ca5d39098dce68283a4849f364d2bc7e15) start 1.19.1 - [`0c30229`](https://github.com/moghtech/komodo/commit/0c30229e3e97451aea128e081462b3557861592f) deploy 1.19.1-dev-1 - [`b7dab13`](https://github.com/moghtech/komodo/commit/b7dab131fa19c3f1d6ee8f955e80c03d630aeeba) Global Auto Update rustdoc - [`6ee7a29`](https://github.com/moghtech/komodo/commit/6ee7a29f516d804c0f52b881ed4ee1c13f14b39d) support stack additional files - [`420c9c0`](https://github.com/moghtech/komodo/commit/420c9c056984c640e607df30a8f1de762dc8f0c5) deploy 1.19.1-dev-2 - [`4fe84c1`](https://github.com/moghtech/komodo/commit/4fe84c17fbbe3484fe3d9166c1a435d6154f19e0) Fe support additional file language detection - [`8b1a323`](https://github.com/moghtech/komodo/commit/8b1a3230c3c6eec6197ef0e3f59e8840a16dfd77) fix tsc - [`5bbd551`](https://github.com/moghtech/komodo/commit/5bbd5510a16e6ff3ebffb0d6740a230aa879bc5e) Fix: Example code blocks got interpreted as rust code, leading to compilation errors (#743) - [`38857cb`](https://github.com/moghtech/komodo/commit/38857cbc0b6b8953764a86cf1abe25df76f15fe6) Enhanced Server Stats Dashboard with Performance Optimizations (#746) - [`829e8f3`](https://github.com/moghtech/komodo/commit/829e8f360bd56e2563fd4616b89006ac3c28f885) gen types ### 📊 Changes **99 files changed** (+4637 additions, -1674 deletions) <details> <summary>View changed files</summary> 📝 `Cargo.lock` (+241 -231) 📝 `Cargo.toml` (+10 -9) 📝 `bin/cli/src/command/container.rs` (+1 -1) 📝 `bin/cli/src/command/execute.rs` (+14 -0) 📝 `bin/cli/src/command/list.rs` (+1 -1) 📝 `bin/cli/src/command/mod.rs` (+1 -1) 📝 `bin/core/src/alert/discord.rs` (+32 -0) 📝 `bin/core/src/alert/mod.rs` (+239 -3) 📝 `bin/core/src/alert/ntfy.rs` (+1 -199) 📝 `bin/core/src/alert/pushover.rs` (+1 -199) 📝 `bin/core/src/alert/slack.rs` (+35 -0) 📝 `bin/core/src/api/execute/alerter.rs` (+79 -3) 📝 `bin/core/src/api/execute/build.rs` (+47 -29) 📝 `bin/core/src/api/execute/deployment.rs` (+31 -14) 📝 `bin/core/src/api/execute/mod.rs` (+13 -2) 📝 `bin/core/src/api/execute/stack.rs` (+456 -37) 📝 `bin/core/src/api/read/server.rs` (+13 -1) 📝 `bin/core/src/api/write/stack.rs` (+9 -1) 📝 `bin/core/src/helpers/procedure.rs` (+34 -0) 📝 `bin/core/src/helpers/update.rs` (+10 -0) _...and 79 more files_ </details> ### 📄 Description # Changelog 🚨 In order to use `config_files`, Periphery should also be updated to **v1.19.1** ❗️In addition to `ghcr.io`, images are now **also being published to `moghtech/komodo-*`** (Docker Hub) ### Stack `config_files` 🦎 One of the most common requests was to allow **in UI editing of `.env` files on server / in repo**. But really, there's not much difference between `.env` files and **any config file** which a Stack may be dependent on. This release adds the ability to configure **all config files Stacks depend on**, such as json / yaml app config files, and **edit the files from the Komodo UI**. Just add the relative path to the files (from the Run Directory) to the Stack "Config Files". Users which are already using "Additional Env File" feature will find, with no change, that they can now see / edit all their additional env files from the UI. The only difference is that "Additional Env Files" will _also_ be included in the `docker compose up` command (with --env-file flag), while "Config Files" will not. The UI editors **support syntax highlighting for a couple of common formats, such as toml, yaml, json, ini, and shell / .env**. It will be challenging to add support for all the various formats used, so I won't personally accept requests to add more. The support is set up for extension though, please raise a PR adding support for additional syntax highlighting you would like and I am happy to review and merge it. <img width="1419" height="809" alt="Screenshot 2025-08-22 at 1 28 34 AM" src="https://github.com/user-attachments/assets/9fd49c74-5429-44a4-97e1-6f7774787b7f" /> ### Deploy Stack If Changed 🦎 The biggest issue with Deploy Stack If Changed up to v1.19.1 was that it would only Redeploy if one of the compose files changed. If the commit is only to config file, these changes would be missed. Now in v1.19.1, "Config Files" and "Additional Env Files" will **also be tracked and diffed for changes**. This means changes made **only to a config / additional env file can also trigger deploy** using Deploy Stack If Changed. Any change made to a **compose file** or **additional env file** will _always_ lead to a full Redeploy. However users are **able to configure what kind of behavior diffs to config files leads to, either globally for the Stack or at the service level**. For example, you can set diffs in a config file to only **restart a specific service or services**. <img width="910" height="217" alt="Screenshot 2025-08-23 at 12 41 58 PM" src="https://github.com/user-attachments/assets/3f110967-f945-436d-808d-fc983c33c704" /> ### Action Example 🦎 If you configure Stacks with all dependent `additional_files`, you can create an Action like this: ```ts const { REPO } = ARGS as { REPO: string }; if (!REPO) { throw "Must pass REPO arg with linked repo name"; } const repo_id = ( await komodo.read("ListRepos", { query: { names: [REPO] } }) )[0].id; const stacks = ( await komodo.read("ListStacks", { query: { specific: { linked_repos: [repo_id] } }, }) ) .filter((s) => s.info.state === Types.StackState.Running) .map((s) => s.name) .join("\n"); console.log("Deploying if changed:\n"); console.log(stacks); console.log(); await komodo.execute("BatchDeployStackIfChanged", { pattern: stacks }); ``` It is re-usable in multiple Procedures, which can wrap the Action an hardcode the actual Repo. You then setup webhooks for the Procedure on push, or can schedule the Procedure to run at polling intervals. ### Community Contributions 🦎 This last week saw a ton of **end-to-end feature development** in community contributions, and I wanted to highlight them here: - **Stack**: New `execute` API -- **RunStackService** -- in #732 by @bpbradley - Analogous to [`docker compose run`](https://docs.docker.com/reference/cli/docker/compose/run/) - **Server**: Now includes **Core - Periphery version mismatch** alerts to highlight this issue for Users. #748 by @MP-Tool - **Server**: Track and view **system load averages** both real-time and historically. #761 by @jackra1n - **Server**: New **monitoring** focused server table toggle. #761 by @jackra1n - **UI**: Enhance server stats dashboard in #746 by @MP-Tool - **UI**: Enhance confirm menus accepting "Enter" to confirm in #750 by @MP-Tool - Improve rustdocs in #743 by @MP-Tool ### Resource - **Build**: Push images to **Multiple registries / organizations** - Using this to now publish images to `moghtech/komodo-*` (docker.io) - **Action / Procedure**: You can now configure static **Action Args** using the Procedure Config UI ### Misc - New `execute` API -- **SendAlert** - Broadcast custom alert messages from within Actions / Procedures --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the
pull-request
label 2025-10-31 15:21:21 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/komodo#770
No description provided.