Skip to main content
Tailscale lets you connect a Novita sandbox to your private tailnet, so the sandbox can securely reach — and be reached by — other devices on your network. Create the sandbox from the tailscale template, which comes with Tailscale pre-installed and ready to use. This guide covers three ways to connect a sandbox to your tailnet:
  • Browser Login — run tailscale up, open the printed login URL in your browser to authorize the sandbox, and it joins your tailnet. Best for interactive, one-off setups.
  • Tailscale auth key — connect non-interactively with a pre-generated auth key. Best for automated scripts, CI/CD pipelines, or any scenario without manual browser interaction.
  • Manual installation — install Tailscale and apply the required workaround yourself when starting from a template other than tailscale (e.g. base).

Prerequisites

  • pip install novita-sandbox (or npm i novita-sandbox)
  • export NOVITA_API_KEY=...
  • A Tailscale account to authorize the login

Browser Login

Run tailscale up in the foreground with no timeout. It blocks and prints a login URL; open that URL in your browser to authorize, and the command returns once the sandbox is connected. Then read back the assigned Tailscale IP.

Tailscale auth key

Using an auth key provides a non-interactive way to connect your Novita sandbox to Tailscale, making it suitable for automated scripts, CI/CD pipelines, or any scenario where manual browser interaction is not available.
  1. Access your Tailscale admin console.
  2. Click Add device and select Linux server.
  3. Apply the configuration and click Generate install script.
This will generate a script that you can use to install Tailscale and connect to the Tailscale network:
CLI
Run that command inside the sandbox from the SDK. Because the auth key logs in non-interactively, no browser step is required.

Manually install

The tailscale template already includes Tailscale and the workaround described below, so Browser Login works out of the box. If you start from another template (e.g. base), you need to install Tailscale and apply the workaround yourself before tailscale up will work.
Why the extra steps? A sandbox’s eth0 uses a link-local address (169.254.x.x). Tailscale’s isUsableV4 check treats link-local addresses as “not usable for internet” — except in AWS Lambda / Azure App Service environments. As a result, tailscaled reports network is down and tailscale up hangs without ever printing the login URL. The fix is to make tailscaled believe it runs in AWS Lambda by injecting four AWS_LAMBDA_* environment variables, which makes isUsableV4 accept the link-local address. See tailscale/tailscale#20496 for the related upstream issue.
Last modified on August 5, 2026