Skip to content

checkmate-server: init at 3.5.1#496025

Open
robertjakub wants to merge 1 commit intoNixOS:masterfrom
robertjakub:oom-checkmate-server
Open

checkmate-server: init at 3.5.1#496025
robertjakub wants to merge 1 commit intoNixOS:masterfrom
robertjakub:oom-checkmate-server

Conversation

@robertjakub
Copy link
Contributor

An open-source, self-hosted monitoring tool for tracking server hardware, uptime, response times, and incidents in real-time with beautiful visualisations. Checkmate regularly checks whether a server/website is accessible and performs optimally, providing real-time alerts and reports on the monitored services' availability, downtime, and response time.

Checkmate also has an agent, called Capture, to retrieve data from remote servers. While Capture is not required to run Checkmate, it provides additional insights about your servers' CPU, RAM, disk, and temperature status.

homepage: https://checkmate.so
documentation: https://docs.checkmate.so

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

@nixpkgs-ci nixpkgs-ci bot added 8.has: package (new) This PR adds a new package 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 8.has: module (update) This PR changes an existing module in `nixos/` labels Mar 3, 2026
@robertjakub robertjakub force-pushed the oom-checkmate-server branch from 92cd3b0 to d4133fe Compare March 3, 2026 00:39
@robertjakub
Copy link
Contributor Author

nixpkgs-review result

Generated using nixpkgs-review-gha

Command: nixpkgs-review pr 496025
Commit: d4133fe023f41a0a41dfb258744a5fe93829dffd (subsequent changes)
Merge: 52d4f0e97b75572a2642c0e90c73d43e2914ce2e

Logs: https://github.com/robertjakub/nixpkgs-review-gha/actions/runs/22602877594


x86_64-linux

⏩ 2 packages blacklisted:
  • nixos-install-tools
  • tests.nixos-functions.nixos-test
✅ 1 package built:
  • checkmate-server

aarch64-linux

⏩ 2 packages blacklisted:
  • nixos-install-tools
  • tests.nixos-functions.nixos-test
✅ 1 package built:
  • checkmate-server

@robertjakub robertjakub force-pushed the oom-checkmate-server branch from d4133fe to 60204a5 Compare March 4, 2026 22:14
@robertjakub robertjakub changed the title checkmate-server: init at 3.4.0 checkmate-server: init at 3.5.0 Mar 4, 2026
Copy link
Contributor

@philiptaron philiptaron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for putting this together! Checkmate looks like a useful monitoring tool, and the overall structure of the package + module + test is solid.

I dug into the upstream source to understand the environment variables, and found a couple of issues that need addressing before this can merge:

REFRESH_TOKEN_SECRET doesn't exist upstream. The module sets REFRESH_TOKEN_SECRET = cfg.settings.tokenTTL in the systemd environment, but the Checkmate server never reads this variable. It only appears once in the entire upstream repo — as a commented-out line in a Helm chart values file. The server's env validation (server/src/validation/envValidation.ts) doesn't include it, and SettingsService doesn't use it. This line should just be removed.

settings.port is misleading. The upstream server hardcodes port 52345 in server/src/index.ts:53 — it's not configurable via an environment variable. The module's port option only affects the nginx proxyPass target URL, so if someone sets it to anything other than 52345, nginx will proxy to the wrong port and things will silently break. I'd suggest either removing the option and hardcoding 52345 in the nginx config, or at minimum documenting that it must match the upstream default.

The test should exercise nginx. Right now the test curls the backend directly on port 52345, but the module sets up nginx as a reverse proxy. It'd be good to also test a request through nginx to validate that the proxy config actually works.

A few smaller things I noticed while reading through:

  • mkEnableOption "Enable Checkmate." produces "Whether to enable Enable Checkmate.." — should be something like mkEnableOption "the Checkmate monitoring server"
  • inherit (builtins) toString is unnecessary since toString is already in scope
  • build-system in package.nix is a Python/buildPythonPackage concept — makeWrapper should go in nativeBuildInputs instead
  • The package-lock.json override and the .toFixed() source patch could use comments explaining why they're needed

@robertjakub robertjakub force-pushed the oom-checkmate-server branch 2 times, most recently from d527c68 to bbe097b Compare March 6, 2026 23:58
@robertjakub
Copy link
Contributor Author

Thanks for putting this together! Checkmate looks like a useful monitoring tool, and the overall structure of the package + module + test is solid.

I dug into the upstream source to understand the environment variables, and found a couple of issues that need addressing before this can merge:

REFRESH_TOKEN_SECRET doesn't exist upstream. [...] This line should just be removed.

removed. it was my mistake.

settings.port is misleading. The upstream server hardcodes port 52345 in server/src/index.ts:53 — it's not configurable via an environment variable. The module's port option only affects the nginx proxyPass target URL, so if someone sets it to anything other than 52345, nginx will proxy to the wrong port and things will silently break. I'd suggest either removing the option and hardcoding 52345 in the nginx config, or at minimum documenting that it must match the upstream default.

the issue is fixed. the support for a PORT env were removed by mistake. The upstream released new version (3.5.1) with appropriate fixes.

The test should exercise nginx. Right now the test curls the backend directly on port 52345, but the module sets up nginx as a reverse proxy. It'd be good to also test a request through nginx to validate that the proxy config actually works.

done.

A few smaller things I noticed while reading through:

  • mkEnableOption "Enable Checkmate." produces "Whether to enable Enable Checkmate.." — should be something like mkEnableOption "the Checkmate monitoring server"

fixed.

  • build-system in package.nix is a Python/buildPythonPackage concept — makeWrapper should go in nativeBuildInputs instead

fixed.

  • The package-lock.json override and the .toFixed() source patch could use comments explaining why they're
    needed
  • .toFixed() was a quick hack on version 3.5.0 - removed as currently not needed.
  • package-lock.json override - commented. not all dependencies in the upstream version are resolved and due to this, not all modules are cached.

@robertjakub robertjakub changed the title checkmate-server: init at 3.5.0 checkmate-server: init at 3.5.1 Mar 7, 2026
@robertjakub robertjakub requested a review from philiptaron March 7, 2026 00:06
@robertjakub robertjakub force-pushed the oom-checkmate-server branch from bbe097b to c3f282a Compare March 7, 2026 15:07
@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. and removed 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. labels Mar 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 8.has: module (update) This PR changes an existing module in `nixos/` 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants