PowerSentry Deploy — Jump Host Worker Daemon
Overview
Deploys the PowerSentry worker agent directly on the jump/bastion host (e.g., rb-master). Unlike deploying to a Proxmox host behind a bastion, the jump host itself is accessed directly (no intermediate hop).
Prerequisites
- Direct SSH access to the jump host (via Tailscale or public IP)
- SSH key
~/.ssh/id_ed25519 - Python 3 on the jump host
.envconfigured withJUMP_HOSTempty (direct connection)
.env Configuration
# proxmox-power-monitor/.env
PROXMOX_HOST=<jump-host-ip> # The jump host's own IP
JUMP_HOST= # Leave empty for direct connection
REMOTE_USER=ubuntu # Jump host username
Or pass directly via CLI (no .env needed):
cd proxmox-power-monitor
./deploy.sh <jump-host-ip>
# Example: ./deploy.sh 100.86.93.41
Deployment Steps
1. Run deploy script (direct mode)
cd proxmox-power-monitor
./deploy.sh <jump-host-ip>
Since no JUMP_HOST is provided, the script will:
- Connect directly (no proxy jump)
- Check Python 3 availability
- Install
websocketsdependency - Copy all Python files to
/opt/proxmox-power-monitor - Set permissions
2. SSH into the jump host
ssh ubuntu@<jump-host-ip>
3. Install and start the worker
cd /opt/proxmox-power-monitor
# Install with control panel connection
python3 cli.py install --control-panel=ws://<control-panel-host>:8765/worker
# Start the daemon
python3 cli.py start
# Verify
python3 cli.py status
python3 cli.py stats --recent=5
Network Considerations
- The jump host needs outbound connectivity to the control panel WebSocket port (
:8765) - If the control panel is on a public server (e.g., dk1), this should work by default
- If the control panel is on the same LAN, ensure routing is correct
Service Management
Same as any worker agent:
systemctl status powersentry-worker
journalctl -u powersentry-worker -f
cd /opt/proxmox-power-monitor && python3 cli.py uninstall