This was a web application designed to deliver apocalypse-preparation training activities to participants.
➡️ Check out Back & Forth, the newer and more customizable version of this software.
This repository is archived here for historical purposes only.
- Install Node.js version 8.7 or newer
- Install Docker and (if on Windows) Docker Toolbox
- Clone this repository
If you use Visual Studio Code, just open this repository.
Steps for Mac:
- First, start the database servers. Choose Tasks > Run Task > "Run Database Servers"
- If this is the first time running BORIS, apply the migrations: Choose Tasks > Run Task > "Apply database migrations"
- Hit F5 to run the backend server
- Choose Tasks > Run Build Task to build the frontend (and re-build it upon any changes)
Steps for Windows 10:
- Open the project's backend folder with the Docker Quickstart Terminal and run
docker-compose up
- If this is the first time running BORIS, apply the migrations: Choose Tasks > Run Task > "Apply database migrations"
- Hit F5 to run backend server
- In the project's root directory run
npm run watch
Go to http://localhost:3333/ to see the results.
To create a docker container for deployment, run make container
. Then you can run it with e.g.
docker run -t -p 3333:3333 --env BORIS_CONFIG='{"production": {"redis_host": "docker.for.mac.host.internal", "db_host": "docker.for.mac.host.internal"}}' boris
To run database migrations using the docker image:
docker exec -it <container name or ID> node /app/backend/db/migrate.js
Deployment currently needs two VMs, one for databases and the other for the app.
cd deploy/
mkdir ../../boris-private/ ../../boris-private/group_vars ../../boris-private/prod ../../boris-private/prod/credentials
touch ../../boris-private/ssh_config ../../boris-private/ansible_hosts
touch ../../boris-private/group-vars/prod.yml ../../boris-private/prod/credentials/mailgun_api_key
# Edit those files accordingly.
# Now deploy:
ansible-playbook playbook-db-server.yml -e "target=prod_db"
ansible-playbook playbook-app.yml -e "target=prod_app"