AgentCtl


AgentCtl


      

Add account

A reusable login (username + password). No URL here — you pick the URL when you create a job. Passwords are encrypted and never shown again.


Bulk add (one per line: username:password)

Create job

Advanced: custom login selectors for this URL (optional JSON)
Advanced: comment selectors (optional JSON)

1 · Install the agent on a device

Requires Docker on the target machine (Linux recommended). The command below enrolls the device, then the agent connects back automatically and shows up under Agents. Re-running it on the same device is safe (idempotent).


        

For many devices at once, use the Ansible playbook in deploy/ansible/ with the same enrollment token.

2 · What the agent does

  • Runs as a background Docker container (auto-restarts, survives reboot).
  • On a command it launches a bundled headless browser (Chromium/Chrome or Firefox — no browser needs to be installed on the device).
  • Opens the URL you defined, auto-detects the login form, types the username + password, and submits.
  • Confirms success (URL change / password field gone / your success selector) and reports success or failed back to this dashboard.
  • Streams live logs + status (pending → running → success/failed) per run.
  • Detects CAPTCHA / MFA / bot-protection and reports it (it does not bypass them).

3 · Ports & how it talks to the server

DirectionProtocol / PortPurpose
Agent → ServerWSS (TLS) on 443 — path /ws/agent Persistent connection: receives commands, sends status + logs
Agent → ServerHTTPS on 443POST /api/v1/agents/enroll One-time registration to get its token
Server (public)80ACME/Let's Encrypt → redirects to 443
Device inboundNone The agent only makes outbound calls — no ports open on the device

This dev server: agent connects to (port shown in the install command). In production it's 443 behind TLS. Because the connection is outbound-only, agents work behind NAT/firewalls without port forwarding.

4 · Manage the agent on a device

docker logs -f agentctl-agent      # view live agent logs
docker restart agentctl-agent      # restart
docker rm -f agentctl-agent        # uninstall (then it goes Offline here)