Skip to content

Check minimum system requirements during server install#663

Merged
phinze merged 3 commits intomainfrom
phinze/mir-748-server-install-should-check-minimum-system-requirements
Mar 11, 2026
Merged

Check minimum system requirements during server install#663
phinze merged 3 commits intomainfrom
phinze/mir-748-server-install-should-check-minimum-system-requirements

Conversation

@phinze
Copy link
Copy Markdown
Contributor

@phinze phinze commented Mar 11, 2026

Mary managed to install miren on a 512 MB server, which happily accepted the install and then promptly died during a deploy. The installer had no guardrails — it checked for root and systemd but never looked at whether the machine could actually run everything.

We already document minimum requirements in the getting-started guide (4 GB memory, 50 GB storage), so this wires those thresholds into the install flow right after the existing prerequisite checks. If you're below the minimums, the install stops with a clear message explaining what's needed and links to the docs. If you're in the "it'll probably work but we wouldn't recommend it" zone (between minimum and recommended), you get a warning but things keep moving.

For unusual environments where we can't read /proc/meminfo or stat the filesystem, we warn but don't block — no sense locking someone out just because their system is weird. And --skip-system-check is there for anyone who knows what they're doing and wants to push through anyway.

While we were at it, we moved the system requirements docs out of a buried anchor in getting-started and onto their own reference page, so the CLI has something stable to link to and users can actually find it. Also added a note to CLAUDE.md about the correct docs URL (miren.md, not miren.dev/docs) since we keep getting that wrong.

Only applies to the systemd (bare metal) install path for now — Docker installs are a different story.

Closes MIR-748

phinze added 3 commits March 11, 2026 14:58
The system requirements were buried at the bottom of
getting-started as "A Note on System Requirements." Gave them their
own page under Reference so they're easier to find and link to.

Getting-started keeps the quick bullet list and links out to the
new page for the full explanation.
The install command now reads total memory from /proc/meminfo and
available disk space via syscall.Statfs before proceeding. If the
system falls below our documented minimums (4 GB memory, 50 GB
storage), installation is blocked with a friendly explanation and
a link to the docs. Systems between minimum and recommended (8 GB
/ 100 GB) get a warning but can proceed.

A --skip-system-check flag lets power users bypass the check.
Published docs live at miren.md, not miren.dev/docs. Adding this
so we stop getting it wrong in CLI output and error messages.
@phinze phinze requested a review from a team as a code owner March 11, 2026 19:59
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 11, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9c05ad49-177e-4460-be3f-6278cd1e5056

📥 Commits

Reviewing files that changed from the base of the PR and between e537cee and b183017.

📒 Files selected for processing (7)
  • CLAUDE.md
  • cli/commands/server_install.go
  • cli/commands/server_install_other.go
  • cli/commands/server_install_test.go
  • docs/docs/getting-started.md
  • docs/docs/system-requirements.md
  • docs/sidebars.ts

📝 Walkthrough

Walkthrough

This pull request implements system requirements validation for server installation. Changes include adding memory and disk space checks in the install workflow with a new --skip-system-check flag to bypass validation. New functions detect available resources, emit guidance warnings, and determine if minimum requirements are met. The ServerInstall options struct is updated with the SkipSystemCheck field across multiple files. Test coverage validates the system requirements guidance logic across various resource scenarios. Documentation is restructured: a detailed system requirements page is added and referenced in sidebars, while redundant content is removed from getting-started.


Comment @coderabbitai help to get the list of available commands and usage tips.

@phinze phinze merged commit 407cb88 into main Mar 11, 2026
13 checks passed
@phinze phinze deleted the phinze/mir-748-server-install-should-check-minimum-system-requirements branch March 11, 2026 22:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants