On-demand, cost-efficient remote development environments, nowdev

Nicolae Vartolomei · 2023/03

Screenshot of iTerm2 tmux integration and VS Code SSH extension side-by-side connected to a remote development environment

I often need Linux machines with higher performance capabilities than the virtual machines that can be run on my personal computer in order to compile large codebases (typically ClickHouse). While GitHub Codespaces is available, its power and flexibility do not meet my requirements, and I find that using Linode is a more cost-efficient option.

To manage my remote development environments on Linode, I have created a small command line utility called nowdev. This utility is designed to provide straightforward commands for starting and stopping virtual machines that have persistent volumes attached. The cost of the virtual machine time is incurred only between the start and stop commands.

 $ time nowdev start
Added config
https://cloud.linode.com/linodes/44054314
IP: 176.58.100.224
Writing ssh configuration to ~/.ssh/config_nowdev

real	0m1.771s

Once you are finished with the virtual machine, stopping it will remove the Linode/VM instance, but any persisted data will remain on the volume and not be deleted. Example:

 $ nowdev stop
Uptime: 1 hours and 42 minutes
Instance type: g6-standard-4
Cost: $0.12 (per hour: $0.06)
Instance deleted

If you are interested, it is available for download on GitHub at https://github.com/nvartolomei/nowdev.

Works great together with iTerm2 tmux Integration, Visual Studio Code Remote - SSH extension, JetBrains Remote Development.