Hello everyone, I’m looking for a web based IDE that can create isolated development environments as you could do in Koding or with VSCode with the “Remote” extension.
My use case is quite simple, I want to play around with different projects and languages without installing anything directly on my machine (docker containers FTW) to reduce conflicts between packages and garbage. The “web based” requirement is because I have a server with plenty of capacity to take care of this task and I’d like to keep as clean as possible my PC.
I’ve tried already code server but I cannot install the “Remote” extension to have it create containers on demand.
Any suggestion or help is more than welcome! :D
Edit: Thanks everyone for your great suggestions and idea, much appreciated! It took (and it’s taking) me some time to explore the options you mentioned and the most aligned with my needs is Coder - thanks @cooopsspace@infosec.pub ) ! Basically with it I can create ephemeral development environments with the toolchain I want that contains instances of code-server.
If all you want is to experiment without cluttering you local system, then the nix package manager is probably a better idea that self-hosting a web based IDE. It can be installed on any Linux (or Mac) and once installed works without extra privileges. As
nix
isolates all dependencies by design, it can be used to create pristine, project specific dev environments without impacting or relying on the rest of the system.There are plenty of blog posts out there explaining the concepts and how to get started, eg. https://monospacedmonologues.com/2022/06/throwaway-development-environments-with-nix/
Fantastic suggestion and thanks for the post, very clear! I played with NixOS some time ago but I totally missed this capability. Fits quite well my use case, thanks! And I found this extension that could make things easier: https://marketplace.visualstudio.com/items?itemName=arrterian.nix-env-selector
Another thing you can look into is apptainer/singularity. Basically portable container binaries. Executing the binary automatically runs a program/drops you into a shell inside the container with your $HOME mounted inside. Stuff like cuda also work as long as your host system has appropriate drivers.
You can also port docker containers to apptainer directly via cli.
Something like this?
https://code.visualstudio.com/docs/remote/vscode-server
https://hub.docker.com/r/ahmadnassri/vscode-server/#!
You can try it on github for free using the “.” Key of your hardware keyboard in any git to open it in a Microsoft hosted web instance of VS code. Works even on iPad.
Edit: Oh dear, i guess you meant this by „code server“ sorry did not read to the end/and the beginning not properly, lol.
Thanks for the reply, actually I wasn’t aware of that functionality in Github, that’s fantastic! If only I could have something similar selfhosted… :)
You can self host VS Code.
Yes, I’ve tried already that option (code server) and unfortunately I cannot use the “Remote” / “Dev Containers” extension with it. If you know how to do that, please let me know.
deleted by creator
You’re looking for Coder.
You can even set up your DE with the bits required to build your apps.
Thanks a lot, great suggestion! I’ll play around with it and let you know :)
This looks interesting indeed, but there is some unclarity on which features are behind the enterprise edition paywall. If you try it out please let us know what your impression is.
sshfs and mount the remote fs locally. then you can use any editor/IDE you like.
Thanks but that would not fit my case as I’d have to install locally all the toolchain. As much as possible I’d like to have everything on a remote server.
I’m not sure if any of this information is useful, code-server doesn’t support installing the Remote-SSH extension. There are alternative methods to connect to environments, I personally think Remote-SSH is ideal.
Thanks, that was an option I had on table, just wanted to check if there was a “simpler” solution
Another alternative approach could be Distrobox, where you can set up isolated environments for your specific needs.
Couldn’t you just use a container or a VM with ssh?
deleted by creator
Might be worth a look.
I had a look at it but it doesn’t seem to be able to create isolated dev environments on its own. Is it the case?