Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 

README.md

Run your own inventaire in a docker environment Used only for testing and development purposes, so use in production at your own risk.

Requirements

Install

git clone https://github.com/inventaire/inventaire-docker.git

got to cd inventaire-docker

clone inventaire core application server -> setup

git clone https://github.com/inventaire/inventaire.git

Create empty folders for docker volumes to set themselves.

In accordance with docker-compose volumes, example: mkdir data couch-test couch es.

Ensure the owner ID of those folders is 1000: chown -R 1000:1000.

Start the magic, build everything !

docker-compose build

Download Node dependencies:

docker-compose run --rm inventaire npm install

Configure inventaire so that it can connect to CouchDB:

echo "module.exports = {
  db: {
    username: 'couchdb',
    password: 'password'
  }
}
" > ./inventaire/config/local.js

You can optionnally install translation dependencies ofinventaire-i18n [need more details]

Usage

docker-compose up -d

Create a user admin

A user admin is not that useful in development, it only allows you to merge/delete entities, see any user contributions, and a few more things. But if needed, start by signing up a user :

curl http://localhost:3006/api/auth?action=signup -d '{"username": "yourusername", "password": "yourpassword", "email":"some+email@example.org"}'

Grab the new user id

user_id=$(curl --user yourusername:yourpassword  http://localhost:3006/api/user | jq -r '._id')

Then you can either go to CouchDB GUI to manually add the "admin": true flag to your user document:

firefox "http://localhost:5984/_utils/document.html?users/${user_id}"

Or use the dedicated script, but you need to modify your local config to override the default .db.actionsScripts values:

module.exports = {
  db: {
    actionsScripts: {
      port: 5984,
      suffix: null
    }
  }
}
./scripts/actions/make_user_admin_from_id.coffee $user_id

Load wikidata entities into elasticsearch

It's possible that elasticsearch import limit is below the entities-search-engige import rate

curl -XPOST http://localhost:9200/wikidata/_close
curl -H 'Content-Type:application/json' -H 'Accept: application/json' -XPUT http://localhost:9200/wikidata/_settings -d '{"index.mapping.total_fields.limit": 20000}'
curl -XPOST http://localhost:9200/wikidata/_open

Fixtures

In case you would like to play with out-of-the-box data.

Run api tests to populate tests dbs (see Tests section)

docker-compose -f docker-compose.yml -f docker-compose.test.yml exec inventaire npm run test-api
  • Replicate *-tests dbs documents into * dbs
`docker-compose exec inventaire npm run replicate-tests-db`

Tests

Start services with test environnement with multiple compose files

docker-compose -f docker-compose.yml -f docker-compose.test.yml up

Execute tests script

docker-compose exec inventaire npm run test-api

or execute directly the test command

docker-compose exec inventaire ./node_modules/.bin/mocha --compilers coffee:coffee-script/register --timeout 20000 /opt/inventaire/path/to/test/file

Tip : create a symbolic link on your machine between the inventaire folder and docker working directory on your machine at /opt/, in order to autocomplete path to test file to execute

sudo ln ~/path/to/inventaire-docker/inventaire /opt -s

Alternatively, as root in inventaire container:

# mkdir /supervisor/path/to/inventaire # ln -s /opt/ /supervisor/path/to/inventaire

Troubleshooting

Elastic users and groups indexes are not up to date

couchdb2elastic4sync is a small libary in charge of maintaining ES indexes up to date with couchdb documents. If couchdb2elastic4sync does not find Elasticsearch search. Make sure configs files exists in inventaire/scripts/couch2elastic4sync/configs. They should be created during postinstall, but if the folder is empty, run the following scripts to create it :

docker-compose exec inventaire npm run couch2elastic4sync:init
docker-compose exec inventaire npm run couch2elastic4sync:load

About

Docker configuration experiment of https://github.com/inventaire/inventaire

Resources

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.