DevHub Ephemeral dev VMs

devhub.syscallia.net

A fresh dev VM in minutes. Gone when you are done.

DevHub gives you a private Debian 13 virtual machine on demand, with Docker, a web IDE and a terminal, reachable only over the company VPN. You work in it over SSH or in the browser; it destroys itself when its time is up, and its disk is unrecoverable the moment it stops.

Getting started

Six steps from laptop to shell

The VPN is a standard Tailscale client pointed at our own coordination server. Everything else — the console, your VMs, the SSH jump host — lives behind it.

  1. Install

    Install the Tailscale client

    Use the official Tailscale client for your platform. Any current version works; nothing custom is required.

    PlatformDownload
    macOStailscale.com/download/mac
    Windowstailscale.com/download/windows
    Linuxtailscale.com/download/linux
    iOStailscale.com/download/ios
    Androidtailscale.com/download/android
  2. Join

    Join the DevHub VPN

    Point the client at our coordination server and sign in with your company account. Only members of the DevHub group are admitted.

    $ tailscale up --login-server https://vpn.devhub.syscallia.net

    A browser window opens for single sign-on. When it says the device is registered, you are on the VPN.

    In the graphical clients, use the custom coordination server option with the same URL:

    URL
    https://vpn.devhub.syscallia.net
    macOS
    Option-click the Tailscale menu bar icon → Debug → Custom Login Server → Add Account…
    Windows
    Run tailscale login --login-server https://vpn.devhub.syscallia.net in a terminal, then use the tray app as usual.
    iOS
    Account icon → Log in… → options menu → Use custom coordination server.
    Android
    Settings menu → three-dot menu → Use an alternate server.

    Your login lasts a working day; the client asks you to sign in again when it expires.

  3. Console

    Open the console

    The console is where you create, extend and destroy your VMs. It resolves only on the VPN.

    console.int.devhub.syscallia.net

    You are signed in automatically with your VPN identity. Create a VM; the console shows its ID, which you will use for SSH. Wait for the status to turn to ready.

  4. Connect

    Set up SSH with devctl

    devctl is the command-line companion of the console; install it from the internal download location shared by the platform team. Then let it issue your short-lived SSH certificate and write the SSH configuration for the jump host.

    $ devctl cert --ensure
    $ devctl ssh-config

    From then on, every VM is one hop away. Replace <vm> with the ID shown in the console:

    $ ssh <vm>.vm.int.devhub.syscallia.net

    VS Code Remote-SSH and JetBrains Gateway pick up the generated SSH configuration: connect to the same host name and they go through the jump host too. The web IDE and web terminal are linked from the VM's page in the console.

    You can also drive the lifecycle from the shell:

    $ devctl create          # new VM
    $ devctl list            # your VMs and their time left
    $ devctl extend <vm>     # up to 24h total
    $ devctl destroy <vm>    # when you are done
  5. Rules

    Know the ground rules

    Read this once

    • VMs live 10 hours by default and can be extended to 24 hours at most.
    • A VM idle for 90 minutes — no SSH session, no IDE or terminal connection, low CPU — is destroyed. You get a warning first.
    • A VM that reboots or stops is destroyed. There is no stop/start and no snapshot.
    • Nothing persists. The disk is encrypted with a key that lives only in the VM's memory; destroying the VM destroys the data.
    • VMs are private: no inbound traffic from the internet. To show something to outsiders, publish a port from the console and share the generated link.

    Push your work. Often.

  6. Help

    Get support

    Stuck at any step, or need access to the DevHub group? Reach the platform team:

    one@syscallia.com

    Include your username, the VM ID and what you tried. Nobody will ever ask you for a password or a key.