Rails-native operations for Kamal

The Night’s Watch

See the health of your Kamal server inside the Rails app you already run, with signed host metrics, protected access, and no Docker socket mounted into your application.

The Night's Watch dashboard showing CPU, memory, disk, and load metrics for a healthy server

Implementation

From Rails app to live server health

Set up the protected engine first, then install the standalone metrics pusher on the Linux host.

  1. 01

    Ask your coding agent to set up the engine

    The Markdown guide works with Codex, Claude, Cursor, or another agent that can edit your Rails app.

    Read https://tnw.catalinionescu.dev/llms-install.md and install The Night's Watch in this Rails app.
    Read the LLM installation guide
  2. 02

    Review the credentials and defaults

    Register the server, generate its ingestion secret, and confirm authentication, retention, and sampling.

    Tnw.configure do |config|
      config.metrics_sample_interval = 5.seconds
      config.metrics_retention = 7.days
      config.metrics_ingestion_token = ENV["TNW_METRICS_INGESTION_TOKEN"]
      config.metrics_accepted_clock_skew = 30.seconds
    end
  3. 03

    Install the host pusher

    Run this on the Linux host. It installs only the collector, protected configuration, and a systemd timer or cron fallback.

    curl -fsSL https://tnw.catalinionescu.dev/install.sh | sudo bash
    Inspect the script before running it
InspectableThe host installer is public and never modifies the Rails application.
Rails-owned accessUse your existing admin authentication or explicit basic auth.
Read-only firstHost metrics arrive as signed JSON; the app does not mount the Docker socket.