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