Skip to main content

Networking

Perry is designed for remote access over Tailscale. When enabled, each workspace gets a tailnet hostname and all ports are reachable directly.

Tailscale-first

  1. Add a Tailscale auth key in the Web UI (Settings > Configuration > Networking)
  2. Restart a workspace

Then access services directly:

curl http://myproject:3000
ssh workspace@myproject

See Tailscale Integration for full setup and security notes.

SSH access over Tailscale

When workspaces join your tailnet, you can SSH directly using the workspace user. SSH keys are managed on the host and synced into containers:

  • Authorized keys control which keys can SSH into workspaces.
  • Copied keys are placed in the workspace for git operations.

By default, Perry auto-authorizes host keys it finds in ~/.ssh/ and ~/.ssh/authorized_keys. You can add or scope keys with:

perry ssh list
perry ssh authorize ~/.ssh/id_ed25519.pub
perry ssh copy ~/.ssh/id_ed25519 -w myproject

Port forwarding (fallback)

If you are not using Tailscale, forward ports from the workspace to your local machine.

Configure persistent ports:

perry ports myproject 3000 5173
perry proxy myproject

One-time forward:

perry proxy myproject 8080:3000

Notes:

  • For local agents, perry proxy connects directly to the container IP.
  • For remote agents, perry proxy uses SSH tunneling through the workspace SSH port.