openwhyd

Install instructions

Run with Docker (simple)

Docker makes it easy and safe to install and start the two servers required for Openwhyd: the MongoDB database server, and the web/application server (formerly called whydJS).

Prerequisites

All you need is:

Docker for Windows Home

Docker for Windows Home runs on a virtual box, so localhost may not work. For all the instructions below, if localhost is not working, replace it with your docker ip. You can find your docker ip with :

$ docker-machine ip

Clone and run

Commands to type in your shell:

$ git clone https://github.com/openwhyd/openwhyd.git
$ cd openwhyd
$ docker-compose up --build --detach  # will start openwhyd's web server and database in the background
$ open http://localhost:8080          # ... in your web browser => you should see Openwhyd's home page! 🎉
$ docker-compose down                 # when you're done: will stop openwhyd's web server and database

After making changes to the source code, don’t forget to stop and re-start it using docker-compose.

Run automated tests

Commands to run all automated tests against the Docker container:

$ docker-compose up --build --detach  # to have openwhyd's web server and database running in the background
$ npm install                         # will install the necessary test runners
$ npm run docker:test                 # will run the automated tests: unit and end-to-end

Sample data

If you want to import some user data from openwhyd.org into your local/test database, you can use the following script:

$ npm run docker:seed                   # will clear the database
$ node scripts/import-from-prod.js test # will import 21 posts from https://openwhyd.org/test

After that, you will be able to sign in as an administrator using the credentials returned by the script.

The data imported can be seen from http://localhost:8080/all

Connect to the database

If you want to connect to the MongoDB database with the mongo shell using docker-compose container:

$ docker-compose exec mongo mongo mongodb://localhost:27117/openwhyd_test

Deploy to a DigitalOcean instance

Read How to deploy on DigitalOcean.


Install and run manually (advanced)

If you don’t want to use Docker (or can’t), you can follow these instructions.

Setup (advanced)

Usage (advanced)

Testing (advanced)

Run unit tests only:

$ npm run test:unit

Run all tests, including acceptance tests (Cypress-based):

# in a terminal session, start Openwhyd's application server
$ . ./env-vars-testing.sh && npm start
# in another terminal session, run the tests
$ npm test

Configuration (advanced)

Command-line arguments

Openwhyd’s entry point (app.js) accepts two kinds of command-line arguments:

Advanced use cases

Test email digests

If you want to test email digests locally:

$ node app.js --emailAdminsOnly --digestInterval 5000 --digestImmediate true

Map localhost to a domain name

If you want to test Deezer Connect, you will need your server to be reachable through a domain name. Here’s a way to achieve that:

  1. Configure your Deezer app to allow connections from http://local.openwhyd.org:8080;
  2. Add local.openwhyd.org to your /private/etc/hosts file;
  3. Flush the corresponding cache: $ dscacheutil -flushcache;
  4. Start Openwhyd with $ npm start -- --urlPrefix http://local.openwhyd.org:8080.

Environment variables

Other variables to update

The value of following constants is required to connect to the corresponding APIs: