Commit Graph

270 Commits

Author SHA1 Message Date
Thomas Hobson 972228412a
switch to taking config by env
To help with ease of deployment, configuration now is administered through the use of environment variables.
This allows for easy configuration directly from the docker-compose file and is a much more robust solution.
2021-05-07 21:11:36 +12:00
Felix fb102ebe83
Improved memory limits (#248)
* Added optional compile_memory_limit and run_memory_limit parameters

* Combined memory limit parameters into one
2021-05-07 20:21:25 +12:00
Thomas Hobson eaf0ba34bd
Allow additional content-type parameters 2021-05-07 20:12:27 +12:00
Thomas Hobson d95d67071c
reject on non-json content-types (#233) 2021-05-07 19:37:22 +12:00
Thomas Hobson 9590d5afbc
Patch for race condition with filesystem and process cleanup 2021-05-07 19:23:34 +12:00
Thomas Hobson 8b90c12c5c
chown directories to root, ensuring they are not writable by runners 2021-05-02 20:11:55 +12:00
Thomas Hobson 38ab15081e
Merge branch 'master' of https://github.com/engineer-man/piston 2021-05-02 17:02:26 +12:00
Thomas Hobson 37c760b081
allow empty contents 2021-05-02 17:01:50 +12:00
Thomas d577072749
Revert "Added max_memory_usage parameter (#238)" (#246)
This reverts commit a49acc7dbe.
2021-05-02 14:55:37 +12:00
Dan Vargas 2412d50f82
pkg(octave-6.2.0): add deps for octave (#245) 2021-05-02 14:41:53 +12:00
Felix a49acc7dbe
Added max_memory_usage parameter (#238)
* Added max_memory_usage parameter

* Added max_memory_usage description to readme
2021-05-01 21:10:53 +12:00
Thomas Hobson 5509492a99
uncomment the fix 2021-04-28 16:11:49 +12:00
Thomas Hobson 3bd73d07a9
file persistance fix 2021-04-28 16:03:35 +12:00
Thomas Hobson a6bc24e22e
Fix issue where large files can be written to exhaust space
**BREAKING CHANGE**
Requires manually editing the config file, or deleting the config file entirely!
2021-04-28 15:39:23 +12:00
Thomas Hobson 9a52e369f2
fix forking exploits 2021-04-26 19:37:40 +12:00
Thomas Hobson 6fe0da030d
edge case 2021-04-26 13:37:50 +12:00
Thomas Hobson 3673b4e403
zombie process handler 2021-04-26 13:00:34 +12:00
Thomas Hobson 347f2d56d7
use a compatible waitpid library 2021-04-26 11:32:10 +12:00
Thomas Hobson dd31873700
free zombie processes from proctable 2021-04-26 11:22:28 +12:00
Thomas Hobson 18a44bf146
install ps in container 2021-04-26 10:58:57 +12:00
Thomas Hobson 00fede6e0d
change api version to v2 2021-04-26 10:40:53 +12:00
Thomas Hobson 72bda367e0
cleanup all runner user processes 2021-04-26 10:35:34 +12:00
Thomas Hobson 3b0f2a0013
remove useless kill 2021-04-26 03:15:49 +12:00
Thomas Hobson 349beeb45a
Warn on errors when killing process group 2021-04-26 03:01:08 +12:00
Thomas Hobson f9b8fbd9c0
correct logging contexts 2021-04-25 21:01:16 +12:00
Thomas Hobson 3928bace86
refactor 2021-04-25 20:55:20 +12:00
Victor Frazao 5f97005a9a
Fixes nasm32 - adds 32bit arch to seccomp filter (#231) 2021-04-25 16:55:39 +12:00
Thomas Hobson 45eb4c799d
dont crash if there are no aliases 2021-04-25 16:37:05 +12:00
Thomas Hobson 30fa1d1425
use correct var name 2021-04-25 15:11:32 +12:00
Thomas Hobson a328b3eeda
better support for multiple languages per package 2021-04-25 15:02:57 +12:00
Thomas Hobson d851515f37
api: install rename in container 2021-04-24 19:51:33 +12:00
Thomas aeda95a215
add .code extension to files without file names 2021-04-24 17:59:06 +12:00
Thomas 5bc607dcec
API compatibility 2021-04-23 20:40:49 +12:00
Brian Seymour a1eb732406 update readme, refactor some code 2021-04-22 22:27:50 -05:00
Thomas Hobson 487bde6526
404 error 2021-04-23 14:49:12 +12:00
Thomas Hobson e6da87faa9
better error handling 2021-04-23 14:47:08 +12:00
Thomas Hobson 46b1e9118d
throw error 2021-04-23 14:32:05 +12:00
Thomas Hobson 890d9f024d
Merge branch 'v3' of https://github.com/engineer-man/piston into v3 2021-04-23 14:30:19 +12:00
Brian Seymour 04990566a1 updated readme 2021-04-22 21:30:01 -05:00
Thomas Hobson 6ff89f6e91
bail when not installed 2021-04-23 14:29:40 +12:00
Thomas Hobson 9c42254b80
default file name 2021-04-23 13:09:33 +12:00
Thomas Hobson 589dfec6df
default values 2021-04-23 11:54:37 +12:00
Thomas Hobson 9814217aee
remove main 2021-04-23 11:52:50 +12:00
Brian Seymour b3575246bd change urls, fix docker compose file 2021-04-22 18:43:21 -05:00
Thomas 1edb5ad046
ci bump 2021-04-17 12:11:31 +12:00
Dan Vargas d2e05a4a7e
pkg(*-*): Fix uninstall (#213) 2021-04-11 13:15:14 +12:00
Thomas Hobson 81cdc766b6
Uninstallation (#211) 2021-04-10 16:10:18 +12:00
Victor Frazao 552fb91c6b
v3 - Remove the use of unshare + privileged mode and instead (#195)
use seccomp to filter for socket syscalls
2021-04-07 12:31:30 +12:00
Thomas Hobson be47ab802c
Merge branch 'v3' of https://github.com/engineer-man/piston into v3 2021-03-29 21:33:54 +13:00
Thomas Hobson 607123f73d
switch to yarn 2021-03-29 21:33:49 +13:00
Brian Seymour 902ad71578 remove unnecessary author fields 2021-03-28 14:29:28 -05:00
Brian Seymour 7aa52bb0c5 move env 2021-03-28 14:03:08 -05:00
Brian Seymour b31deaddbc change port to match old piston, some formatting change, add env to fix debian warning/error 2021-03-28 14:01:46 -05:00
Vargas, Dan aa0a7ac35f pkg(swift-5.3.3): Add deps for swift 2021-03-18 15:08:51 -05:00
Vargas, Dan d50403230c pkg(prolog-8.2.4): Add deps for prolog 2021-03-18 09:13:02 -05:00
Vargas, Dan cb5ad603d0 pkg(haskell-9.0.1): Add deps to api container 2021-03-17 12:29:10 -05:00
Vargas, Dan 76e0f7d76a pkg(crystal-0.36.1): Add deps to api container 2021-03-17 12:59:14 +13:00
Dan Vargas 148c7414f3 pkg(osabie-1.0.1/elixir-1.11.3): Fix VM warnings for osabie and elixir 2021-03-17 09:52:03 +13:00
Victor Frazao 81b70fe08d Adds build-essential to API container - need this for rust executor 2021-03-16 19:48:50 +13:00
Thomas Hobson 8c6552d19e
api: start at user 1001 by default 2021-03-15 22:08:37 +13:00
Thomas Hobson 8b70b7d82e
api: update default repo url 2021-03-15 19:39:55 +13:00
Thomas Hobson b36cb64105
api: revert quoting of args 2021-03-14 15:33:29 +13:00
Thomas Hobson d529384f21
api: quote args when being executed 2021-03-14 13:57:14 +13:00
Thomas Hobson 4621f34e47
api: fixes from refactor 2021-03-13 23:09:13 +13:00
Thomas Hobson 3ae32aad3f
api: fix errors from refactor + PISTON_ALIAS envvar 2021-03-13 20:57:21 +13:00
Brian Seymour b3d18600cd api refactoring 2021-03-12 23:01:04 -06:00
Thomas Hobson 812069cc3f
api: remove repos from ppman 2021-03-06 19:17:56 +13:00
Thomas Hobson 49c761311b
api: fix bugs introduced in code cleanup 2021-03-06 00:31:51 +13:00
Thomas Hobson af1741becc
api: code cleanup 2021-03-05 19:29:09 +13:00
Thomas Hobson b1f13d2b87
api,repo: Add libxml2 to container 2021-02-28 15:44:43 +13:00
Thomas Hobson bd920b19b9
api: add /runtimes endpoint 2021-02-28 01:25:10 +13:00
Thomas Hobson 870a4c1282
api: fix compile stage
runtime.compiled always returned false as it was undefined.
This made the code think it's a run-only language, and never called the compile script.
2021-02-28 01:18:04 +13:00
Thomas Hobson 12dc93435d
api,repo: Switch to debian base image 2021-02-28 01:15:52 +13:00
Thomas Hobson b91ff42bb8
api: fix validators 2021-02-27 23:10:54 +13:00
Thomas Hobson 8a0f7b3abd
api: add express-validator 2021-02-27 18:45:43 +13:00
Thomas Hobson 764641b5a6
api: lint 2021-02-27 13:08:51 +13:00
Thomas Hobson 8b61f4f69f
api: add validators to endpoints 2021-02-27 12:58:30 +13:00
Thomas Hobson 9d32012bbc
api: write stdin to child process 2021-02-23 19:52:49 +13:00
Thomas Hobson 809004ecf9
api: add all users 2021-02-22 23:15:04 +13:00
Thomas Hobson 920e6e7054
api: add rlimits to config 2021-02-22 22:56:54 +13:00
Thomas Hobson e31e66aad5
api: harden file count 2021-02-22 22:52:04 +13:00
Thomas Hobson 9b1a9bf8b3
api: harden process limit 2021-02-22 22:51:19 +13:00
Thomas Hobson 94d179762b
api: enforce execute time limits 2021-02-22 22:00:37 +13:00
Thomas Hobson 0ebdcadf12
api: add unshare back 2021-02-22 21:57:03 +13:00
Thomas Hobson 00bb5be55b
api: tidy up execute 2021-02-22 21:55:51 +13:00
Thomas Hobson 64b2882450
api: gpg key importing 2021-02-21 21:37:38 +13:00
Thomas Hobson 1f5d4b8eb1
api: config options 2021-02-21 21:37:13 +13:00
Thomas Hobson 514006058b
api: harden runaway code 2021-02-21 21:36:49 +13:00
Thomas Hobson 8727a545c6
api: disable networking during execute 2021-02-21 14:56:07 +13:00
Thomas Hobson 2f64f23896
api: container hardening 2021-02-21 14:25:03 +13:00
Thomas Hobson 5ac1285534
api: lint 2021-02-21 14:15:48 +13:00
Thomas Hobson ac46c1b5bb
api: read both stdout and stderr 2021-02-21 13:32:35 +13:00
Thomas Hobson 7b2305f30c
api: add licence to package.json 2021-02-21 13:15:11 +13:00
Thomas Hobson 233fb9bf26
api: trim whitespace off env vars 2021-02-21 12:57:20 +13:00
Thomas Hobson cdc65d6605
api: use bash to call run/compile script 2021-02-21 12:57:02 +13:00
Thomas Hobson b20f853ef1
api: fix function name + allow unsigned packages 2021-02-21 12:56:35 +13:00
Thomas Hobson 8ad62ec983
api: use patched nocamel for fs/promises 2021-02-21 12:06:20 +13:00
Thomas Hobson 60c004eea9
api: lint **everything** 2021-02-21 11:39:03 +13:00
Thomas Hobson 91420c39d7
api: v3 2021-02-21 03:13:56 +13:00
Thomas Hobson c5f3305c23
remove **everything** in preparations for v3 2021-02-18 18:32:26 +13:00
Brian Seymour 5cf2d5853d move around files 2021-01-25 12:54:39 -06:00
Brian Seymour de55b0f4aa merge 2021-01-23 15:18:05 -06:00
Brian Seymour 92f6f15a47 update error messages 2021-01-21 18:50:05 -06:00
teriyakisource 5ba4aa35dd
Update languages.js 2021-01-18 00:38:20 +00:00
Vrganj 14565b16e4 Compile rust as runner 2021-01-17 13:50:40 +00:00
Vrganj ea54716774 Fix order of args and stdin 2021-01-16 18:52:18 +01:00
Vrganj c537cab2da Add stdin 2021-01-16 18:41:41 +01:00
Vrganj 8fd831982e Make ran field do something 2021-01-16 14:19:29 +01:00
Vrganj d8b6379b9a Add CLI written in Node 2021-01-16 13:14:17 +01:00
Vrganj def096fbea Trim and subtring only after executing 2021-01-16 01:03:49 +01:00
Vrganj 420a104f5c Check aliases instead of name directly 2021-01-16 00:59:25 +01:00
Vrganj e80bb0372b Use express-validator, refactor 2021-01-16 00:53:51 +01:00
Vrganj c88abc3ac9 Remove main.go, remove useless dependency 2021-01-15 22:47:04 +01:00
Vrganj a2457edc6f Trim output 2021-01-15 22:13:29 +01:00
Vrganj bbbea5045a Remove debug 2021-01-15 20:43:01 +01:00
Vrganj 6fdf2d6061 Fixes 2021-01-15 20:40:18 +01:00
Vrganj 3f301b8c1f Fix version regex 2021-01-14 21:21:10 +01:00
Vrganj c15f9a9942 Capture stderr when setting versions 2021-01-14 21:06:26 +01:00
Vrganj 218fe8f023 Fix versions 2021-01-14 20:32:06 +01:00
Vrganj 11b2520189 Fix validation yet again 2021-01-14 20:26:41 +01:00
Vrganj 2bcd133edf Fix validation, versions 2021-01-14 20:25:45 +01:00
Vrganj 77e645beb3 Rip out go, add aliases to /versions 2021-01-14 20:14:26 +01:00
Brian Seymour b81690a9de fix jelly, move all executor code to runner permission, introduce stdout/stderr separate output to the api 2021-01-13 23:45:48 -06:00
Brian Seymour 1441b5ef6f delete nim 2021-01-12 13:45:40 -06:00
Brian Seymour 65151d6f0c send 400 when a bad language was supplied 2021-01-11 13:24:17 -06:00
Brian Seymour 6720282bbc
Merge pull request #25 from engineer-man/paradoc
added the paradoc golfing language as seen on Advent of Code
2020-11-01 19:29:31 -06:00
Vrganj 13a0c35680 Add Nim to API 2020-10-31 20:13:17 +01:00
Pyroseza 3ea5f13d4c added paradoc to the go api 2020-10-22 23:19:05 +01:00
Brian Seymour a7fdbca30b fix install instructions 2020-10-17 13:57:26 -05:00
Vrganj be8e301b44 Add jelly 2020-10-17 19:56:02 +02:00
Brian Seymour a89d22bd25 merge 2020-10-06 23:41:13 -05:00
Brian Seymour c2904a8e14 add lua support 2020-10-06 23:40:14 -05:00
Kevin Diaz 9ffca9abb1
Add nasm/asm support for 64 bit binaries 2020-10-03 01:47:13 -04:00
Brian Seymour 9d04f1929d readd brainfuck support 2020-10-02 18:51:00 -05:00
Brian Seymour 4cb999c530 add elisp aliases, add emacs version detection, test elixir using new executor 2020-06-08 22:19:06 -05:00
Brian Seymour 5c1d85fe11 merge 2020-06-04 20:02:56 -05:00
Brian Seymour e1f1e6b3c5 finish adding kotlin and perl 2020-06-04 20:01:21 -05:00
Brian Seymour 30556fb45d merge 2020-06-04 19:17:26 -05:00
isakal 5cde78c41f Add elixir version and alias 2020-06-04 22:38:12 +02:00
isakal 6076f88bb9 Add julia executor and enable elixir in api 2020-06-04 22:24:04 +02:00
aveliz1999 c36c5a6e63 Add Kotlin support 2020-06-04 15:03:33 -04:00
Tommy-Xavier Robillard 31471c3ee0 Added julia version, and alias. 2020-05-02 00:30:12 -04:00
Tommy-Xavier Robillard fab8873d85 Added julia support. 2020-05-02 00:00:46 -04:00
pizalord22 d42aa6edb1 fixed switch case, optimized lxc/execute, optimized json response 2020-03-31 14:37:23 +02:00
Brian Seymour 8fcdec7275 piston improvements. adds version endpoint, new execution output, awk language support, and installs all dependencies directly when possible and avoids apt unless not possible 2020-03-29 14:40:34 -05:00
pizalord22 f6af99bbee keep the languages in memory rather then writing it to an file, added versions end point that returns all versions in json format 2020-03-27 22:21:29 +01:00
pizalord22 6bc2e4e6b1 added special case for java because it's versioning is special 2020-03-27 22:07:31 +01:00
pizalord22 eb576d9b66 added code to write langues and their versions to a json file 2020-03-27 21:30:10 +01:00
Brian Seymour 3233db5c1f new docs, better executors, better expansion for languages 2020-03-26 13:49:19 -05:00
Brian Seymour 8833d4f488 ts support 2019-08-08 11:42:30 -05:00