Code Server (Vs code online)
-
put one together https://github.com/c0decafe/cloudron-codeserver
-
-
Would be good to have .net I think so one can work with the language, no? Or is that superfluous??
-
@girish Yea I like @c0decafe's as it's definitely cleaner.
Mine installs some basic developer environments like powershell, .net, node, etc so actual code can be compiled and tested in-app. IDK if it should be included with @c0decafe's, but I think it is a QOL thing.
Edit: Now I remember why I built it over the LAMP app - so PHP apps can be developed in full (including MySQL). Could be cleaned up and tbh I haven't maintained it so it's probably better to use @c0decafe's anyway.
So his repo gets an upvote from me!
-
-
Yes, I updated the package with (un)license, impermanent home dir and a few other tweaks.
As for language support, I can't think of any clean implementation within the current scope.
As a matter of fact, my primary use case for this package is, counterintuitively, not development, but rather a power editor with extensions, ie: markdown editor with
git
integration,dendron
, etc..The only way to make it scale for actual software dev within the scope of a
cloudron
app would be leveraging (abusing?) the docker addon.The best candidate is
coder
, from the same team that maintainscode-server
: https://github.com/coder/coderYou can find a poc at https://github.com/c0decafe/cloudron-coder, but actually starting containers doesn't work yet.
Upstream
VSCode
also has a nifty devcontainers extension to do just that:- https://code.visualstudio.com/docs/devcontainers/containers
- https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers
It is however unfortunately not supported on web platforms right now:
Another alternative currently available on
cloudron
is theGitLab
webide, but:- No extensions support (yet)
https://gitlab.com/gitlab-org/gitlab/-/issues/355092 - No run/debug support (yet)
- Requires manually installed remote runtimes
https://docs.gitlab.com/ee/user/project/remote_development/
-
@c0decafe I don't know vscode that well enough. But does it allow connecting an external server to launch docker containers ? (instead of using the docker addon). If so, that's the ideal setup imo. Trying to use cloudron's internal docker network to launch app dev containters will bomb spectacularly at some point
-
-
-
@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.