Files
poseidon/README.md
sirkrypt0 aae0c6e377 Migrate from GitLab CI/CD to GitHub actions (#1)
This also adds a new Dockerfile for a e2e-test-image, as the old
image was hosted on our private registry. By having the image located
near the code, we don't have to rely on images on external registries.
2021-08-05 13:40:48 +02:00

30 lines
1.6 KiB
Markdown

# Poseidon
[![CI](https://github.com/openHPI/poseidon/actions/workflows/ci.yml/badge.svg)](https://github.com/openHPI/poseidon/actions/workflows/ci.yml)
<img src="assets/Poseidon.svg" alt="Poseidon logo" width="20%">
Poseidon provides containerized execution of arbitrary user code inside a Docker container for learning purposes. It has two main purposes:
1. Securing the executions so that they are isolated from each other and from the host system.
2. Being scalable enough to provide hundreds of executions per minute.
Poseidon also offers a live I/O connection to the running program via WebSocket.
![Poseidon as mediator between CodeOcean and Nomad.](docs/resources/OverviewCodeOceanPoseidonNomad.png)
Poseidon is designed to be used with [CodeOcean](https://github.com/openHPI/codeocean), a code-execution provider and auto-grader used in MOOC platforms.
Poseidon requires a [Nomad](https://www.nomadproject.io/) cluster for scheduling its executions, which needs to be set up separately.
### Documentation
For the OpenAPI 3.0 definition of the API Poseidon provides, see the [swagger.yaml](api/swagger.yaml).
For the rest of the documentation see the [docs folder](docs). It describes...
- some aspects of the [development workflow](docs/development.md) including setup guide. You should read this first when starting out with the project.
- [configuration](docs/configuration.md) of the system.
- [security configurations](docs/security.md) (how to active access control and TLS with Poseidon).
- [how Poseidon integrates Nomad](docs/nomad_usage.md) in its architecture.