Sibyl is an online agile estimation tool that doesn't require sign-ups, entering user stories, or any other time consuming steps that keeps you from doing what matters: estimating on stories.
This repo contains both the back-end and front-end code for running Sibyl.
To get sibyl:
% go get github.com/synacor/sibyl
As long as $GOPATH/bin
is in your $PATH
, you can now run sibyl
.
% sibyl
Sibyl uses the rice.go package to bundle in the templates and that static directory. When running on your local server, it will automatically pull it from the installed directory. If you
want to distribute your binary to other servers, you'll want to bundle up those assets. First, you'll need to install the rice
command.
% go get github.com/GeertJohan/go.rice/rice
Now you can bundle up the assets in the binary.
% cd $GOPATH/src/github.com/synacor/sibyl
% go build
% rice append --exec sibyl
The binary ./sibyl
can now be distributed.
Sibyl uses viper for configuration. The following environment variales are supported:
SIB_PORT
: Specify the port to run sibyl on. Defaults to5000
.SIB_TLS_PORT
: Specify the TLS port to run sibyl on. By default, Sibyl does not use TLS.SIB_DEBUG
: Outputs additional log details.
Extended configuration can be supplied by created a config.json
file in either of the following two locations:
./config.json
/etc/sibyl/config.json
Only the first config file found will be used.
The following example JSON file contains all the options and their defaults:
{
"debug": false,
"log_level": "INFO",
"port": 5000,
"tls_port": 0,
"force_tls": false,
"tls_private_key": "",
"tls_public_key": ""
}
debug
: Output additional debugging information to STDERR.log_level
: Specifies what level of logging should be outputted to STDERR. Ifdebug
is on, you probably want this toDEBUG
.port
: The port to use for HTTP (non-TLS) traffic.tls_port
: The port to use for HTTPS (TLS) traffic. Will only turn on TLS support if specified. If you use this option, you need to also specifytls_private_key
andtls_public_key
.force_tls
: If using TLS, redirect non-TLS traffic to use TLS with a permanent redirect.tls_private_key
: Path to the private key file.tls_public_key
: Path to the public key file.
- When running the server over HTTP (non-TLS), some antivirus applications that buffer http connections, such as Kaspersky, may cause the web socket connection to disconnect. The workaround is to either run the server with HTTPS, or to disable port 80 filtering in your antivirus.
- The app does not currently horizontally scale because everything is kept in-memory. Will need to add routing capabailities so that all rooms hit the same instance, or add pub/sub features.
All ideas and contributions are appreciated.
GNU AGPLv3 License, please see LICENSE for details.