Skip to content

Commit

Permalink
update docs about cli setup and docker-compose
Browse files Browse the repository at this point in the history
  • Loading branch information
filipmacek committed Apr 21, 2024
1 parent 9f18131 commit af0f876
Showing 1 changed file with 90 additions and 0 deletions.
90 changes: 90 additions & 0 deletions docs/developer_guide/environment_setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,93 @@ Following any changes to `.pyx` or `.pxd` files, you can re-compile by running:
or

make build

## Services
You can use `docker-compose.yml` file located in `.docker` directory
to bootstrap the Nautilus working environment. This will start the following services:

```bash
docker-compose up -d
```

If you only want specific services running (like `postgres` for example), you can start them with command:

```bash
docker-compose up -d postgres
```

Used services are:

- `postgres` - Postgres database with root user `POSTRES_USER` which defaults to `postgres`, `POSTGRES_PASSWORD` which defaults to `pass` and `POSTGRES_DB` which defaults to `postgres`
- `redis` - Redis server
- `pgadmin` - PgAdmin4 for database management and administration

> **Note:** Please use this as development environment only. For production, use a proper and more secure setup.
After the services has been started, you must login with `psql` cli to create `nautilus` Postgres database.
To do that you can run, and type `POSTGRES_PASSWORD` from docker service setup

```bash
psql -h localhost -p 5432 -U postgres
```

After you have long as `postgres` administrator, run `CREATE DATABASE` command with target name( we use `nautilus`):

```
psql (16.2, server 15.2 (Debian 15.2-1.pgdg110+1))
Type "help" for help.
postgres=# CREATE DATABASE nautilus;
CREATE DATABASE
```

## Nautilus CLI Developer Guide

## Introduction

The Nautilus CLI is a command-line interface tool designed to interact
with the Nautilus Trader ecosystem. It provides commands for managing the Postgres database and other trading operations.

> **Note:** The Nautilus CLI command is only supported on UNIX-like systems.

## Install

You can install nautilus cli command with from Make file target, which will use `cargo install` under the hood.
And this command will install `nautilus` bin executable in your path if Rust `cargo` is properly configured.

```bash
make install-cli
```

## Commands
You can run `nautilus --help` to inspect structure of CLI and groups of commands:

### Database
These are commands related to the bootstrapping the Postgres database.
For that you work, you need to supply right connection configuration. You can do that through
command line arguments or `.env` file in the root directory or where the commands is being run.

- `--host` arg or `POSTGRES_HOST` for database host
- `--port` arg or `POSTGRES_PORT` for database port
- `--user` arg or `POSTGRES_USER` for root administrator user to run command with (namely `postgres` root user here)
- `--password` arg or `POSTGRES_PASSWORD` for root administrator password
- `--database` arg or `POSTGRES_DATABASE` for both database **name and new user** that will have privileges of this database
( if you provided `nautilus` as value, then new user will be created with name `nautilus` that will inherit the password from `POSTGRES_PASSWORD`
and `nautilus` database with be bootstrapped with this user as owner)

Example of `.env` file

```
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USERNAME=postgres
POSTGRES_DATABASE=nautilus
POSTGRES_PASSWORD=pass
```

List of commands are:

1. `nautilus database init` - it will bootstrap schema, roles and all sql files located in `schema` root directory (like `tables.sql`)
2. `nautilus database drop` - it will drop all tables, role and data in target Postgres database

0 comments on commit af0f876

Please sign in to comment.