You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
rallyup is a lightweight Wake-On-LAN (WOL) scheduler and dependency manager designed for small businesses and homelabs. It ensures that infrastructure services like firewalls, storage, and hypervisors are brought online in the correct order, particularly after events like power outages.
A typical setup involves configuring most of the infrastructure for WOL but not for Wake-On-Power, and settingrallyup to run on startup on a low-power device like a Raspberry Pi. When you need to bring the entire environment online, simply power on the device runningrallyup, and the rest of the infrastructure will automatically follow in the correct order.
Features
VLAN Support: Send WOL packets to devices across different VLANs.
YAML Configuration: Easily define server boot sequences, dependencies, and status checks.
Service Status Checks: Verify that a service is up using built-in status checks (HTTP health checks, NFS, SMB, custom shell commands).
HTTP
Open port
Shell
NFS (might just use open port check)
SMB (might just use open port check)
Plugin-Friendly: Users can write their own custom status check plugins.
Usage
rallyup servers.yaml
Configuration
The dependencies between servers, along with the methods for validating that they are online, are defined in a YAML configuration file.
Servers Configuration
Fields:
name: The name of the server, used for identification when defining dependencies between servers
mac: The MAC address of the server we want to wake up
interface: The network interface to use when sending the WOL packet
vlan: The VLAN ID (optional) that the server is on
depends: A list of other server names that this server depends on
check: A list of health checks that must pass before this server is considered fully online
Example:
-name:"firewall"mac:"00:11:22:33:44:55"interface:"eth0"vlan:100depends: -"storage"check:[... see below]
Health Check Configurations
Each server can have multiple health checks to ensure the server is fully online before the next device starts up.
Common Fields
retry: The interval, defined in human readable string (e.g. 1s, 1 minute, etc.) to wait between retrying this health check
timeout: The timeout interval after which the check, and subsequently the entire boot sequence, will fail
Built-in Health Checks
HTTP Health Checks
The HTTP health check verifies whether a specified endpoint responds as expected.
Fields
type: should behttp for an HTTP health check.
url: The URL to perform the HTTP health check against
status: Expected HTTP status code
regex: Regex to match in the response body
Note: You must provide eitherstatus orregex, or both.
The port health check verifies whether a specified TCP port on a server is open and accessible.This is really a stand-in for verifying NFS and SMB ports until I can figure out how to check if those services are online.