Scripts for setting up Steinwurf test machines. Each script installs everything a fresh machine needs so it can be reached and used for testing:
- OpenSSH server
- Tailscale, with Tailscale SSH enabled, so the machine is reachable from the tailnet
- Nix and devbox for reproducible dev environments
On a fresh Ubuntu machine, log in as your normal user and run:
wget -qO- https://raw.githubusercontent.com/steinwurf/test-machine/main/install-ubuntu.sh | sudo bashwget is preinstalled on Ubuntu; curl usually is not. If you do have curl:
curl -fsSL https://raw.githubusercontent.com/steinwurf/test-machine/main/install-ubuntu.sh | sudo bashThe script runs as root but sets up devbox for the user who invoked sudo.
It installs curl itself, so only wget is needed to get started.
When it reaches the Tailscale step, it prints a login URL and waits. Open the URL
on any other device (your laptop or phone), sign in to Tailscale and approve the
machine. The script then continues on its own. Once it finishes, it prints the
machine's Tailscale IP and an ssh command you can use from another machine on
the tailnet.
The script is idempotent, so it is safe to re-run.
Set these as environment variables before the script:
| Variable | Default | Description |
|---|---|---|
TEST_USER |
the user who ran sudo |
User to set up devbox for |
TAILSCALE_HOSTNAME |
the system hostname | Name of the machine in the tailnet |
Example:
wget -qO- https://raw.githubusercontent.com/steinwurf/test-machine/main/install-ubuntu.sh \
| sudo TEST_USER=tester TAILSCALE_HOSTNAME=lab-box-01 bashgit clone https://github.com/steinwurf/test-machine.git
cd test-machine
sudo ./install-ubuntu.sh