Code Server (Vs code online)
-
wrote on Apr 19, 2021, 10:47 PM last edited by
The other option here is to use something like Sysbox to enable DockerInDocker (DinD) type functionality, which can then separate and isolate the addon services needed for dev/test in a nested way, keeping the app lean.
-
The other option here is to use something like Sysbox to enable DockerInDocker (DinD) type functionality, which can then separate and isolate the addon services needed for dev/test in a nested way, keeping the app lean.
-
wrote on Apr 20, 2021, 3:29 PM last edited by infogulch Apr 20, 2021, 3:44 PM
I think we should collaborate on a minimal base docker image that only contains the installation of code-server, and then design a solution to allow adding dev dependencies on top of it as required by each end-user.
Say, first lift all the code-server-specific improvements from murgero's image into dswd's image and publish it at
cloudron/code-server-base
. Then murgero's image starts withFROM cloudron/code-server-base
and adds their unique dev dependencies and publishes it separately. The key will be improve the image build, installation, and updating process to be as smooth as the usual app install process. (The cli is great for cloudron development, but kinda cumbersome for ongoing maintenance.)Based on the way code-server is designed I doubt it could ever be a multi-user app. There is some discussion on code-server multi-tenancy on Setting up code-server for multi-tenancy #792. In summary, it doesn't seem viable and the discussion quickly shifts towards how to set up and manage a container-per-user design, which is an area that I think Cloudron could add a lot of value.
Perhaps both of these problems could be solved by creating a custom app that uses the cloudron api to expose an easier way to spin up code-server apps for users on demand, using the images designated by the admin.
code-server is a good use-case for proxyAuth. I think it would be neat if we could forward some path to a port inside the container to allow users to hit a dev web server running inside.
-
I think we should collaborate on a minimal base docker image that only contains the installation of code-server, and then design a solution to allow adding dev dependencies on top of it as required by each end-user.
Say, first lift all the code-server-specific improvements from murgero's image into dswd's image and publish it at
cloudron/code-server-base
. Then murgero's image starts withFROM cloudron/code-server-base
and adds their unique dev dependencies and publishes it separately. The key will be improve the image build, installation, and updating process to be as smooth as the usual app install process. (The cli is great for cloudron development, but kinda cumbersome for ongoing maintenance.)Based on the way code-server is designed I doubt it could ever be a multi-user app. There is some discussion on code-server multi-tenancy on Setting up code-server for multi-tenancy #792. In summary, it doesn't seem viable and the discussion quickly shifts towards how to set up and manage a container-per-user design, which is an area that I think Cloudron could add a lot of value.
Perhaps both of these problems could be solved by creating a custom app that uses the cloudron api to expose an easier way to spin up code-server apps for users on demand, using the images designated by the admin.
code-server is a good use-case for proxyAuth. I think it would be neat if we could forward some path to a port inside the container to allow users to hit a dev web server running inside.
wrote on Apr 20, 2021, 5:33 PM last edited by@infogulch
My current code already uses proxyAuth and adds TCP and UDP ports for dev that you can freely assign.
Please tell me what you think is missing and I will add it. -
I think we should collaborate on a minimal base docker image that only contains the installation of code-server, and then design a solution to allow adding dev dependencies on top of it as required by each end-user.
Say, first lift all the code-server-specific improvements from murgero's image into dswd's image and publish it at
cloudron/code-server-base
. Then murgero's image starts withFROM cloudron/code-server-base
and adds their unique dev dependencies and publishes it separately. The key will be improve the image build, installation, and updating process to be as smooth as the usual app install process. (The cli is great for cloudron development, but kinda cumbersome for ongoing maintenance.)Based on the way code-server is designed I doubt it could ever be a multi-user app. There is some discussion on code-server multi-tenancy on Setting up code-server for multi-tenancy #792. In summary, it doesn't seem viable and the discussion quickly shifts towards how to set up and manage a container-per-user design, which is an area that I think Cloudron could add a lot of value.
Perhaps both of these problems could be solved by creating a custom app that uses the cloudron api to expose an easier way to spin up code-server apps for users on demand, using the images designated by the admin.
code-server is a good use-case for proxyAuth. I think it would be neat if we could forward some path to a port inside the container to allow users to hit a dev web server running inside.
@infogulch said in Code Server (Vs code online):
I think it would be neat if we could forward some path to a port inside the container to allow users to hit a dev web server running inside.
code-server natively supports this already, just simply logging in and then browsing to
https://fqdn-of-app/proxy/portNumber
example:https://vscode.example.com/proxy/8080
would put you on port 8080 inside the app. So if you had an app or something running on that port, it's http data would be displayed like normal. -
@infogulch said in Code Server (Vs code online):
I think it would be neat if we could forward some path to a port inside the container to allow users to hit a dev web server running inside.
code-server natively supports this already, just simply logging in and then browsing to
https://fqdn-of-app/proxy/portNumber
example:https://vscode.example.com/proxy/8080
would put you on port 8080 inside the app. So if you had an app or something running on that port, it's http data would be displayed like normal.wrote on Apr 20, 2021, 10:49 PM last edited by@murgero said in Code Server (Vs code online):
code-server natively supports this already ...
https://fqdn-of-app/proxy/portNumber
Oh neat, I'm glad they landed on that, that's a good solution. Perhaps a proxyAuth implementation should exclude the proxy path with something like
"proxyAuth": { "path": "!/proxy" }
.Perhaps this is a bit to early to worry about, but at some point we might consider restricting the app proxy's access to cloudron cookies with domain or path parameters.
-
@murgero @dswd what are the extra packages that are pre-installed? If it's not too big, maybe we can compromise and just install it all in one. It's more important to be useful to more number people than be minimal (of course, everything has a limit..).
I wonder if the right approach here is something like JupyterHub. What that project does is to have a "workspace manager" with a login screen. When logged in, it spins up a new "notebook docker container" for each user. This way the user can install whatever packages they want in that docker image. See https://github.com/jupyterhub/jupyterhub . I guess in our case if the size is limiting, maybe we should write a VsCodeHub which when logged in, spins off a vs code container for each user. This makes the app properly multi-user.
-
@murgero @dswd what are the extra packages that are pre-installed? If it's not too big, maybe we can compromise and just install it all in one. It's more important to be useful to more number people than be minimal (of course, everything has a limit..).
I wonder if the right approach here is something like JupyterHub. What that project does is to have a "workspace manager" with a login screen. When logged in, it spins up a new "notebook docker container" for each user. This way the user can install whatever packages they want in that docker image. See https://github.com/jupyterhub/jupyterhub . I guess in our case if the size is limiting, maybe we should write a VsCodeHub which when logged in, spins off a vs code container for each user. This makes the app properly multi-user.
My package includes a ton of extra packages to cover the most popular programming and scripting choices. (Some are actually already in the Cloudron base image, which I use.)
- GOLANG
- PHP7.4 (PHP8.0 will be included soon!)
- Python
- PowerShell
- DotNet Core (C#, VB.NET, etc) (.NET Full will be included soon as well since full supports Linux now I believe)
- R
- R-lang
- NodeJS (Updated to latest)
I am probably missing a couple but I wanted to make sure a lot of the popular stuff was covered here.
-
wrote on Aug 10, 2021, 1:11 PM last edited by
Hey everyone! I just did want to ask about the current progress on this package. Is there already a roadmap for an official release in the app store? Or is this still under heavy development?
-
Hey everyone! I just did want to ask about the current progress on this package. Is there already a roadmap for an official release in the app store? Or is this still under heavy development?
-
@chilipp Currently still under development. You're more than welcome to test it out if you would like!
-
@chilipp Currently still under development. You're more than welcome to test it out if you would like!
-
@murgero thanks a lot for your work! Works like a charm
I have some suggestions for improvement. Would you prefer discussion on Github via Issues and PRs or here in this forum?
-
wrote on Sep 29, 2021, 4:34 PM last edited by
-
App Devwrote on Sep 30, 2021, 10:59 AM last edited by fbartels Sep 30, 2021, 11:02 AM
@enabl-ist was curious if this is related to "code server", but it seems to be something newly done without any relations to the existing project.
https://github.com/cdr/code-server/discussions/4267
similar discussion in the "openvscode" project https://github.com/gitpod-io/openvscode-server/discussions/99
-
@enabl-ist was curious if this is related to "code server", but it seems to be something newly done without any relations to the existing project.
https://github.com/cdr/code-server/discussions/4267
similar discussion in the "openvscode" project https://github.com/gitpod-io/openvscode-server/discussions/99
wrote on Oct 4, 2021, 7:42 AM last edited by@fbartels indeed it looks like two different projects, with (kind of) the same goal... What I read is that the gitpod version is more simplified in features. I haven't had time to test it myself, just wanted to let the community know of this similar project.
-
Microsoft has joined the game as well https://code.visualstudio.com/blogs/2021/10/20/vscode-dev
-
wrote on Jul 25, 2022, 11:11 PM last edited by
@murgero jw if you still have a repo for this as the original link is dead =/
-
@murgero jw if you still have a repo for this as the original link is dead =/
App Devwrote on Jul 27, 2022, 1:12 AM last edited by murgero Jul 27, 2022, 1:13 AM@plusone-nick my github has a repo, status is unknown as it's been a long time since I've touched it
https://github.com/mitchellurgero
https://github.com/mitchellurgero/cloudron-vscode-package
Note: this uses an old version of vscode and needs to be updated.