lamassu-server/INSTALL.md

142 lines
3.1 KiB
Markdown

# Install
## Preliminaries for Ubuntu 16.04
Installation for other distros may be slightly different. This assumes NodeJS 8.3 or higher and npm 5.6 are already installed. All of this is done in the lamassu-server directory.
### Packages
```
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib postgresql-server-dev-9.5 libpq-dev git
```
### Set up PostgreSQL
```
sudo -u postgres createdb lamassu
sudo -u postgres psql postgres
```
In ``psql``, run the following and set password to ``postgres123``:
```
\password postgres
ctrl-d
```
## Preliminaries for MacOS
### Postgres
Use Postgres.app: https://postgresapp.com/
**psql** is automatically installed. You won't need to set up users.
### NodeJS
```
curl -L https://git.io/n-install | bash -s -- -y lts
. ~/.bash_profile
```
## Installation
### Install node modules
Make sure you're running NodeJS 8.3 or higher. Ignore any warnings.
```
npm install
```
### Generate certificates
```
bash tools/cert-gen.sh
```
Notes:
- This will create a ``.lamassu`` directory in your home directory.
### Set up database
Important: lamassu-migrate currently gripes about a QueryResultError. Ignore this, it works anyway.
```
node bin/lamassu-migrate
```
### Run new-lamassu-admin
```
cd new-lamassu-admin/
npm install
npm run start
```
### Run lamassu-admin-server
In a second terminal window:
```
node bin/lamassu-admin-server --dev
```
### Register admin user
In a third terminal window:
```
node bin/lamassu-register admin@example.com superuser
```
You'll use this generated URL in the brower in a moment.
### Complete configuration
Paste the URL from lamassu-register exactly as output, into a browser (chrome or firefox).
**Important**: the host must be localhost. Tell your browser to trust the certificate even though it's not signed by a recognized CA. If you get an "expired" error, try opening https://localhost:8070/graphql in another tab and trust the certificate.
Go to all the required, unconfigured red fields and choose some values. Choose mock services whenever available.
### Run lamassu-server
```
node bin/lamassu-server --mockScoring
```
### Add a lamassu-machine
Click on ``+ Add Machine`` in the sidebar. Type in a name for your machine and click **Pair**. Open up development tools to show the JavaScript console and copy the totem. You will use this to run lamassu-machine. This pairing totem expires after an hour.
Now continue with lamassu-machine instructions from the ``INSTALL.md`` file in [lamassu-machine repository](https://github.com/lamassu/lamassu-machine).
### Run a local coin node (BTC supported)
Run `node bin/lamassu-coins` in the project root and select `Bitcoin`. This process will require the existence of certain environment variables that the setup will warn about.
Once that is done, the node needs to be run in a terminal with the following command `<YOUR_BLOCKCHAIN_DIR_ENV_VAR>/bin/bitcoind -datadir=<YOUR_BLOCKCHAIN_DIR_ENV_VAR>/bitcoin`
## Subsequent runs
To start the Lamassu server run:
```
node bin/lamassu-server --mockScoring
```
To start the Lamassu Admin run:
```
node bin/lamassu-admin-server --dev
```
and
```
cd new-lamassu-admin/
npm run start
```