Code Server (Vs code online)
-
-
@girish not tried it yet because it appears to not support added languages like nodejs.
I'm testing a self-built package based on openvscode-server with added nodejs and Flutter.
If I get it working with authentication, I will look at packaging for Cloudron.
But interested in any updates @c0decafe can give us. -
Got custom openvscode-server with added node and flutter as a native Docker deployment. Not so difficult.
Hard part is to work out how to package it for Cloudron. <scratches head> -
@timconsidine it's only flutter and the app code that's missing from the base image, no?
-
While researching, I tried the linuxserver docker for openvscode-server and it didnโt have nodejs.
But yes node is in Cloudron base so may not have to add it. -
So I built @c0decafe package for codeserver.
1st observations :
- slick (simple in a good way) Dockerfile
- flawless build and deploy
- supports php, node, python3 'out of the box' as part of Cloudron base image
- not sure if some dev tasks might need user cloudron to be part of sudo (but maybe not)
- read-only /app/code etc makes installing Flutter bit more complex : still working on it
- theme gets set nicely on first run, but lost on reinstall
- supports adding VS Code extensions : maybe not all but added one flawlessly
- no support for DinD or DooD : understand the reasons & limitations
Generally very nice package.
I would recommend being available on App Store as a good dev / editor environment.
In current scope, fairly easy to maintain for upgrades.
Definitely addresses a number of dev use cases (if not all, but that's complex in itself)Adding additional dev languages might be needed for some use cases, but that adds significantly to image size.
And maybe raises issues of maintainability of version upgrades, core package and dev addons.
So not sure how this functionality can be implemented or maintained.Depending on use case, Docker support might be an issue.
I have a custom version of openvscode-server running in Docker on another VPS, and I have been able to get DooD support by adding a volume label -v /var/run/docker.sock:/var/run/docker.sock`.Sidenote on Flutter : getting Flutter installed and available may not be too difficult.
But for a good dev environment, Flutter needs stuff like AndroidStudio, some Chrome engine and Xcode for iOS dev.
In a hosted dev environment, this is difficult/impossible.
So one probably needs a local build/compile/test environment.
But then why not do everything locally ?Despite the limitations on scope, I do think Codeserver on Cloudron would be a good addition.
Other PaaS have similar, so it might be a case of keeping some feature-equivalence with them. -
@timconsidine thanks for testing it out, will try this out at some point. Giving access to docker itself is complicated and has to be reviewed thoroughly.
-
There are plenty of use cases for Code-Server without DooD/DinD.
yes, currently used for multiple user instances on cloudron, mostly foam, some thunder, etc
As for the dev part, i solved it with hack mounting a custom external /nix into the required instances + https://devenv.sh/
nix is generally a cool architectural option for cloudron to look into imho and would love to help qualify such/the opportunity.