UnSaaS your Stack with Self-hosted Cloud IDEs

By Dmitry TrifonovApril 15, 2025
cloudaideveloper-productivitycloudriftdeveloper-tools

And save money on cloud GPUs for AI development

I am a PC enthusiast and use it as much as possible. However, with the speed at which LLMs are growing in size, it is challenging to avoid the cloud for AI development.

Many good GPU-enabled SaaS options exist for remote development, like Google Colab. Yet, if you need to go beyond the free tier, the compute cost on these SaaS platforms will quickly empty your pockets. Additionally, self-hosting allows you to use your favorite tools and is the most secure option if you do it right.

Article image
JetBrains, Zed, VS Code and Jupyter Lab

Renting a GPU Server

There are plenty of places to rent GPUs, and this tutorial is valid for any machine with SSH access. I am using neuralrack.ai to test solutions in this tutorial. It provides good value, supports virtual machines, and provisions them fast.

The following article explains how to rent a GPU on NeuralRack and other CloudRift-based GPU rental services.

How to Rent a GPU-enabled Machine for AI Development

Jupyter Lab — Plain and Simple

Jupyter Lab is my go-to option for short experiments. It is the simplest IDE and the easiest to use if you use Python and are familiar with Jupyter. It contains everything needed for short experiments: a file explorer, a command line, and the Jupyter Notebook.

Install the necessary system dependencies after starting a VM and connecting to it.

sudo apt update
sudo apt install python3-venv

Create a virtual environment.

python3 -m venv venv
source venv/bin/activate

Install Jupyter Lab and start it. Replace JUPYTER_TOKEN with your secret.

pip install jupyterlab
JUPYTER_TOKEN=ide-tutorial jupyter lab --no-browser --port=8080 --ip=0.0.0.0

You need to add the — ip=0.0.0.0 flag to be able to access the notebook on a remote server externally since, by default, all access outside is disabled. The IDE will be available at http://{node-ip-address}:8080/. Specify JUPYTER_TOKEN when prompted to log in.

Article image
Jupyter Lab hosted on neuralrack.ai

VS Code — Most Versatile

VS Code is convenient if you need to do more serious development work. It contains a debugger. It supports many languages. The command line and file explorer are also available, along with a gazillion features you probably won’t need.

Install the code-server on a remote machine and run it using the following command.

curl -fsSL https://code-server.dev/install.sh | sh
PASSWORD=ide-tutorial code-server --bind-addr 0.0.0.0:8080

Don’t forget to substitute the password with your desired password. The IDE will be available at http://{node-ip-address}:8080/.

Article image
VS Code hosted on neuralrack.ai via code-server

JetBrains — Neat Features

I am a fan of JetBrains and use it for my local development. JetBrains takes a different approach from the aforementioned code editors. Instead of starting a remote IDE, your local IDE will communicate with the remote server. Thus, it feels like using your local IDE. Additionally, it offers nice features like the ability to clone the repository on a remote machine using your local SSH agent for authentication.

At the time of this writing, the JetBrains Gateway is in Beta. Many features were not working as expected in PyCharm or RustRover (testing on Ubuntu 22.04). Hopefully, the situation will improve over time.

To start, open any JetBrains IDE (update to the latest version) and select File -> Remote Development. You can also do it without installing JetBrains IDE via JetBrains Gateway.

Article image

Click “New Connection” and specify riftuser as the username and a node IP address as the Host.

Article image

On the next screen, choose the IDE you want to use and specify ~ as the Project directory.

Article image

IDE will take some time to download and configure. Afterwards, you can use it as your local one.

Article image
PyCharm running on a remote server on neuralrack.ai
PyCharm has another, more mature feature for remote development called a remote interpreter. To use it, you go to Settings -> Python Interpreter -> Add Interpreter -> On SSH and configure the connection similarly. It will synchronize your code with a remote server and run your app remotely. It is a good option if you have a good symmetric internet connection. Otherwise, the experience might be sluggish, and you will need to configure directories for synchronization to avoid uploading heavy directories like Python virtual environment.
Article image
Using remote interpreter feature in JetBrains IDE

Zed — Fast and Lean

I just learned about Zed and was quite impressed. The installation and remote access were a breeze, and it is also the most responsive of the tested IDEs. Like JetBrains, Zed is a local editor that communicates with the remote server. So, install Zed locally.

After installation, to connect to a remote server, click File -> Open Remote -> Connect New Server and specify the SSH command.

Article image
Connecting to a remote server using Zed

That’s it. Afterward, you would typically clone your repository using an integrated command line, and you’re all set.

Despite its simplicity, Zed is a niche product at the moment. You often need to use the command line to edit config files in Zed. As of today, the team has yet to add Build and Debug features to Zed. However, if you’re comfortable doing that, Zed might be the best option for remote development. The IDE comes with an AI assistant and all the modern features, like support for MCP servers.

Article image
Zed working with a remote server on neuralrack.ai

Conclusion

My recommendation for self-hosted cloud editors as of April 2025:

  • Jupyter Lab is best for simple Python projects if you’re familiar with Jupyter.
  • VS Code will handle most programming tasks well. It is the only tested editor with a properly working Build and Debug feature.
  • Zed is the best option if you’re proficient with the command line. It is easy to set up, fast, and has modern AI and collaborative features. However, it doesn’t have Build and Debug features.
  • JetBrains Gateway is in Beta and difficult to recommend at the moment. However, it has great potential due to its neat features that seamlessly blend local and remote environments.

Take a look at this list if you want to explore more options.

The IDE choice is personal, so choose the one you’re most familiar with and enjoy working with. Happy coding!


UnSaaS your Stack with Self-hosted Cloud IDEs was originally published in Nerd For Tech on Medium, where people are continuing the conversation by highlighting and responding to this story.