Uwazi is a flexible database application to capture and organise collections of information with a particular focus on document management. HURIDOCS started Uwazi and is supporting dozens of human rights organisations globally to use the tool.
Read the user guide
Before anything else you will need to install the application dependencies:
xpack.ml.enabled: false
If you want to use the latest development code:
$ git clone https://github.com/huridocs/uwazi.git
$ cd uwazi
$ yarn install
$ yarn blank-state
If you want to download the Uwazi repository and also download the included git submodules, such as the uwazi-fixtures
, which is used for running the end-to-end testing:
$ git clone --recurse-submodules https://github.com/huridocs/uwazi.git
$ cd uwazi
$ yarn install
If the main Uwazi repository had already been cloned/downloaded and now you want to load its sub-modules, you can run
$ git submodule update --init
There may be an issue with pngquant not running correctly. If you encounter this issue, you are probably missing the library libpng-dev. Please run:
$ sudo rm -rf node_modules
$ sudo apt-get install libpng-dev
$ yarn install
Infrastructure dependencies (ElasticSearch, ICU Analysis Plugin, MongoDB, Redis and Minio (S3 storage) can be installed and run via Docker Compose. ElasticSearch container will claim 2Gb of memory so be sure your Docker Engine is alloted at least 3Gb of memory (for Mac and Windows users).
$ ./run start
$ yarn hot
This will launch a webpack server and nodemon app server for hot reloading any changes you make.
$ yarn webpack-server
This will launch a webpack server. You can also pass --analyze
to get detailed info on the webpack build.
We test using the JEST framework (built on top of Jasmine). To run the unit and integration tests, execute
$ yarn test
This will run the entire test suite, both on server and client apps.
Some suites need MongoDB configured in Replica Set mode to run properly. The provided Docker Compose file runs MongoDB in Replica Set mode and initializes the cluster automatically, if you are using your own mongo installation Refer to MongoDB's documentation for more information.
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 existing data and replace it with the testing fixtures. DO NOT RUN ON PRODUCTION ENVIRONMENTS!
Running end to end tests requires a running Uwazi app.
Running tests with Nightmare
$ yarn hot
On a different console tab, run
$ yarn e2e
Running tests with Puppeteer
$ DATABASE_NAME=uwazi_e2e INDEX_NAME=uwazi_e2e yarn hot
On a different console tab, run
$ yarn e2e-puppeteer
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 the same port at the same time.
The application's default login is admin / change this password now
Note the subtle nudge ;)
The bare minimum you need to be able to run Uwazi on-prem without bottlenecks is:
For development: