Arbitrary code execution server using Docker
https://github.com/SunRed/myriad
app | ||
languages | ||
src | ||
.gitignore | ||
config.dhall | ||
LICENSE | ||
package.yaml | ||
README.md | ||
Setup.hs | ||
stack.yaml | ||
stack.yaml.lock |
Myriad
Arbitrary code execution server using Docker.
Install
- Install Stack 2+
- Run
stack install
, amyriad
executable will be installed
Running
- Make sure the configuration is filled out, see
config.dhall
for an example - Run
myriad --config path/to/config.dhall
Endpoints
GET /languages
List of enabled languages.
Example response:
["haskell", "javascript"]
POST /eval
Evaluate code.
JSON payload with language
and code
keys.
The language
is as in the name of a subfolder in the languages
directory.
Example payload:
{ "language": "haskell", "code": "main = print (1 + 1)" }
Example response:
{ "result": "2\n" }
Errors with 404 if language
is not found, 504
if evaluation timed out, or 500
if evaluation failed for other reasons.
GET /containers
List of containers being handled by Myriad.
POST /cleanup
Kill all containers, giving back the names of the containers killed.