Clotho is a framework for engineering synthetic biological systems and managing the data used to create them. You can author data schemas, run functions and algorithms, and tie Clotho into existing applications.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.circleci
diagrams
remote-compiler
scripts
server
test
.dockerignore
.editorconfig
.env-sample
.eslintignore
.eslintrc
.gitignore
.travis.yml
Dockerfile
LICENSE
Procfile
README.md
circle.yml
clotho.iml
config.js
docker-compose.yml
docker-run.sh
first-time-setup.js
index.js
manifest.js
mongo-models-1.3.1.tgz
package.json
process.json
server.js

README.md

Clotho Logo Clotho

CircleCI

Clotho is a framework for engineering synthetic biological systems and managing the data used to create them. You can author data schemas, run functions and algorithms, and tie Clotho into existing applications.

Live Demo

We have continuous integration set up with CircleCI which deploys the master branch onto our server. Check it out at alpha.clothocad.org

Technology

Clotho is built with the hapi framework. We're using MongoDB as a data store.

Requirements

You need Node.js installed and you'll need MongoDB installed and running.

You can also install Java 8, and Python 3

We use bcrypt for hashing secrets. If you have issues during installation related to bcrypt then refer to this wiki page.

Installation

git clone git@github.com:hicsail/clotho.git
cd clotho
npm install
npm install -g pm2
npm run setup

Configuration

Simply edit config.js. The configuration uses confidence which makes it easy to manage configuration settings across environments. Don't store secrets in this file or commit them to your repository.

Instead, access secrets via environment variables. We use dotenv to help make setting local environment variables easy (not to be used in production).

Simply copy .env-sample to .env and edit as needed. Don't commit .env to your repository.

Running the app

npm run pm2

Now you should be able to point your browser to localhost:9000 and see the home page.

  • If running for the first time, please go to /setup and create a root user

Stopping the app

pm2 stop all

Have a question?

Any issues or questions (no matter how basic), open an issue. Please take the initiative to read relevant documentation and be pro-active with debugging.

Want to contribute?

Contributions are welcome. If you're changing something non-trivial, you may want to submit an issue before creating a large pull request.

Running tests

Lab is part of the hapi ecosystem and what we use to write all of our tests.

npm test

# > ./node_modules/lab/bin/lab -c

# ..................................................
# ..................................................
# ..................................................
# ..................................................
# ..................................................
# ........

# 258 tests complete
# Test duration: 2398 ms
# No global variable leaks detected
# Coverage: 100.00%
# Linting results: No issues

License

MIT