Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/wuhan005/elaina

🔮 Container-based remote code runner. / 基于容器的远程代码运行器
https://github.com/wuhan005/elaina

container docker go kubernetes runner

Last synced: about 10 hours ago
JSON representation

🔮 Container-based remote code runner. / 基于容器的远程代码运行器

Awesome Lists containing this project

README

        

# Elaina ![Go](https://github.com/wuhan005/Elaina/workflows/Go/badge.svg) [![Go Report Card](https://goreportcard.com/badge/github.com/wuhan005/Elaina)](https://goreportcard.com/report/github.com/wuhan005/Elaina) ![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/wuhan005/elaina) ![Docker Image Version (latest by date)](https://img.shields.io/docker/v/wuhan005/elaina)


Docker-based remote code runner.

[简体中文](https://github.com/wuhan005/Elaina/blob/master/README_zh.md)

## Start

### Step 1: Install dependencies

* [Docker](https://docs.docker.com/get-docker/) (v20.10.0 or higher)

### Step 2: Pull internal docker images

The [`docker/images/`](https://github.com/wuhan005/Elaina/tree/master/docker/images) folder provides the Dockerfile of
the programming language runtime environment that Elaina supports.

Use `docker pull` command to pull the images from DockerHub before you start running the Elaina. This operation only
needs to be performed once.

```bash
docker pull elainaruntime/golang
docker pull elainaruntime/php
docker pull elainaruntime/python
docker pull elainaruntime/javascript
```

### Step 3: Build and start the Elaina server

#### Build Elaina

```bash
git clone [email protected]:wuhan005/Elaina.git

# Build frontend
cd frontend/ && yarn install && yarn build

# Build backend
go build .
```

#### Set environment variables.

Postgres database configuration.

```bash
export PGPORT=5432
export PGHOST=
export PGUSER=
export PGPASSWORD=
export PGDATABASE=
export PGSSLMODE=disable
```

#### Run the Elaina server.

```bash
# Set the web manager panel password.
export APP_PASSWORD=

./Elaina
```

### Step 4: Have fun!

Visit `http://:8080/m/` to login to the manager panel.

## License

MIT