/uwazi

Uwazi is a web-based, open-source solution for building and sharing document collections

Primary LanguageJavaScriptMIT LicenseMIT

Uwazi Logo

devDependency Status dependency Status CircleCI Maintainability Test Coverage

There are important stories within your documents. Uwazi helps you tell them. Uwazi is a free, open-source solution for organising, analysing and publishing your documents.

Uwazi | HURIDOCS

Read the user guide

Intallation guide

Dependencies

Before anything else you will need to install the application dependencies running:

$ yarn install

Production

Production Configuration (advanced)

Uwazi is configured to run correctly with its default values. There is no need to change or reconfigure these values.

However, if you require different database names, elastic indexes, etc. you can override those defaults by exporting one or more of the following environment variables:

$ export DBHOST=localhost
$ export DATABASE_NAME=uwazi_development
$ export ELASTICSEARCH_URL=http://localhost:9200
$ export INDEX_NAME=uwazi_development
$ export API_URL=/api/
$ export PORT=3000

Again, please be adviced that there is no need to export any value for a normal installation and only do so if you are certain you need different defaults. If these values are not correctly overriden, Uwazi will fail to run properly.

Production Build

$ yarn production-build

Initial State

The first time you run Uwazi, you will need to initialize the database with its default blank values. To do so:

$ yarn blank-state

Do no run this command for existing projects, as this will erase the entire database.

Production Run

$ yarn run-production

Upgrading Uwazi (migrations)

We are working on a migration system that will allow seamless transitions from one version to the next of Uwazi. For the time being, please, check the release notes for each version as to what is required in order to have the data properly migrated.

Development

Development Run

$ yarn hot

This will launch a webpack server and nodemon app server for hot reloading any changes you make.

Testing

Unit and Integration tests

We test using the JEST framework (built on top of Jasmine). To run the unit and integration tests, execute

$ ./node_modules/.bin/jest

This will run the entire battery of tests, both on server and client apps.

End to End (e2e)

For End-to-End testing, we have a full set of fixtures that test the overall functionality. Be advised that, for the time being, these tests are run ON THE SAME DATABASE as the default database (uwazi_developmet), so running these tests will DELETE any exisitng data and replace it with the testing fixtures. DO NOT RUN ON PRODUCTION ENVIROMENTS!

Running end to end tests require a runnig uwazi app.

$ yarn hot

On a different console tab, run

$ yarn e2e

Note that if you already have an instance running, this will likely throw an error of ports already been used. Only one instance of uwazi may be run in a the same port at the same time.