A web application used for building and assigning truth trees.
You may use Willow at the following URL: https://willow.bramhub.com
Completely rewritten and revitalized by Connor Roizman, Eli Schiff, and Jeff Putlock.
See our User's Manual.
-
Clone the repository via
git clone https://github.com/Bram-Hub/Willow.git. -
Install
nodejsversion 14+ and install project dependencies vianpm cifrom the project root directory. -
Install
postgresqland start the service. Set up the Willow database via the following steps:-
Open a Postgres interactive shell as the
postgresuser:sudo -iu postgres; psql -U postgres -
Set up the Postgres user
willow_userand thewillowdatabase:CREATE ROLE willow_user WITH LOGIN PASSWORD 'your_password_here'; CREATE DATABASE willow WITH OWNER willow_user; \connect willow; CREATE EXTENSION pgcrypto; -
(OPTIONAL) Edit
/etc/postgresql/VERSION_NUMBER/main/pg_hba.confto allow users other thanpostgresto log in to thewillow_userrole in postgres. -
Exit the
postgresshell and navigate to the root directory of the Willow repository. Set up the new database aswillow_userusingpsql -U willow_user -W willow < setup.sql
-
-
Create an env file
cp .env.template .envand configure the following optionsVariable Description NODE_ENV The environment in which this application is being run. The possible values are developmentandproductionHTTPS If the program is being run on an https server PORT The port to launch the program on BASE_URL The base url for example "http://localhost:8080" PGHOST The PostgreSQL host to connect to PGUSER The PostgreSQL user to log in as PGDATABASE The PostgreSQL database to use PGPASSWORD The password for the account specified by PGUSER PGPORT The port that the database is hosted on -
Create a config file
cp config.yml.template config.ymlto configure your list of system administrators. -
(OPTIONAL) Set up the unit testing framework with
npx ts-jest config:init -
Launch the application using
npm run <command>with one of the commands in the table below.Command Use debugRecommended for development. Uses nodemon to recompile the code when changes are made. testRuns the unit test suite (requires setup in step 6) devRuns the program once. Must be restarted when changes are made buildBuilds the website in production mode startRuns the built program