VS Code in the Browser for Everyone
gitpod.ioPretty cool project. I am wondering how it is different from code-server [1]?
Johannes here from Gitpod. Shared some background about differences on Twitter already: https://twitter.com/jolandgraf/status/1442850063953313805?s=...
Essentially, we run nightly builds at OpenVSCode Server making it as upstream to VS Code as possible. In contrast to other forks the whole scope of the project is to add a minimal set of changes (specifics about what we added https://github.com/gitpod-io/openvscode-server/blob/main/doc...)
The architecture we use powers both Gitpod and GitHub Codespaces. Several of the devs and organisations that have asked for our implementation & now have adopted OpenVSCode Server referenced the following issue at Code-Server (https://github.com/cdr/code-server/issues/3835).
Hey! Thanks for the explanation, but I don’t fully understand the two projects. Is this built with code-server, or do the server parts of Gitpod come from Microsoft? Where should I submit PRs?
Hi, Mike from Gitpod here. This project does not use code-server. It is instead a very lightweight server added to the official open source VS Code repo from Microsoft.
We documented this in more detail in the "Source Code Organization" chapter at https://github.com/gitpod-io/openvscode-server/blob/main/doc....
As to where to submit PRs:
- Anything to do with running VS Code in a server context: gitpod-io/openvscode-server
- Anything else related to VS Code: microsoft/vscode
We have no intention of changing VS Code in any way or to add additional features to VS Code itself.
I looked into this when setting up a new machine. Well, not exactly openvscode but code-server. I have the same questions I had when investigating that:
- with docker, how would you install eg. node and go binaries?
- with docker, how would you set up some dotfiles?
- how do you map remote ports to your local machine?
I ended up going with VSCode Remote (SSH), and am loving it. But I still think I'd be happier with a pure browser experience.
I have a similar setup, I use Caprover as a nicer way to manage docker. You can build whatever you want into the dockerfile then just map the user directory to a local one and port forward where needed.
If you want to run a web app through a domain with SSL then it's trivial to setup a nginx proxy container.
It takes minutes to spin up a new dev environment with everything setup out of the box including environment variables and access tokens.
Could you say more about your set up? I'm looking for something similar.
So the goal was running my development machine remotely.
I didn't want to clog up my server with a development toolchain, so I first tried VSCode Remote (Docker). It's what I would prefer, yet I never found managing a development environment in Docker comfortable. My dev machine bootstrap is scripted, but trying out new software and mapping ports on a whim don't lend themselves well.
Currently I am using VSCode Remote (SSH) running in a virtual machine. This keeps the development environment separate from the server, and any random tools I need to install are still there after any restart.
The VM was just Ubuntu Server with sshd. VSCode Remote (SSH) is great. Installing the extension on a client machine sets up the server on the machine you connect to. Ports can be mapped from the server right in VSCode (it can even automatically detect them and mapped them for you). Terminals work as expected, mouse emulation works.
I assume something like Pylance is still off-limits based on how Microsoft has licensed it?
Is it for projects which are not hosted on github, which can be accessed using github.dev?
github.dev is solely the VSCode frontend/editor without access to any compute. OpenVSCode Server allows you to run VS Code on a remote machine and access it with a thin client through the browser. Unlike github.dev you get full access to the underlying OS and can run tests, compilation, install dependencies etc.
Hey nice! Can multiple people edit the files together? How is concurrency handled?
Collaboration is one thing I would really appreciate from an online IDE. VSCode Liveshare addon is the best experience for collaborative coding I’ve found so far.
How is it different to gitpod?
That is nearly word for word one of the headers in the blog post.
> How is this different to Gitpod?
> If you want one-click, fully automated developer environments that give yourself and your team an unparalleled productivity boost try Gitpod.
> If you have a machine somewhere which you would like to access with VS Code through a browser, check out OpenVSCode Server.
Seems you can run it on your own hardware
Hi Johannes here from Gitpod. Copying the answer from our launch post: https://www.gitpod.io/blog/openvscode-server-launch#how-is-t...
Gitpod is all about provisioning and orchestrating ephemeral developer environments (think about it as a resource efficient and powerful orchestration platform for your dev envs).An IDE is just one building block of a working cloud based developer environment, in addition to the operating system, databases, compilers and all the other tools you need to be productive. At Gitpod we want to support the IDE or editor you like best, and providing VS Code through the web browser is just one possibility. Alternatively, you can access your Gitpod workspaces through SSH, local VS Code and soon your favorite Jetbrains IDEs.
If you have a machine somewhere which you would like to access with VS Code through a browser, check out OpenVSCode Server. If you need control over your infrastructure and would like the orchestration capabilities that Gitpod offer you can self host Gitpod.
> and soon your favorite Jetbrains IDEs.
Do you have a mailing list I can subscribe to for this? Very interested.
Best way is to signup at https://www.gitpod.io/#get-started and allow changelog emails https://gitpod.io/notifications.
We are working actively with the team at Jetbrains to offer a great DevX integrating with their remote development implementation(https://youtrack.jetbrains.com/issue/IDEA-226455).