Docs

Install, use, remove.

Everything you need to run RainServer 1.0. Short, because the program explains itself as it goes.

Install

Sign in to the dashboard, click Add server and run the command it shows on the server. The token in it works once and expires after 24 hours.

Run as a user with sudo
curl -fsSL https://raincleaner.eu/rainserver/install.sh | sudo sh -s -- --token YOUR_TOKEN

Add --dry-run to see what it would do without changing anything. The installer:

  • checks the system: Linux, systemd, x86_64 or ARM64
  • downloads one binary over HTTPS and verifies its Ed25519 signature and SHA-256
  • installs /usr/local/bin/rainserver and the rainserver-agent service
  • links the server to your account and starts the agent

Supported: Ubuntu 20.04+, Debian 11+, Rocky Linux, AlmaLinux and RHEL 8+. Public key for your own checks: rainserver-signing.pub

First steps

  1. 1sudo rainserver opens the terminal dashboard.
  2. 2sudo rainserver fix lists what it can help with; sudo rainserver fix ID explains one and asks before applying it.
  3. 3sudo rainserver clean lists what can be removed and how risky it is.
  4. 4Open the web dashboard: every server, alerts, history, automation and billing.

Commands

rainserverTerminal dashboard
rainserver statusOne-screen summary
rainserver scan [--json]Full scan: metrics, findings, cleanup candidates
rainserver fix [ID] [--yes]List findings with a fix, or explain and apply one
rainserver clean [--safe] [--item ID] [--yes] [--confirm ID]List or remove cleanup items; DANGER needs --confirm with the item id
rainserver security | services | docker | backups | netOne section of the scan
rainserver history [N]The last N recorded actions
rainserver backup add NAME PATH HOURSWatch a backup location (directory or glob)
rainserver critical add UNITNever restart this unit without a person
rainserver mute ID / unmute IDHide or show a finding
rainserver link TOKEN / unlinkConnect to or disconnect from your account
rainserver update [--check]Install the latest signed release
rainserver uninstallRemove RainServer completely

Keyboard

The terminal app is keyboard first. The footer always shows the keys that work on the current screen.

Tab / ← →Switch section
↑ ↓Move
1Dashboard
FFix My Server
CCleanup
USecurity
VServices
DDocker
NNetwork
BBackups
LLogs
SFull scan
SpaceSelect a cleanup item
EnterRun the selected fix or cleanup (asks first)
HHelp
QQuit

Risk levels

Every finding and every action has one of these. The level decides how much RainServer asks before it runs anything.

SAFEOne confirmation for the group. The item list is one keystroke away.
REVIEWYou open the category and confirm it on its own.
DANGERNever automatic. Shows the impact; critical ones need the name typed.
MANUAL ONLYRainServer will not run it. It explains the finding and leaves it to you.

Backups

RainServer does not make backups. Point it at the place your backups land and say how old the newest file may be:

Alert when the newest file is older than 26 hours
sudo rainserver backup add db-nightly /var/backups/db 26

Automation

In the dashboard under Automation: an approval level, a maintenance window and the jobs your plan allows. REVIEW, DANGER and MANUAL items are never automatic. Protect a unit from automatic restarts with:

Never restarted without a person
sudo rainserver critical add mysql

Alerts

Set channels under Settings: email for owners and admins, Telegram (one click with our bot), WhatsApp (free through CallMeBot, with your own key), a Discord webhook or your own HTTPS webhook (JSON). An alert opens when a problem is seen on two reports in a row, and a server counts as offline after 5 minutes without a report. The daily report goes to every channel at the hour you pick.

API

Business and Agency plans can create tokens under Settings. Send them as a Bearer token. Limit: 600 requests per hour.

GET /api/v1/serversAll servers with state, CPU, disks and findings
GET /api/v1/servers/IDOne server with its full latest snapshot
GET /api/v1/alertsOpen alerts
POST /api/v1/servers/ID/actionsQueue an action (Agency, write token): scan, service.restart, docker.restart, updates.security
Example
curl -H "Authorization: Bearer rsk_..." https://raincleaner.eu/rainserver/app/api/v1/servers

Files and data

/usr/local/bin/rainserverThe program (one static binary)
/etc/systemd/system/rainserver-agent.serviceThe background agent
/etc/rainserver/config.jsonSettings: backups, critical units, muted findings, link to your account
/var/lib/rainserver/history.jsonlLocal action history (append-only)

Update and uninstall

Checks the signed release manifest, verifies the checksum, replaces the binary and restarts the agent
sudo rainserver update
Stops the agent and removes the binary, the service, the config and the history
sudo rainserver uninstall

Checks you can run today

RainServer is not magic. Most of its checks start from commands you already know — it runs them, reads the output together, and explains the result. Here are a few of them. They only read; none of them change anything.

Disk and inode use
df -h / /var && df -i /
How much space the systemd journal takes
journalctl --disk-usage
Space used by images, containers, volumes and build cache
docker system df
Units that are currently failed
systemctl --failed
What is listening, on which port, and which process owns it
ss -tulpn
The SSH settings that are actually in effect
sshd -T | grep -Ei '^(permitrootlogin|passwordauthentication)'
Get started

Get it running on your server in two minutes.

  1. Create an accountSign in with your email. The 7-day trial for one server starts right away; no card.
  2. Add your serverCopy the install command from the dashboard and run it with sudo. It shows what it will install and checks the signature of the download.
  3. Open itRun sudo rainserver for the terminal dashboard, or open the web dashboard.
Start free trial
The command the dashboard gives you
curl -fsSL https://raincleaner.eu/rainserver/install.sh | sudo sh -s -- --token YOUR_TOKEN

Want to read it first? install.sh · Install docs

  • Ubuntu, Debian, Rocky, AlmaLinux, RHEL
  • x86_64 and ARM64
  • Removed completely with one command