When you’re developing software, you need to access all kinds of resources, including package registries, container image registries, databases, and other network services. You want to work with those services securely and with low latency, wherever they are, even if they’re behind a firewall or don’t have a public IP address. Most importantly, though, you need to be able to access your coworkers: when you need a code review, or you’re pair programming, you want to be able to easily share your development environment with others so they can see what you’re working on. From a development workspace in Coder, you can access resources you need for development, and share what you’re working with your coworkers with Tailscale.
Using Tailscale with Coder
Coder is a developer workspace platform: it lets you develop code in a remote environment, such as a VM running on a public cloud provider. In Coder, you define your developer workspace as a Dockerfile, and installing Tailscale means that you can have bidirectional access between your developer workspace and other devices on your tailnet. Using Tailscale with Coder means that you benefit from Tailscale’s robust, fine-grained access controls and observability with the services feature, while also being able to work with the editor of your choice, whether you’re using your iPad at a coffee shop or your desktop at home.
To do so, you need to add tailscaled to your Dockerfile, ensure that Tailscale’s persistent state is stored in the workspace’s persistent home volume, and enable userspace networking. If you want to be able to have outbound connections, you also need to configure Tailscale as either a SOCKS5 or HTTP proxy. See the instructions in Coder’s or Tailscale’s docs.
So, what can you do with Tailscale in Coder?
- Share a staged resource with a colleague, as part of a review
- Access a cloud or on-prem resource, like a production database
- Pair program
- Access a package registry
- Complete a coding interview
Tailscale also works with code-server
Coder also maintains code-server, which is an open-source project for running VSCode in your browser. Tailscale works with code-server too!
A developer over at Render set up code-server to run VSCode locally, and using Tailscale, can connect to their private SSH server via a subnet router:
I’m feeling good. I have VS Code running remotely within a secure private network and am connecting to it using a secure protocol. All my extensions and config are there.
To connect to your tailnet from a Coder developer workspace, follow the instructions in Coder’s docs.