Button guide
Rundeck alternatives for running jobs from a form Jenkins, Windmill, Script Server, OliveTin, PowerShell Universal and Button
If Rundeck feels too heavy when you just want colleagues to run a few scripts from a form, Script Server and OliveTin are much smaller self-hosted servers, while Windmill, Jenkins and PowerShell Universal make sense if you want broader platforms or already run them. If you'd rather not host a server at all, Button turns a script on your own computer into a web form for $0 (1 tool, 3 people, 100 runs/month) or $15/month (50 tools, 250 people, 5,000 runs/month).
Why Rundeck is heavy for a handful of jobs
Rundeck Open Source, maintained by PagerDuty (the commercial edition is PagerDuty Runbook Automation), is built for running runbooks across many nodes over SSH or WinRM, or locally on the Rundeck server. Its job options give users a proper form with text, file and multi-line options, allowed values and regex checks.
The catch for a small setup is what you have to run underneath it. Rundeck needs a Java 17+ server and, in production, a database - MySQL/MariaDB, PostgreSQL, SQL Server or Oracle. When you only have a few scripts, that's a lot of infrastructure to keep patched and backed up.
Comparison of Rundeck and lighter alternatives
| Tool | Hosting | Languages / commands | File upload inputs | Pricing / license |
|---|---|---|---|---|
| Rundeck | Self-hosted (Java 17+ server + DB) or PagerDuty Runbook Automation | Commands on nodes via SSH/WinRM or local | Yes | Apache 2.0 / Commercial |
| Script Server | Self-hosted (Python web server, Linux first, Docker) | Local scripts | Yes | Apache 2.0 |
| OliveTin | Self-hosted only (Go binary) | Predefined shell commands from YAML | No (issue #939 open since March 2026) | AGPL-3.0 |
| Windmill | Self-hosted or Windmill Cloud | Python, TypeScript, Go, Bash, SQL + 20+ more | Yes, in auto-generated forms | AGPLv3 core; free self-hosted (up to 50 users, 3 workspaces); Cloud free tier (1,000 executions/mo) |
| Jenkins | Self-hosted (Java) | Any (via freestyle or Pipeline jobs) | Yes (freestyle built-in; Pipelines need File Parameters plugin) | MIT |
| PowerShell Universal | Self-hosted (Windows, Linux, macOS) | PowerShell | Via script parameters | Free Developer edition (non-prod); $499.99/server/year |
| Button | Web form hosted at button.bitgate.dev; runner on your computer | Any (Python, Node, R, PowerShell, shell, binaries) | Yes (up to 8 files, 25 MB each, 100 MB/run) | Free ($0: 1 tool, 3 people, 100 runs/mo); Pro ($15/mo or $144/yr: 50 tools, 250 people, 5,000 runs/mo) |
Script Server
Script Server (github.com/bugy/script-server) is an Apache 2.0 Python web server that you install and host yourself - it's Linux first, and there's a Docker image available. You configure your script parameters and they show up as form fields, including file uploads. When someone runs a job, it shows live output and offers output files for download, and it keeps execution history and audit logs. For logins, it supports LDAP, Google OAuth and htpasswd.
Pick Script Server if you want a single self-hosted container or Python process dedicated to turning scripts into forms with file inputs and audit logs. One thing to note: its latest tagged release is 1.18.0 from August 2023, though the main branch still gets commits.
OliveTin
OliveTin is an open-source tool written in Go that gives predefined shell commands from a YAML config a web button. It's self-hosted only, with no SaaS version. You can type your arguments - text, numbers, dates, passwords, checkboxes, dropdowns and more - and put them behind local users, OAuth2 and access control lists.
OliveTin is a great fit when your jobs are straightforward shell commands with text or dropdown inputs and you want a single Go binary configured in YAML. Skip it if your users need to upload files: it has no file upload argument, and the feature request for attachments as input (issue #939) has been open since March 2026.
Windmill
Windmill is an open-source developer platform that turns scripts in Python, TypeScript, Go, Bash, SQL and 20+ other languages into auto-generated forms, plus webhooks, schedules, workflows and apps. When you self-host, scripts run on Windmill workers you host, on any machine that can reach Windmill's database.
Self-hosted Windmill is free with unlimited executions, up to 50 users (max 10 with SSO) and 3 workspaces; Windmill Cloud also has a free tier with 1,000 executions per month. Windmill is the better choice when you don't just need a form for an existing script, but also want schedules, webhooks, multi-step workflows and internal apps in one platform.
Jenkins
Jenkins is another Java automation server you host yourself, so it's not worth spinning up from scratch just to avoid Rundeck. But if you already run Jenkins, you don't need a new tool.
To set up a job form for non-admin colleagues in Jenkins:
- Check 'This project is parameterized' on a job to add string, multi-line string, boolean, choice, password or file parameters (file parameters work out of the box in freestyle jobs, while Pipelines need the File Parameters plugin).
- If the job needs to run on a specific machine, connect that machine as an agent and restrict the job with a label.
- Install the Matrix Authorization Strategy or Role-based Strategy plugin and grant your users Job/Read and Job/Build so they can only start jobs.
PowerShell Universal
PowerShell Universal (sold by Devolutions, formerly Ironman Software) runs on Windows, Linux and macOS, and you host it yourself. It turns PowerShell scripts with parameters into forms, and also gives you REST APIs, apps and dashboards, role-based access, schedules and job history.
There's a free Developer edition for non-production use, and a Server license costs $499.99 per server per year. If your team writes everything in PowerShell and wants dashboards, schedules and REST APIs alongside script forms, it's purpose-built for that.
Button
Button (https://button.bitgate.dev) is for when you have a script on your own computer (macOS, Linux or Windows) and want to give colleagues a web form for it without standing up a server at all. Any program works: Python, Node, R, PowerShell, shell scripts, compiled binaries.
Jobs run on your computer, never in Button's cloud, while Button's servers relay the form values and files between the browser and your machine. Because it runs on your machine, your computer has to be on and online (tool pages show Ready, Busy or Offline), and each workspace supports one computer (pairing a new one replaces the previous one), running one job at a time for up to 30 minutes per run.
Here is how you set a script up on Button:
- Update your script so it takes inputs as command-line arguments (
argparsein Python,commandArgs()in R, aparam()block in PowerShell,$1and$2in bash) rather than hard-coded paths or interactive prompts. Take each input file path as an argument, and write result files into an output folder passed as an argument:
#!/usr/bin/env bash
input_file="$1"
output_dir="$2"
cp "$input_file" "$output_dir/processed.csv"
- Sign in at button.bitgate.dev and install the Button runner on your computer using the one-line command the site shows you (curl on macOS and Linux, PowerShell on Windows).
- Open the local setup page, pick your program, and describe its inputs (text, number, yes/no, choice, files). Fixed flags stay part of the command you approve; colleagues only fill in the form fields.
- Publish the tool and invite your colleagues.
Colleagues open the link from their invite email, sign in with Google or a one-time email code, fill in the form, press Run and download the results. They install nothing and never pay.
Under the hood, the runner only executes the exact command you approved on that computer, pinned by hash. Every form value is passed to your program as its own argument with no shell, and a value can't start with "-". If you change a tool, people have to confirm the new version before running it. Every run is logged with who ran it and when, and you can revoke access or set it to expire at any time.
File limits are 25 MB per file, up to 8 files and 100 MB per run, with logs up to 1 MB per run. Inputs are deleted 24 hours after a run ends, and outputs after 7 days. The Free plan is $0 (1 published tool, 3 people, 100 runs/month); Pro is $15/month or $144/year (50 tools, 250 people, 5,000 runs/month). Downgrading deletes nothing.
FAQ
Which Rundeck alternative doesn't require hosting a server?
Button doesn't require you to host a web server or database; you install the runner on your own macOS, Linux or Windows computer and Button hosts the web form at button.bitgate.dev. Windmill also offers Windmill Cloud with a free tier of 1,000 executions per month.
Which tools support file uploads in the job form?
Rundeck, Script Server, Jenkins (built-in for freestyle jobs, or via the File Parameters plugin for Pipelines) and Button (up to 8 files, 25 MB each, 100 MB per run) all accept file uploads. OliveTin does not support file upload arguments (issue #939 has been open since March 2026).
Does Button keep my data on my own computer?
The job itself executes on your computer, but form values and files pass through Button's servers to get between the browser and your computer. Button deletes inputs 24 hours after a run ends and outputs after 7 days.
Can Button run jobs on a schedule or across multiple servers?
No. Button only runs jobs when someone submits the web form, and each workspace pairs with a single computer that runs one job at a time. If you need multi-node execution, stay with Rundeck; if you need schedules and workflows, look at Windmill or PowerShell Universal.
Last updated
Put your script behind a form
Button turns a script on your computer into a web form. Colleagues sign in, fill it in, press Run and download the results. Free for 1 tool and 3 people.