Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/StratumAuhuur/CTFPad
A web UI and server for task based competitions employing Etherpad Lite.
https://github.com/StratumAuhuur/CTFPad
Last synced: 3 months ago
JSON representation
A web UI and server for task based competitions employing Etherpad Lite.
- Host: GitHub
- URL: https://github.com/StratumAuhuur/CTFPad
- Owner: StratumAuhuur
- License: mit
- Created: 2015-09-16T18:47:17.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2019-02-02T15:13:02.000Z (almost 6 years ago)
- Last Synced: 2024-08-01T12:35:01.454Z (6 months ago)
- Language: JavaScript
- Size: 250 KB
- Stars: 108
- Watchers: 14
- Forks: 40
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-starred - StratumAuhuur/CTFPad - A web UI and server for task based competitions employing Etherpad Lite. (others)
README
CTFPad
======A web UI and server for task based competitions employing Etherpad Lite. It features CTF and Task managemeent, CTF&Task based file uploads and user assignment. May be used for other purposes.
Installing
------ acquire Node.JS v10.x and npm, sqlite3 and openssl
- check if `node` is in PATH, create a link to `nodejs` if necessary (usually necessary on Debian/Ubuntu)
- execute`npm install`
- install etherpad-lite into `etherpad-lite` (see `https://github.com/ether/etherpad-lite`) and run it once to install all the dependencies
- create ctfpad.sqlite with ctfpad.sql (on Debian use `sqlite3 ctfpad.sqlite < ctfpad.sql`)
- if necessary, create a keypair with `new_certs.sh` (or use any other certificate pair)
- copy `config.json.example` to `config.json` and tweak to your needs (see **Configuration**)
- create a directory named `uploads` or soft link another locationConfiguration
-----### CTFPad
- port: TCP port the CTFPad will listen on
- etherpad\_port: TCP port where Etherpad Lite will be reachable from the outside
- etherpad\_internal\_port: TCP port where Etherpad Lite is reachable locally
- keyfile: location of the SSL key file
- certfile: location of the SSL cert file
- authkey: a *secret* string needed to register### Etherpad Lite
Follow the instructions on the project pages. **It is recommended to configure Etherpad Lite to only listen locally.** The CTFPad will provide an authenticating proxy for accessing Etherpad Lite.Running
-----
Start the server by running `node main.js` or `coffee main.coffee` if Coffeescript ist installed globally.Using
-----
If you are using a self-signed certificate (which is the case for certificates generated with `new_certs.sh`) it may be necessary to access `https://$host:$etherpad_port` directly to add an certificate exception since most browsers do not allow adding exceptions for iframes.