modeco80 e780ecabf0 cvmts: Add support for cgroup process resource limits on Linux
Using systemd's `Delegate=` option, it is possible to get it to let you manage your own cgroup subtree, therefore allowing you to set options and other fun stuff.

This commit adds support for doing so and configuring the resource limits in config.toml.

For later: The cgroup created has to be a threaded one. Iin theory, we can actually wait for the QEMU process to handshake qmp, grab the vCPU threads, and only limit those. For now, just limiting the entire QEMU process works, though and is the least complicated.

NOTE: Windows support should still work, even if you have resource limits configured. If you do, it should only warn and complain, but still function.
2024-11-02 06:08:26 -04:00
2023-09-02 17:54:44 -04:00
2024-04-11 12:04:40 -04:00
2024-07-30 22:49:59 +03:00
2024-11-02 03:11:07 -04:00

CollabVM1.ts

This is a drop-in replacement for the dying CollabVM 1.2.11. Currently in beta

Compatibility

The CollabVM server will run on any Operating System that can run Node.JS and Rust. This means modern Linux distributions and Windows versions.

We do not recommend or support running CollabVM Server on Windows due to very poor support for QEMU on that platform.

Dependencies

The CollabVM server requires the following to be installed on your server:

  1. Node.js (obviously)
  2. QEMU (Unless you just want to use a VNC Connection as your VM)
  3. A Rust toolchain (e.g: rustup)
  4. NASM assembler

Installing dependencies on Arch

  1. Install dependencies: sudo pacman --needed --noconfirm -Sy nodejs nasm rust
  2. Enable corepack: sudo corepack enable

Installing dependencies on Debian

TODO

Running

TODO: These instructions are not finished for the refactor branch.

  1. Copy config.example.toml to config.toml, and fill out fields
  2. Install dependencies: yarn
  3. Build it: yarn build
  4. Run it: yarn serve
Description
No description provided
Readme 686 KiB
Languages
TypeScript 90.2%
Rust 9.5%
JavaScript 0.3%