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.
Read the user guide
- NodeJs 6.13.x For ease of update, use nvm: https://github.com/creationix/nvm
- Elasticsearch 5.5.x https://www.elastic.co/guide/en/elasticsearch/reference/5.5/install-elasticsearch.html (Make sure to have 5.5, some sections of the instructions use 5.x which would install a different version)
- MongoDB 3.4.x https://docs.mongodb.com/v3.4/installation/ (there are known issues with 3.6, please ensure 3.4)
- Yarn https://yarnpkg.com/en/docs/install
Before anything else you will need to install the application dependencies running:
$ yarn install
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.
$ yarn production-build
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.
$ yarn run-production
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.
$ yarn hot
This will launch a webpack server and nodemon app server for hot reloading any changes you make.
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.
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.