Implement an online workspace for codeberg? #272

Open
opened 1 year ago by kreyren · 4 comments
kreyren commented 1 year ago

On GitHub there is a gitpod https://gitpod.io/ and GitHub Codespaces https://github.com/features/codespaces that provide vscode-like environment with linux terminal to allow various development.

See https://gitpod.io/#https://github.com/go-gitea/gitea for a demo (requires GitHub account).

Gitpod is Open-Source on https://github.com/gitpod-io/gitpod which is just a terrible backend management for Theia https://github.com/eclipse-theia/theia which is optimized to be deployed on Kubernetes using docker workspaces that costs around 0.03~0.43USD/hour for one user on Google Kubernetes Engine GKE that provides around 100 USD for free to establish the project so theoretically if we have the community we can deploy this for free https://www.gitpod.io/self-hosted/

The issue with gitpod is that it's very limited as it's using very insane configuration of Docker that doesn't allow for a root permission https://github.com/gitpod-io/gitpod/issues/39 and VM support https://github.com/gitpod-io/gitpod/issues/1251#issuecomment-589881514 that prevents various development i.e android https://github.com/gitpod-io/gitpod/issues/1273

I was working on GitPod https://github.com/gitpod-io/gitpod/blob/52660b5ad8a1456d0c28de3833216b8971af0c38/components/image-builder/workspace-image-layer/gitpod-layer/amazon/gitpod/layer.sh#L6 so i would be happy to help you re-implement this to be integrated with Gitea as Typefox is incompetent to resolve the mensioned issues, ignore code quality and the work environment is not ideal.

The working theory how to implement it is to either self-host (requires scheduler optimization) or use OpenShift Kubernetes provider that allows VM Containers that are cheaper compared to GKE and allow for a sane root without the need of lots of weird wrappers.

Depending on the implementation we could also implement a web terminal (possible with VNC to get graphical output) to be reachable via the webUI to run emacs,vim,nano, etc.. and/or allow remote SSH that is configurable per repository.

On GitHub there is a gitpod <https://gitpod.io/> and GitHub Codespaces <https://github.com/features/codespaces> that provide vscode-like environment with linux terminal to allow various development. See https://gitpod.io/#https://github.com/go-gitea/gitea for a demo (requires GitHub account). Gitpod is Open-Source on https://github.com/gitpod-io/gitpod which is just a ~~terrible~~ backend management for Theia <https://github.com/eclipse-theia/theia> which is optimized to be deployed on Kubernetes using docker workspaces that costs around 0.03~0.43USD/hour for one user on Google Kubernetes Engine GKE that provides around 100 USD for free to establish the project so theoretically if we have the community we can deploy this for free <https://www.gitpod.io/self-hosted/> The issue with gitpod is that it's very limited as it's using very insane configuration of Docker that doesn't allow for a root permission <https://github.com/gitpod-io/gitpod/issues/39> and VM support <https://github.com/gitpod-io/gitpod/issues/1251#issuecomment-589881514> that prevents various development i.e android <https://github.com/gitpod-io/gitpod/issues/1273> I was working on GitPod <https://github.com/gitpod-io/gitpod/blob/52660b5ad8a1456d0c28de3833216b8971af0c38/components/image-builder/workspace-image-layer/gitpod-layer/amazon/gitpod/layer.sh#L6> so i would be happy to help you re-implement this to be integrated with Gitea as Typefox is incompetent to resolve the mensioned issues, ignore code quality and the work environment is not ideal. The working theory how to implement it is to either self-host (requires scheduler optimization) or use OpenShift Kubernetes provider that allows VM Containers that are cheaper compared to GKE and allow for a sane root without the need of lots of weird wrappers. Depending on the implementation we could also implement a web terminal (possible with VNC to get graphical output) to be reachable via the webUI to run emacs,vim,nano, etc.. and/or allow remote SSH that is configurable per repository.
Poster

Relevant: Emacs-ish distribution optimizzed for web browser https://github.com/karlicoss/cloudmacs

In terms of emacs there are problems with:

  1. it hanging i.e it might wait for a user-input indefinetly
  2. It's not optimized to be used in mission critical environment so the deployment of it should be handled appropriately

These issues can be resolved through making a merge request to GNU Emacs upstream quite easily and i am partially working on these in https://github.com/RXT0128/RXT0128 and https://github.com/Kreymacs/Kreymacs

Relevant: Emacs-ish distribution optimizzed for web browser https://github.com/karlicoss/cloudmacs In terms of emacs there are problems with: 1. it hanging i.e it might wait for a user-input indefinetly 2. It's not optimized to be used in mission critical environment so the deployment of it should be handled appropriately These issues can be resolved through making a merge request to GNU Emacs upstream quite easily and i am partially working on these in https://github.com/RXT0128/RXT0128 and https://github.com/Kreymacs/Kreymacs
Poster

Worth mentioning: By using VM containers we are sacrificing on the deployment speed as the invidual tasks in docker can be cached, but there are options that can be implemented as well i.e using docker within the VM-container and/or caching the steps withint the used VM container i.e using vagrant https://www.vagrantup.com/

See https://www.openshift.com/blog/openshift-virtualization-containers-kvm-and-your-vms

image

Worth mentioning: By using VM containers we are sacrificing on the deployment speed as the invidual tasks in docker can be cached, but there are options that can be implemented as well i.e using docker within the VM-container and/or caching the steps withint the used VM container i.e using vagrant <https://www.vagrantup.com/> See https://www.openshift.com/blog/openshift-virtualization-containers-kvm-and-your-vms ![image](/attachments/d33993a1-0f32-4e49-a1ed-35c54af82e8a)
n commented 1 year ago
Collaborator

Are you suggesting Codeberg should host an online workspace?

Also, relevant issue on Gitpod for Gitea support: gitpod-io/gitpod#80

Are you suggesting Codeberg should host an online workspace? Also, relevant issue on Gitpod for Gitea support: [gitpod-io/gitpod#80](https://github.com/gitpod-io/gitpod/issues/80)
Poster

Are you suggesting Codeberg should host an online workspace? @n

Yes! As codeberg can do that at 0 cost other then maintainance to provide a product that is most likely superior to gitpod and codespaces

Also, relevant issue on Gitpod for Gitea support: gitpod-io/gitpod#80 @n

Gitpod is not useful and sane enough to be used, but helpful for frontend development.

> Are you suggesting Codeberg should host an online workspace? @n Yes! As codeberg can do that at 0 cost other then maintainance to provide a product that is most likely superior to gitpod and codespaces > Also, relevant issue on Gitpod for Gitea support: gitpod-io/gitpod#80 @n Gitpod is not useful and sane enough to be used, but helpful for frontend development.
fnetX added the
infrastructure
label 8 months ago
fnetX added the
service
label 5 months ago
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.