Job Activity Log
| Server | Type | Status | Step | Started | Duration |
|---|---|---|---|---|---|
System overview and job monitoring
No active operations
| Server | Type | Status | Step | Started | Duration |
|---|---|---|---|---|---|
| Loading... | |||||
Test API endpoints with live requests
Configure a switch port for Foreman bare metal provisioning. This looks up the server in NetBox, traces the cable to find the connected switch port, saves the current configuration, and sets the port to access mode with the Foreman VLAN.
{
"device_label": "server-001"
}
{
"device_label": "bm-web-prod-01",
"vlan_id": 100,
"description": "Foreman PXE - OS Reinstall",
"service_id": "12345",
"requested_by": "whmcs-foreman"
}
curl -X POST "http://localhost:8000/api/v2/port/provision" \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{"device_label": "server-001"}'
Restore a switch port to its original configuration after provisioning is complete. This finds the backup, restores the original configuration, and marks the backup as restored.
Get the current status of a switch port and any associated backups.
List all port configuration backups with optional filtering by status and device.
Get detailed information about a specific configuration backup.
Delete a backup record from the database. This does NOT restore the port configuration.
Basic health check endpoint. No authentication required.
Query the current power state of your server using tenant IPMI credentials.
Reboot your server using tenant IPMI credentials. Requires a safety confirmation string.
Power on your server using tenant IPMI credentials. This is a safe, non-destructive operation.
Power off your server using tenant IPMI credentials. Supports graceful (ACPI) and force (hard) shutdown modes.
Update your server's IPMI credentials. The new credentials will be tested against the BMC before being saved.
Query the current power state of a server via IPMI/BMC. Returns whether the chassis is powered on, off, or unknown.
Reboot a server using IPMI/BMC out-of-band management. Requires a safety confirmation string.
Power on a server that is currently off via IPMI/BMC. If the server is already on, this has no effect. This is a safe, non-destructive operation that does not require confirmation.
Power off a server via IPMI/BMC. Supports graceful (ACPI) and force (hard) shutdown modes.
Query server hardware information via IPMI FRU data. This is a read-only out-of-band query that works even when the server is powered off. Returns basic hardware info as reported by the BMC (varies by vendor). Does not update NetBox.
POST /api/v2/baremetal/lifecycle/{device}/test which boots the server and collects detailed OS-level inventory.
List servers available for sale from inventory. Only returns servers with status "inventory" in NetBox, "available-for-sale" tag, that have been wiped and passed hardware testing.
Release a server back to the available inventory pool. This performs: 1) Disables all switch ports (physical + bond/ae interfaces), 2) Powers off the server (hard power off via IPMI), 3) Updates NetBox device status to "inventory".
Boot server into discovery mode to collect hardware inventory. The server will PXE boot into a discovery image that collects CPU, memory, storage, network interfaces, and IPMI/BMC details.
SSH into the target server and run these commands as root:
1. Download the discovery script:
curl -o /tmp/hardware-discovery.sh http://foreman.arphost.com/pub/hardware-discovery.sh && chmod +x /tmp/hardware-discovery.sh
2. Run discovery:
Or as a single command:
Requires: dmidecode, smartmontools, nvme-cli, pciutils, jq, curl. storcli is auto-downloaded if a RAID controller is detected.# RHEL/CentOS/AlmaLinux/Rocky/FDI: rpm -i http://foreman.arphost.com/pub/storcli/storcli_noarch.rpm # Debian/Ubuntu/Proxmox: curl -o /tmp/storcli.deb http://foreman.arphost.com/pub/storcli/storcli_all.deb && dpkg -i /tmp/storcli.deb
Look up an active discovery job by server MAC address. Used internally by hardware-discovery.sh on FDI when kernel cmdline parameters are not available. Returns the callback_url and job_id for the discovery script to use.
List all operating systems available in Foreman for provisioning.
Use the id or title from the response as the os_override parameter when provisioning.
List all host groups available in Foreman for provisioning.
Use the name or title from the response as the hostgroup parameter when provisioning.
Get comprehensive status from all integrated systems: NetBox (device info, lifecycle state, IPs, interfaces), Foreman (build status, host group), WHMCS (service status, client info), IPMI (current power state), and active jobs.
Provision a server with an operating system. The server must have NetBox status "inventory" to prevent accidental reinstallation of production servers. This workflow configures switch ports, sets up Foreman, PXE boots the server, and waits for the installation callback.
Securely wipe all disks on a server. Boots server into wipe environment and securely erases all disks. After successful wipe, hardware testing is automatically triggered unless skip_test=true.
Run hardware tests on a server. Boots into FDI test environment and runs CPU stress test (stress-ng), memory test (memtester), SMART health check, disk I/O benchmark (fio, full/burn-in only), and network link verification (ethtool). On success, server is automatically returned to inventory unless auto_return_to_inventory=false.
SSH into the target server and run these commands as root:
1. Download the test script:
curl -o /tmp/hardware-test.sh http://foreman.arphost.com/pub/hardware-test.sh && chmod +x /tmp/hardware-test.sh
2. Run test:
Or as a single command:
Requires: stress-ng, fio, memtester, smartmontools, nvme-cli, ethtool, jq, curl (tools installed automatically via dnf if missing)List all baremetal workflow jobs with optional filtering by status, workflow type, and device.
Get detailed information about a specific baremetal job including step-by-step logs and progress.
Cancel a pending or running baremetal job. Only jobs with status "pending" or "running" can be cancelled.
Purge completed job history to remove sensitive data like passwords.
By default, only purges jobs with status "completed", "failed", or "cancelled".
Use include_all=true to purge ALL jobs including pending/running ones.
This is a destructive operation - purged jobs cannot be recovered.
Manually send a wipe completion callback for testing. This simulates what hardware-wipe.sh
sends when disk wipe completes. Use leave_powered_on=true to prevent the server
from being powered off after callback processing.
Manually send a discovery completion callback for testing. This simulates what hardware-discovery.sh
sends when hardware discovery completes. Use leave_powered_on=true to prevent the server
from being powered off after callback processing.
Allocate IPv4 AND IPv6 addresses from site's prefix pools. Creates a /31 (or /30 for Windows) prefix with all IPs populated. Pool selection is automatic: primary pool for new servers, secondary for additional IPs.
Assign a specific (already allocated) IP to a device interface. Use for manual IP assignment or moving IPs between servers.
Release a server's IP allocation back to the pool. Deletes IP addresses assigned to the device and clears primary IP references.
Allocate a shared prefix (≥/29) for a public VLAN that multiple servers can share. Use for server clusters or customers who need IP mobility between servers.
Assign the next available IP from a shared VLAN prefix to a server.
Release a single server's IP from a shared VLAN prefix. Does NOT delete the prefix - only removes the server's IP assignment.
List all users in the system with their API key counts. Requires admin privileges and JWT authentication.
Get detailed information about a specific user including their API keys. Requires admin privileges.
Update a user's account settings such as active status and admin privileges. Note: You cannot revoke your own admin status or deactivate your own account.
List all API keys for a specific user. Requires admin privileges.
Update an API key's settings including active status and scopes.
Permanently delete an API key for any user. This cannot be undone.
Create a new user account. The user can be assigned to a tenant and given admin privileges.
Change any user's password. The user will need to use the new password on their next login.
Create an API key for any user. The full key is shown only once!
Generate a temporary token to act as another user. The token expires in 1 hour and cannot be refreshed. Cannot impersonate yourself or other admins.
View audit logs of admin actions. Logs auto-delete after 60 days.
Synchronize tenants and users from NetBox. This imports tenants and their contacts as users, creating API keys with appropriate default scopes.
This will sync all tenants from NetBox and create/update users based on contacts assigned to each tenant. Existing users will be updated, new users will be created with passwords stored in NetBox.
View all API activity for users in your tenant. Logs auto-delete after 60 days. Only tenant admins can view these logs.
View all devices assigned to your tenant from NetBox. Shows server details including status, platform, rack location, and IP information.
Change your own password. You must provide your current password for verification.
List all your API keys. You can also create new keys and revoke existing ones.
View, create, and delete IPv4 PTR (reverse DNS) records for your IP addresses.
View, create, and delete IPv6 PTR (reverse DNS) records for your IP addresses.
Preview the reverse DNS name for any IP address. Shows the in-addr.arpa (IPv4) or nibble-format ip6.arpa (IPv6) name and whether a matching reverse zone exists.
List all reverse DNS zones configured on the PowerDNS server.
Create a new reverse DNS zone. Examples: 20.109.78.in-addr.arpa (IPv4 /24),
c.d.4.f.2.0.6.2.ip6.arpa (IPv6 /32).
List all PTR records for IPs assigned to a specific device. Also shows IPs without PTR records.
View and manage your IPv4 address space. Select a prefix to see all addresses, claim available IPs, and update descriptions.
View and manage your IPv6 address space. Select a prefix to see existing addresses, claim IPs, and update descriptions.
Manage users and their access
| ID | Name | Tenant | Status | Role | Actions | |
|---|---|---|---|---|---|---|
| Click "Refresh" to load users | ||||||
Loading...
Key Created! Copy this now - it won't be shown again:
Manage users in your tenant
| ID | Name | Status | Role | Scopes | Actions | |
|---|---|---|---|---|---|---|
| Loading users... | ||||||
Loading API keys...
Key created! Copy now — won't be shown again:
Loading...
Manage your API keys for programmatic access.
Key created! Copy this now - it won't be shown again:
Loading...
Manage reseller client accounts and resource assignments
| ID | Name | Status | Scopes | Resources | Actions | |
|---|---|---|---|---|---|---|
| Loading sub-users... | ||||||
Loading API keys...