Newer
Older
# JAMS (Jami Account Management Server)
This will create a distribution folder called `jams` in the root folder. You can
```
cd jams
java -jar jams-launcher.jar
```
If you want to start the server with an SSL certificate and on a port different
from 8080, then run:
`java -jar jams-launcher.jar 8443 server.pem server.key`
Where the `pem` and `key` files are a pem encoded certificate and key.
## How to generate server.pem and server.key pair
In order to generate a pair of pem and key use the following command using openssl
`openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout server.key -out server.pem`
## Generate documentation
To generate the documentation you will need `apidoc` installed on your system.
This can be completed by running `npm install -g apidoc`, if for some reason
that does not work, you can clone their project from : https://github.com/apidoc/apidoc
To build the documentation, enter the `jams-server` directory and simply run:

Félix Sidokhine
committed
You can then open `doc/index.html`. Click on 1.0.0 in the top right corner if the doc doesn't appear.
## Pre-commit hook
The `extras` folder contains a pre-commit hook that formats every js file in
`jams-react-client`. To enable it, run:
```sh
cp extras/scripts/pre-commit .git/hooks
chmod +x .git/hooks/pre-commit
```

Félix Sidokhine
committed
A development environment with react hot reloading can be created using:

Félix Sidokhine
committed
```
docker build -f Dockerfile -t jams:dev --target dev .
docker run -it -p 3000:3000 -p 8080:8080 \
-v $(pwd)/jams-react-client/src:/app/jams-react-client/src \
-v $(pwd)/jams-react-client/public:/app/jams-react-client/public \
--rm jams:dev

Félix Sidokhine
committed
```
Note: It is possible that after 15 minutes, the user's token expires, the server
will answer with a "You are not authentified" and forget to put the CORS
headers, thus the browser will refuse to read the response. In this case, you
will need to restart the server.

Félix Sidokhine
committed
## Generate jams with Docker
The following commands will generate the userguide and the jars needed:

Félix Sidokhine
committed
```
docker build -f Dockerfile -t jams:latest --target prod .
docker run -v $(pwd)/jams:/jams --rm jams:latest
USER=$(whoami)
sudo chown -R $USER jams
cd jams
java -jar jams-launcher.jar

Félix Sidokhine
committed
```
## About jams-server/src/main/java/net/jami/jams/server/filters
The files in the `filters` folder are prefixed "A", "B", "C" and "D" so that the
order of execution of the filters are right (jakarta registers filters in
alphabetical order).