playbook-runner
Self-hosted web UI to run Ansible playbooks against your inventory, without the complexity of AWX/Tower.
A self hosted web dashboard for running and scheduling Ansible playbooks, without the setup weight of AWX or Ansible Tower.
Playbook Runner is a self hosted web app for running Ansible playbooks against your servers, built as a lighter alternative to heavier tools like AWX or Ansible Tower. If you have ever logged into a server by SSH, run ansible-playbook by hand, and watched the output scroll by in a terminal, this tool gives you a browser tab and a database for all of that instead: playbooks, one off commands, SSH credentials, the list of devices you manage, groups of devices, scheduled runs, and a log of every run that happened.
Installing it on a server is meant to be quick. You create an empty folder, run a single install script with curl, answer a few prompts for an admin username and password, and the script generates the needed secrets, writes a configuration file, pulls prebuilt container images, and starts everything up. Once running, you get a dashboard showing your devices, credentials, playbooks, and recent job runs at a glance.
From the web interface you can store SSH credentials for your servers, either by importing an existing key or generating a new one right in the browser, along with a ready made setup script you can run on a new server to create a user and grant it access. You can write and save Ansible playbooks directly in the browser instead of editing files by hand, run them against a chosen group of devices, and watch the output stream in live as each task completes. There is also a page for quick one off commands that do not need a full playbook, and a scheduler for running jobs automatically on a cron style schedule. The app supports multiple user accounts and can be configured to use a company single sign on system alongside normal email and password logins.
Under the hood, the project is a small collection of three services: a web frontend built with Astro and React, a backend built with Hono and a Postgres database, and a separate Python service using FastAPI that actually runs the Ansible commands and streams their output back over the network. The Python side has no database of its own; it only knows how to run what the backend tells it to run.
Where it fits
- Run Ansible playbooks against a group of servers from a browser instead of the terminal.
- Store SSH credentials and provision new servers with a generated key and setup script.
- Schedule recurring Ansible jobs on a cron style schedule with a live log of past runs.
- Run quick one off Ansible commands against selected devices without writing a playbook.