Button guide

PowerShell Universal alternatives for running scripts from a web form free and paid options compared

If you're pricing PowerShell Universal at $499.99 per server per year just to put a web form in front of a few scripts, you have cheaper options, ranging from self-hosted open-source servers like Rundeck, Jenkins, Script Server, and OliveTin to built-in Windows desktop commands. If you don't want to host a server at all, Button (https://button.bitgate.dev) turns scripts on your own computer into web forms for $0 on the Free plan (1 tool, 3 invited people, 100 runs per month) or $15/month on Pro (50 tools, 250 people, 5,000 runs per month).

What PowerShell Universal gives you for $499.99

PowerShell Universal (now sold by Devolutions, formerly Ironman Software) has a free Developer edition for non-production use, and its Server license is $499.99 per server per year. You host it yourself on Windows, Linux, or macOS.

It does turn PowerShell scripts with parameters into web forms, and if that's the only feature you need, $499.99 a year is steep. But for large IT teams, PowerShell Universal does far more than forms: it builds REST APIs, apps, and dashboards, and it includes role-based access, schedules, and job history. If your team needs dashboards, APIs, and scheduled jobs alongside script forms on a server you control, stick with PowerShell Universal.

How the alternatives compare

Tool Cost Where you host it File uploads in forms Best when you need
PowerShell Universal $499.99/server/year (free non-production Developer edition) Self-hosted (Windows, Linux, macOS) Yes ([File] parameters) Full PowerShell platform with REST APIs, dashboards, apps, schedules, and role-based access
Button $0 Free (1 tool) or $15/month Pro ($144/year) Web form hosted by Button; jobs run on one computer you own Yes (up to 8 files, 25 MB each, 100 MB/run) A quick web form for a script on your own PC without standing up a server
Rundeck Open Source Free (Apache 2.0); commercial is PagerDuty Runbook Automation Self-hosted (Java 17+ server + database) Yes Running jobs across remote nodes over SSH or WinRM with regex-checked inputs
Jenkins Free (MIT) Self-hosted (Java server + optional agents) Yes (freestyle jobs, or Pipelines with File Parameters plugin) You already run Jenkins and can add the Matrix or Role-based Strategy plugin
Script Server Free (Apache 2.0) Self-hosted (Python, Linux first, Docker available) Yes Lightweight self-hosted web forms with LDAP, Google OAuth, or htpasswd logins
OliveTin Free (AGPL-3.0) Self-hosted only (Go) No (issue #939 open since March 2026) Simple web buttons for YAML-defined shell commands without file inputs
Show-Command / Windows Forms / WPF Free (built into Windows PowerShell and PowerShell 7 desktop) Runs locally on each user's Windows PC Local file paths No web server at all, and the user's own PC and permissions are enough

1. Button (runs on your computer, $0 to $15/month)

Button (https://button.bitgate.dev) is for when you have a script on your own machine and just want colleagues to run it from a browser without you maintaining a server. Any program works: PowerShell, Python, Node, R, shell scripts, or 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 PC, that computer has to be on and online (tool pages show Ready, Busy, or Offline), and each workspace supports one computer on every plan. Pairing a new computer replaces the previous one.

Before you hook a PowerShell script up to Button, make sure it takes its inputs as command-line arguments rather than interactive prompts or hard-coded paths. Use a param() block in PowerShell (or argparse in Python, commandArgs() in R, $1 and $2 in bash), take each input file path as an argument, and write the results as files into an output folder that is also passed as an argument:

param(
    [string]$InputCsv,
    [string]$Department,
    [string]$OutputFolder
)

Fixed parameter names such as -Department stay part of the command you approve, so colleagues only supply the values for the form fields.

To publish a script on Button:

  1. Sign in at button.bitgate.dev.
  2. Install the Button runner on your Windows, macOS, or Linux computer using the one-line command the site shows you (PowerShell on Windows, curl on macOS and Linux).
  3. Open the local setup page, pick your program, and describe its inputs (text, number, yes/no, choice, or files).
  4. Publish the tool to give it its own page, 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.

The runner only executes the exact command you approved on that computer, pinned by hash, passes every form value as its own argument with no shell, and rejects values that 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.

Button's limits: one run at a time per computer, up to 30 minutes per run, files up to 25 MB each (8 files and 100 MB per run), and logs up to 1 MB per run. Inputs are deleted 24 hours after a run ends, and outputs after 7 days. Free is $0 for 1 published tool, 3 people and 100 runs per month; Pro is $15/month, or $144/year, for 50 tools, 250 people and 5,000 runs per month.

Choose another tool if you can't rely on one desktop staying online, need concurrent runs, or want to self-host everything so form values and files don't pass through Button's servers.

2. Rundeck Open Source

Rundeck Open Source (Apache 2.0) is maintained by PagerDuty, who also sell the commercial edition, PagerDuty Runbook Automation. Version 6.3.0 shipped in October 2026.

It's a full self-hosted runbook server. Job options show up to users as a form with text, file, and multi-line options, plus allowed values and regex checks. Rundeck runs commands locally on the Rundeck server, or across remote nodes over SSH or WinRM.

The tradeoff is infrastructure: you need a Java 17+ server and, for production, a database. If you're already running multi-node operations over WinRM and SSH and want a central server, Rundeck fits well.

3. Jenkins

Jenkins is a self-hosted Java automation server that many IT departments already have running. If you don't have it, it's heavy just for script forms, but if it's already there, you can use parameterized jobs.

To set up a script form in Jenkins:

  1. Create a job and check 'This project is parameterized' 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).
  2. If the job needs to run on a specific machine, connect that machine as an agent and restrict the job with a label.
  3. Install the Matrix Authorization Strategy or Role-based Strategy plugin and grant non-admins Job/Read and Job/Build so they can only start jobs.

4. Script Server

Script Server (github.com/bugy/script-server) is a smaller open-source Python web server you install and host yourself (it's Linux first, with a Docker image available).

It turns script parameters into form fields, including file uploads, shows live output in the browser, and offers output files for download. It also supports LDAP, Google OAuth, and htpasswd logins, and keeps execution history and audit logs. Note that its latest tagged release is 1.18.0 from August 2023, though the main branch still gets commits.

5. OliveTin

OliveTin is open source, written in Go and self-hosted only, with no SaaS version. You define shell commands in a YAML config and OliveTin gives them a web button, along with local users, OAuth2, and access control lists.

You can type arguments as text, int, email, url, datetime, password, checkbox, dropdown choices, and more. The main catch is that OliveTin has no file upload argument - a feature request for attachments as input (issue #939) has been open since March 2026. If your scripts need users to upload a CSV or spreadsheet, skip OliveTin for now.

6. Show-Command and Windows desktop GUIs

If you don't actually need a web page, PowerShell has built-in GUI tools on Windows desktop (both Windows PowerShell and PowerShell 7, though not on Server Core). Show-Command opens a GUI form for a command's parameters, and Out-GridView shows results in a sortable, filterable window.

You can also build custom GUIs from PowerShell using Windows Forms or WPF. The limitation with all of these is that the script runs on each user's own PC under that user's permissions, so the user needs whatever modules, network access, and credentials the script requires.

FAQ

Is PowerShell Universal free?

PowerShell Universal has a free Developer edition for non-production use. For production, a Server license costs $499.99 per server per year.

Does Button run scripts in the cloud?

No, jobs run on the creator's own computer, never in Button's cloud. Button's servers relay the form values and files between the user's browser and that computer.

Which self-hosted alternatives support file uploads in the form?

PowerShell Universal (with [File] parameters), Rundeck, Script Server, and Jenkins (natively in freestyle jobs, or in Pipelines using the File Parameters plugin) all let users upload files into a job. OliveTin does not support file uploads yet (issue #939 has been open since March 2026).

When should I pay for PowerShell Universal instead of using Button?

Buy PowerShell Universal when you need a self-hosted server that provides REST APIs, apps, dashboards, schedules, and role-based access for a larger team. Button is only for turning a script on a single computer into a web form, and runs one job at a time for up to 30 minutes per run.

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.