aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: f59fbb515d7b9bb18e7be77fe0d38a1bd4fe87d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# poe: online [ruby] environment

sandbox (C):

* seccomp: to restrict syscallls
* cgroup (memory, pids): to limit resources
* overlayfs

backend (Rust):

* Iron: webapp framework

frontend (TypeScript):

* Angular 2

## Installation

**仮想マシン上で実行することを強くお勧めします**

~~~sh
% git clone -b ⚙ https://github.com/rhenium/poe.git && cd poe

% cd sandbox
% vi config.h config_seccomp.h
% make && sudo make install  # => sandbox/runner
% cd ..

% cd backend
% cargo build --release # => target/release/poe
% cd ..

% cd frontend
% npm i
% rake deploy # => frontend/target/
% cd ..

% nvim config.json
% mkdir -p /path/to/datadir/{env/base,snippets}

% sudo pacstrap -cd /path/to/datadir/env/base filesystem bash openssl coreutils shadow libxml2
% sudo arch-chroot /path/to/datadir/env/base useradd -m unyapoe -u 27627 # home directory is needed

% rake 'ruby[2.3.0]' # will add to config.json
% rake 'php[7.0.0]'

% ./backend/target/release/poe config.json
% # setup reverse proxy: /api/ => backend, * => frontend
~~~

## License
MIT License