README.md: update documentation
This commit is contained in:
100
README.md
100
README.md
@@ -9,12 +9,11 @@ This repository is meant to support running Inventaire for testing and developme
|
|||||||
|
|
||||||
- [Requirements](#requirements)
|
- [Requirements](#requirements)
|
||||||
- [Install](#install)
|
- [Install](#install)
|
||||||
|
- [Webserver](#webserver)
|
||||||
- [Usage](#usage)
|
- [Usage](#usage)
|
||||||
- [Tips](#tips)
|
- [Tips](#tips)
|
||||||
- [Fixtures](#fixtures)
|
- [Fixtures](#fixtures)
|
||||||
- [Tests](#tests)
|
- [Path autocomplete](#path-autocomplete)
|
||||||
- [Push git commits](#push-git-commits)
|
|
||||||
- [Rootless Docker](#rootless-docker)
|
|
||||||
- [Run inventaire server and client outside of Docker](#run-inventaire-server-and-client-outside-of-docker)
|
- [Run inventaire server and client outside of Docker](#run-inventaire-server-and-client-outside-of-docker)
|
||||||
- [Troubleshooting](#troubleshooting)
|
- [Troubleshooting](#troubleshooting)
|
||||||
- [Elasticsearch errors](#elasticsearch-errors)
|
- [Elasticsearch errors](#elasticsearch-errors)
|
||||||
@@ -34,6 +33,13 @@ git clone https://github.com/inventaire/docker-inventaire.git
|
|||||||
cd docker-inventaire
|
cd docker-inventaire
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Rename `dotenv` file to `.env`, and customize the variables (mainly adding the domain name, and a couchdb password):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cp dotenv .env
|
||||||
|
vim .env
|
||||||
|
```
|
||||||
|
|
||||||
Clone `inventaire` core application [server](https://github.com/inventaire/inventaire)
|
Clone `inventaire` core application [server](https://github.com/inventaire/inventaire)
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@@ -49,36 +55,34 @@ docker-compose build
|
|||||||
Download Node dependencies and install the [client repository](https://github.com/inventaire/inventaire-client):
|
Download Node dependencies and install the [client repository](https://github.com/inventaire/inventaire-client):
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker-compose run --rm inventaire npm install
|
cd inventaire
|
||||||
|
npm install tsx && npm install
|
||||||
|
cd ..
|
||||||
```
|
```
|
||||||
|
|
||||||
Configure inventaire so that it can connect to CouchDB. For that, create a file `config/local.cjs` with the following command:
|
Configure inventaire so that it can connect to CouchDB. For that, create a file `config/local-production.cjs` with the following command:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
echo "module.exports = {
|
echo "module.exports = {
|
||||||
db: {
|
db: {
|
||||||
username: 'yourcouchdbusername',
|
hostname: 'couchdb',
|
||||||
password: 'yourcouchdbpassword'
|
},
|
||||||
|
elasticsearch: {
|
||||||
|
origin: 'http://elasticsearch:9200',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
" > ./inventaire/config/local.cjs
|
" > ./inventaire/config/local-production.cjs
|
||||||
```
|
```
|
||||||
|
|
||||||
NB: Those username and password should match the `COUCHDB_USER` and `COUCHDB_PASSWORD` environment variables set in `docker-compose.yml`
|
NB: Those username and password should match the `COUCHDB_USER` and `COUCHDB_PASSWORD` environment variables set in `docker-compose.yml`
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Start CouchDB, Elasticsearch, and the Inventaire [server](https://github.com/inventaire/inventaire) in development mode (modifications to the server files will reload the server), by default on port 3006
|
Start CouchDB, Elasticsearch, and the Inventaire [server](https://github.com/inventaire/inventaire) in production mode
|
||||||
```sh
|
```sh
|
||||||
docker-compose up
|
docker-compose up
|
||||||
```
|
```
|
||||||
|
|
||||||
To also work on the [client](https://github.com/inventaire/inventaire-client), you need to also start the webpack dev server:
|
|
||||||
```sh
|
|
||||||
cd inventaire/client
|
|
||||||
npm run watch
|
|
||||||
```
|
|
||||||
|
|
||||||
## Tips
|
## Tips
|
||||||
|
|
||||||
General tips on how to run Inventaire can be found in the [server repository docs](https://github.com/inventaire/inventaire/tree/main/docs). Here after are some additional Docker-specific tips.
|
General tips on how to run Inventaire can be found in the [server repository docs](https://github.com/inventaire/inventaire/tree/main/docs). Here after are some additional Docker-specific tips.
|
||||||
@@ -87,10 +91,10 @@ General tips on how to run Inventaire can be found in the [server repository doc
|
|||||||
|
|
||||||
In case you would like to play with out-of-the-box data.
|
In case you would like to play with out-of-the-box data.
|
||||||
|
|
||||||
Run api tests to populate tests dbs (see Tests section)
|
Run API tests to populate tests dbs
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker-compose -f docker-compose.yml -f docker-compose.test.yml exec inventaire npm run test-api
|
docker-compose -f docker-compose.yml exec inventaire npm run test-api
|
||||||
```
|
```
|
||||||
|
|
||||||
- Replicate `*-tests` dbs documents into `*` dbs
|
- Replicate `*-tests` dbs documents into `*` dbs
|
||||||
@@ -99,27 +103,9 @@ docker-compose -f docker-compose.yml -f docker-compose.test.yml exec inventaire
|
|||||||
`docker-compose exec inventaire npm run replicate-tests-db`
|
`docker-compose exec inventaire npm run replicate-tests-db`
|
||||||
```
|
```
|
||||||
|
|
||||||
### Tests
|
### Path autocomplete
|
||||||
|
|
||||||
Start services with test environnement with [multiple compose files](https://docs.docker.com/compose/extends/#understanding-multiple-compose-files)
|
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
|
||||||
|
|
||||||
```sh
|
|
||||||
docker-compose -f docker-compose.yml -f docker-compose.test.yml up
|
|
||||||
```
|
|
||||||
|
|
||||||
Execute tests script
|
|
||||||
|
|
||||||
```sh
|
|
||||||
docker-compose exec inventaire npm run test-api
|
|
||||||
```
|
|
||||||
|
|
||||||
or execute directly the test command
|
|
||||||
|
|
||||||
```sh
|
|
||||||
docker-compose exec inventaire npm test /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
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo ln ~/path/to/inventaire-docker/inventaire /opt -s
|
sudo ln ~/path/to/inventaire-docker/inventaire /opt -s
|
||||||
@@ -132,45 +118,9 @@ mkdir /supervisor/path/to/inventaire
|
|||||||
ln -s /opt/ /supervisor/path/to/inventaire
|
ln -s /opt/ /supervisor/path/to/inventaire
|
||||||
```
|
```
|
||||||
|
|
||||||
### Push git commits
|
|
||||||
|
|
||||||
To keep things simple, this installation steps above clone repositories in https, but if you want to push to a branch with ssh, you will probably need to change the repositories `origin`:
|
|
||||||
```sh
|
|
||||||
cd inventaire
|
|
||||||
git remote set-url origin git@github.com:inventaire/inventaire.git
|
|
||||||
cd client
|
|
||||||
git remote set-url origin git@github.com:inventaire/inventaire-client.git
|
|
||||||
```
|
|
||||||
|
|
||||||
### Rootless Docker
|
|
||||||
|
|
||||||
Docker Engine v20.10 is now available in rootless mode. If you would like to try it, you may follow the [official guide](https://docs.docker.com/engine/security/rootless/) (including command `export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock`).
|
|
||||||
|
|
||||||
Start the inventaire install steps above, before installing dependencies, make sure that the owner of inventaire folder is the same as the owner inside the container.
|
|
||||||
|
|
||||||
Delete `network_host` occurences from `docker-compose.yml` and adapt the `config/local.cjs` in consequence:
|
|
||||||
|
|
||||||
```js
|
|
||||||
module.exports = {
|
|
||||||
protocol: 'http',
|
|
||||||
port: 3006,
|
|
||||||
host: 'inventaire',
|
|
||||||
db: {
|
|
||||||
username: 'couchdb',
|
|
||||||
password: 'password',
|
|
||||||
protocol: 'http',
|
|
||||||
hostname: 'couch'
|
|
||||||
},
|
|
||||||
elasticsearch: {
|
|
||||||
host:'http://elasticsearch:9200'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Run inventaire server and client outside of Docker
|
### Run inventaire server and client outside of Docker
|
||||||
|
|
||||||
It can sometimes be more convenient to keep CouchDB and Elasticsearch in Docker, but to run the Inventaire server and client outside. For this you will need to:
|
It can sometimes be more convenient to keep CouchDB and Elasticsearch in Docker, but to run the Inventaire server and client outside. For this, you will need to have [NodeJS](https://nodejs.org/) >= v16 installed on your machine, which should make both `node` and `npm` executables accessible in your terminal
|
||||||
- have [NodeJS](https://nodejs.org/) >= v16 installed on your machine, which should make both `node` and `npm` executables accessible in your terminal
|
|
||||||
|
|
||||||
Then you can start CouchDB and Elasticsearch in the background
|
Then you can start CouchDB and Elasticsearch in the background
|
||||||
```sh
|
```sh
|
||||||
@@ -192,11 +142,13 @@ npm run watch
|
|||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
### Elasticsearch errors
|
### Elasticsearch errors
|
||||||
|
|
||||||
- `max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]`: fix by running the command `sudo sysctl -w vm.max_map_count=262144` on your host machine
|
- `max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]`: fix by running the command `sudo sysctl -w vm.max_map_count=262144` on your host machine
|
||||||
|
|
||||||
See also [Elasticsearch with Docker](https://www.elastic.co/guide/en/elasticsearch/reference/7.9/docker.html)
|
See also [Elasticsearch with Docker](https://www.elastic.co/guide/en/elasticsearch/reference/7.9/docker.html)
|
||||||
|
|
||||||
### Quieting CouchDB notice
|
### Quieting CouchDB notice
|
||||||
|
|
||||||
CouchDB may warn constantly that `_users` database does not exist, [as documented](https://docs.couchdb.org/en/latest/setup/single-node.html), you can create de database with:
|
CouchDB may warn constantly that `_users` database does not exist, [as documented](https://docs.couchdb.org/en/latest/setup/single-node.html), you can create de database with:
|
||||||
|
|
||||||
`curl -X PUT http://127.0.0.1:5984/_users`
|
`curl -X PUT http://127.0.0.1:5984/_users`
|
||||||
|
|||||||
Reference in New Issue
Block a user