Button guide

Script Server alternatives a web UI for your scripts without hosting a server, compared with OliveTin, Rundeck and Windmill

If you're looking for alternatives to Script Server, the main options are OliveTin, Rundeck, Windmill, Jenkins, and Button. If you want to skip hosting a server altogether, Button turns a script on your own computer into a web form for colleagues - its Free plan is $0 for 1 tool, 3 people, and 100 runs per month, and the Pro plan is $15/month for up to 50 tools and 5,000 runs per month. If you'd rather stay self-hosted, OliveTin and Rundeck are the closest direct replacements, while Windmill and Jenkins cover larger automation setups.

Where Script Server stands in October 2026

Script Server (github.com/bugy/script-server) is still a very capable piece of software. It's free, open source under Apache 2.0, and gives you a Python web server that you install and host yourself (it's Linux first, and there's a Docker image available).

You point it at your scripts, and their parameters become form fields. It handles file uploads, streams live output to the browser, and offers output files for download when the run finishes. For logins and tracking, it supports LDAP, Google OAuth, and htpasswd, and keeps execution history and audit logs.

The catch for some teams is the release cadence. Its latest tagged release is 1.18.0 from August 2023, though the main branch still gets commits. You also have to host the server yourself.

Comparison of Script Server alternatives

Tool License Hosting model File inputs Auth options Release status / key limits
Script Server Apache 2.0 Self-hosted (Python, Linux first, Docker) Yes LDAP, Google OAuth, htpasswd Last tagged release 1.18.0 (August 2023); main branch gets commits
OliveTin AGPL-3.0 Self-hosted only (Go) No (open issue #939 since March 2026) Local users, OAuth2, access control lists Latest release October 2026
Rundeck Open Source Apache 2.0 Self-hosted (Java 17+ and a production DB) Yes Built-in user/role system Version 6.3.0 shipped in October 2026
Windmill AGPLv3 core Self-hosted or Windmill Cloud Yes Up to 50 users (max 10 with SSO) on free self-hosted Free self-hosted: unlimited executions, 3 workspaces. Cloud free tier: 1,000 executions/month
Jenkins MIT Self-hosted (Java) Yes (freestyle jobs, or Pipelines with plugin) Matrix Authorization Strategy or Role-based Strategy plugin Open-source automation server
Button Hosted service Web form on button.bitgate.dev; jobs run on your computer Yes (up to 8 files, 25 MB each, 100 MB/run) Google or one-time email code Free: $0 (1 tool, 3 people, 100 runs/mo). Pro: $15/mo (50 tools, 250 people, 5,000 runs/mo)

OliveTin

OliveTin is open source (AGPL-3.0), written in Go, and self-hosted only, with no SaaS version. Its latest release came out in October 2026. You define shell commands in a YAML config, and OliveTin gives each one a web button.

Arguments can be typed as text, int, email, url, datetime, password, checkbox, dropdown choices, and more. It also supports local users, OAuth2, and access control lists.

One big difference from Script Server: OliveTin has no file upload argument. A feature request for attachments as input (issue #939) has been open since March 2026. If your scripts don't take input files and you want an actively released, self-hosted tool driven by a YAML config, OliveTin is a better choice than Button.

Rundeck

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

To run it, you need a Java 17+ server and, in production, a database (MySQL/MariaDB, PostgreSQL, SQL Server, or Oracle). Job options appear to users as a form with text, file, and multi-line options, plus allowed values and regex checks. Jobs can run commands on nodes over SSH or WinRM, or locally on the Rundeck server.

Rundeck is the better choice when you need to run jobs across multiple remote nodes over SSH or WinRM and you already have the infrastructure to run a Java server and a production database.

Windmill

Windmill is an open-source developer platform (AGPLv3 core) that turns scripts in Python, TypeScript, Go, Bash, SQL, and 20+ other languages into auto-generated forms, 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. If you don't want to host anything, Windmill Cloud has a free tier with 1,000 executions per month.

Pick Windmill if you need webhooks, schedules, multi-step workflows, or SQL scripts, or if you want a self-hosted platform with unlimited executions.

Jenkins

Jenkins is an open-source (MIT) automation server you host yourself on Java. If your team already runs Jenkins, you might not need a separate tool at all.

Parameterized jobs ('This project is parameterized') support string, multi-line string, boolean, choice, password, and file parameters. File parameters work out of the box in freestyle jobs, while Pipelines need the File Parameters plugin. To run a job on a specific machine, you connect that machine as an agent and restrict the job with a label. And to let non-admins only start jobs, you install the Matrix Authorization Strategy or Role-based Strategy plugin and grant Job/Read and Job/Build.

If you already maintain a Jenkins server and agents, setting up a parameterized job is often simpler than bringing in a new tool.

Button

Button (https://button.bitgate.dev) is for a different setup: you have a script working on your own computer (macOS, Linux, or Windows), and you want colleagues to run it from a web form without you standing up a server. Any program works - Python, Node, R, PowerShell, shell scripts, compiled binaries.

Jobs run on the creator's computer, never in Button's cloud. Button's servers relay the form values and files between the browser and that computer. Because it runs on your machine, your computer has to be on and online when someone uses a tool; tool pages show Ready, Busy, or Offline.

The runner only executes the exact command the creator approved on that computer (pinned by hash). Every form value is passed to the program as its own argument, with no shell, and a value can't start with "-". If the creator changes a tool, people have to confirm the new version before running it. Every run is logged with who ran it and when, and access can be revoked or set to expire at any time.

Limits: one computer (runner) per workspace, one run at a time, up to 30 minutes per run and 1 MB of logs, and files up to 25 MB each with up to 8 files and 100 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. Recipients never pay, and downgrading deletes nothing.

If you need an always-on server that doesn't depend on your workstation being awake, or if you need LDAP logins, self-hosting, or files larger than 25 MB, Button isn't the right fit - stick with Script Server, Rundeck, or Windmill.

How to put a script on Button

Before setting up Button, make sure your script is ready to run from a form:

  1. Make the script take its inputs as command-line arguments (argparse in Python, commandArgs() in R, a param() block in PowerShell, $1 and $2 in bash) instead of hard-coded paths or interactive prompts.
  2. 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.
  3. Keep fixed flags as part of the command you approve; colleagues will only supply the values for the form fields.

Once the script takes arguments cleanly, publishing it takes a few steps:

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

FAQ

Is Script Server still maintained?

Script Server's latest tagged release is 1.18.0 from August 2023, though the main branch on GitHub still gets commits. It remains open source under the Apache 2.0 license.

Does OliveTin support file uploads like Script Server?

No, OliveTin does not have a file upload argument. A feature request for attachments as input (issue #939) has been open since March 2026.

Where do scripts run when using Button?

Jobs run on the creator's own computer, never in Button's cloud, while Button's servers relay the form values and files between the browser and that computer. Because of that, the creator's computer has to be on and online for colleagues to run a tool.

How can I let non-admins run scripts in Jenkins without giving them full access?

Install the Matrix Authorization Strategy or Role-based Strategy plugin in Jenkins. Then grant those users only the Job/Read and Job/Build permissions.

Do colleagues have to pay or install anything to run a Button tool?

No. Colleagues open the link from their invite email, sign in with Google or a one-time email code, fill in the form, and download the results in their browser without installing anything or paying.

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.