Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split WORKSPACE from DOJO #534

Open
zardus opened this issue Aug 18, 2024 · 0 comments
Open

Split WORKSPACE from DOJO #534

zardus opened this issue Aug 18, 2024 · 0 comments

Comments

@zardus
Copy link
Contributor

zardus commented Aug 18, 2024

PR #533 got me thinking about this idea that's been bouncing around for a while:

The DOJO infra is really two things: the hosted workspace with all the tooling, novnc, vscode, etc. and the dojo/module/challenge/scoreboard/user stuff. These two things live together right now, but they don't have to (and maybe shouldn't).

For example, we could split out the current dojo into two things:

  • the dojo, which handles tracking dojos, solves, etc
  • the workspace, which handles starting containers, populating them with files, etc.

The workspace would have an API work launching ephemeral workspace instances, not bound to a challenge, with all data specified via REST/docker. Something like:

  • backend API for launching the workspace, returns an access token
  • frontend API for accessing the launched workspace

Use cases:

  • splitting out our backend from our frontend, for better scaling, isolation, etc
  • providing (free) workspaces for community resources such as wargame platforms, including completely static sites like collections of chals on github

We had a discussion on this at the pwn.college hackathon, and IIRC someone had an argument that I'm just describing a docker socket here, but I still feel this is a bit more (e.g., a docker socket can't allow static github repos or something like cryptohack or pwnable.tw --- just examples; no idea if they'd even be interested --- to have a "launch in pwn.college" button).

Opening this issue so the idea doesn't get lost in the ether.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant