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.

Implementation
From Rails app to live server health
Install the published gem, configure the protected engine, then connect the standalone Linux host collector.
- 01
Add The Night’s Watch to your Rails app
Install the published gem from RubyGems in the application you want to monitor.
View the package on RubyGemsbundle add tnw - 02
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 the LLM installation guideRead https://tnw.catalinionescu.dev/llms-install.md and install The Night's Watch in this Rails app. - 03
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 - 04
Install the host pusher
Run this on the Linux host. It installs only the collector, protected configuration, and a systemd timer or cron fallback.
Inspect the script before running itcurl -fsSL https://tnw.catalinionescu.dev/install.sh | sudo bash
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.