-
Notifications
You must be signed in to change notification settings - Fork 6.2k
Coder v2: Mange multiple workspaces, IDEs, and users #5140
-
We're building on an open-source project to manage many remote workspaces. Edit: It is now live on https://github.com/coder/coder
Features:
- Develop over SSH, VS Code Remote, Jetbrains, Jupyter, and code-server
- Create templates for different types of workspaces, share with multiple users
- Onboard users. Users can create multiple workspaces
- Provision environments on VMs, Kubernetes, Docker, AWS, Windows, (anything on Terraform)
- Auto shutdown (or delete) workspaces when they are not in use
- Self-hosted (just like code-server)
The project is still early and feedback is welcome. Feel free to say hi on Discord and share your use cases.
Beta Was this translation helpful? Give feedback.
All reactions
-
😄 1 -
🎉 2 -
❤️ 1 -
🚀 34 -
👀 22
Replies: 8 comments 41 replies
-
Feel free to comment here if you have any questions too. Here's another example that provisions multiple containers as a "workspace" for microservice development:
Beta Was this translation helpful? Give feedback.
All reactions
-
Beta Was this translation helpful? Give feedback.
All reactions
-
Congratulations on the new project announcement!
Small nitpick: t3.medium
is listed as having (4 cores, 4 GB of RAM)
in the "Create a personalized workspace" section, while it should be listed as having (2 cores, 4 GB of RAM)
.
Beta Was this translation helpful? Give feedback.
All reactions
-
👍 1
-
Yikes, good find! I'll update that right away.
Beta Was this translation helpful? Give feedback.
All reactions
-
Something interesting is those values are editable by the admin, not a Coder-specific feature. So the admin can decide what resources/infrastructure the developers can spin up.
We're still looking at ways to make that more close
Beta Was this translation helpful? Give feedback.
All reactions
-
Does that imply easy extensibility regarding various hosting providers (niche cloud providers, private cloud)? That would be really interesting to see.
Beta Was this translation helpful? Give feedback.
All reactions
-
Correct - workspaces are defined via TF so anything in the Terraform registry can be automatically be provisioned by Coder.
With that being said, non-supported cloud providers can also be used as long as you start the Coder agent on the resource with a valid token :)
Beta Was this translation helpful? Give feedback.
All reactions
-
👀 1
-
Does that imply easy extensibility regarding various hosting providers (niche cloud providers, private cloud)? That would be really interesting to see.
Beta Was this translation helpful? Give feedback.
All reactions
-
Congratulations on the new announcement! 🖤
Beta Was this translation helpful? Give feedback.
All reactions
-
❤️ 1
-
How can you install Coder Server on a Raspberry Pi? If that's possible, I can use my own dev machines than pay for GCP.
Beta Was this translation helpful? Give feedback.
All reactions
-
Yep! You could do it via Kubernetes or manually running the agent on each pi :)
Beta Was this translation helpful? Give feedback.
All reactions
-
Well, I have one 8 GB Pi4B, so if I gain early access, I can run the Coder agent via that and access it on Windows 7 via Coder CLI?
Beta Was this translation helpful? Give feedback.
All reactions
-
Correct. I have a few raspberry pis so I'll see if I can get a demo up in the docs soon
Beta Was this translation helpful? Give feedback.
All reactions
-
10-4. I gave my name for joining!
Beta Was this translation helpful? Give feedback.
All reactions
-
Can I install it in npm?
Beta Was this translation helpful? Give feedback.
All reactions
-
Yep, that's what was given on the documentation. There would be no stupid comments like "It doesn't work on my dumb Linux installation."(could be me haha) Rather, it works universally, so A+ to use that to regulate packages, apps, etc.
./install: sorry, there is no binary distribution of Nix for your platform
Beta Was this translation helpful? Give feedback.
All reactions
-
W. T. H.
Maybe you have to ask @bpmct about this. It could be possible to build on FreeBSD if the packages are good and system requirements are met, and Nix is a universal package manager, seems like it isn't made for FreeBSD yet. I think there could be more workarounds on this.
Beta Was this translation helpful? Give feedback.
All reactions
-
Maybe you have to ask @bpmct about this. It could be possible to build on FreeBSD if the packages are good and system requirements are met, and Nix is a universal package manager, seems like it isn't made for FreeBSD yet. I think there could be more workarounds on this.
Who's requirements are being met?
Beta Was this translation helpful? Give feedback.
All reactions
-
The system requirements. If it meets a set requirement of RAM, storage and CPU cores, it can run on your system.
Beta Was this translation helpful? Give feedback.
All reactions
-
The system requirements. If it meets a set requirement of RAM, storage and CPU cores, it can run on your system.
coder/coder#4516
Unfortunately, freebsd is not currently supported
Beta Was this translation helpful? Give feedback.
All reactions
This comment was marked as spam.
This comment was marked as spam.
-
Possible to run 1 instance of code-server
and edit projects like in GitHub, i.e. just pressing the .
?
- Imagine my development server is hosted on https://project1.com
- I can start working on it by going into https://project1.com/vscode
- Eventually it would be wonderful if we could separate developers using domains, e.g. https://developer1.project1.com, https://developer2.project1.com, https://developer3.project2.com all under 1 instance of apache and code-server
I'm not sure what this feature is called, wasn't able to find anything useful with "edit like github"
Beta Was this translation helpful? Give feedback.
All reactions
-
👍 1
-
@code-asher thanks for the explanation, now I understand the design concerns. And I gave it some thought.
- I agree adding usernames can be a rabbit hole, because the next request is probably permission management, especially when my request started out asking how I can assign different folders to different developers.
- I'm actually still undecided whether to have single instance, or multiple. Each developer would need to run PHP XDebug which might be impossible under single instance.
- But I'm curious, why would developers require different levels of OS access? The ability to deploy? Perhaps we can run code-server with the most basic developer permissions, those who need higher access would have to
su
from the terminal
Thank you.
Beta Was this translation helpful? Give feedback.
All reactions
-
Alternatively, is there a way to start code-server instances on demand when loading via URL? Ultimately my concern with multiple instances boils down to optimizing server resources.
Beta Was this translation helpful? Give feedback.
All reactions
-
Good point on the permissions! That could balloon fast. We could try to mitigate that by using native permissions and users but that might only work well on Linux.
On point 3 do you mean creating multiple users on the system vs a single user? It could be nice to have a user on the system for each developer to prevent them from accessing each other's files, settings, processes, etc. That would also let you control who can use sudo
using the sudoers file. When you start code-server with each user it would naturally inherit their permissions.
Is the idle resource usage of code-server pretty high? I think we only start Code when a request is made so I would expect it to be fairly low but we might have a bug there. When disconnected Code should stop extensions and eventually stop terminals so resource usage should be fairly low there as well but again there could be bugs or maybe it is not well optimized. We might also have leaks somewhere.
If you want to start code-server itself on demand I think you will have to write something to do that. I have seen some people around here say they wrote their own but no one has shared code yet as far as I remember.
Beta Was this translation helpful? Give feedback.
All reactions
-
Is there a way to run code-server
as dev1, but prevent dev1 from mucking around with their config.yaml
?
There are certain functions like --disable-file-downloads
that I wish to enforce
Beta Was this translation helpful? Give feedback.
All reactions
-
Cross-posting in case someone finds this and wants to know the answer: #5856
Beta Was this translation helpful? Give feedback.
All reactions
-
👍 1
-
Feel free to say hi on Discord
What's funny is the README says join us on Slack 😂
Beta Was this translation helpful? Give feedback.
All reactions
-
Good point, we should probably remove that. I think the Slack channel is more or less dead. I never check it, at least. 😛 I am not on Discord much either though.
Beta Was this translation helpful? Give feedback.