created a docker-compose.yml file in .docker directory to help bootstrap all the services used by nautilus system
added new Makefile target install-cli that build and install nautilus CLI executable
updated docs/developer_guide/environment_setup.md with documentation around running services with docker-compose, how to build and use nautilus cli, and which commands are currently implemented
created a new cli rust crate that contains Rust CLI design with target commands
fixed build.rs warning when running install-cli by conditionally importing std env based on FFI feature (to suppress warnings)
WIP SQL Nautilus in schema/tables.sql that is being heavy developed
Demo
Steps to reproduce and try
Services
You can use docker-compose.yml file located in .docker directory
to bootstrap the Nautilus working environment. This will start the following services:
docker-compose up -d
If you only want specific services running (like postgres for example), you can start them with command:
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
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.
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)
Pull Request
docker-compose.yml
file in.docker
directory to help bootstrap all the services used by nautilus systemMakefile
targetinstall-cli
that build and installnautilus
CLI executabledocs/developer_guide/environment_setup.md
with documentation around running services withdocker-compose
, how to build and usenautilus
cli, and which commands are currently implementedcli
rust crate that contains Rust CLI design with target commandsbuild.rs
warning when runninginstall-cli
by conditionally importing std env based on FFI feature (to suppress warnings)schema/tables.sql
that is being heavy developedDemo
Steps to reproduce and try
Services
You can use
docker-compose.yml
file located in.docker
directory to bootstrap the Nautilus working environment. This will start the following services:If you only want specific services running (like
postgres
for example), you can start them with command:Used services are:
postgres
- Postgres database with root userPOSTRES_USER
which defaults topostgres
,POSTGRES_PASSWORD
which defaults topass
andPOSTGRES_DB
which defaults topostgres
redis
- Redis serverpgadmin
- PgAdmin4 for database management and administrationAfter you have long as
postgres
administrator, runCREATE DATABASE
command with target name( we usenautilus
):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.
Install
You can install nautilus cli command with from Make file target, which will use
cargo install
under the hood. And this command will installnautilus
bin executable in your path if Rustcargo
is properly configured.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 orPOSTGRES_HOST
for database host--port
arg orPOSTGRES_PORT
for database port--user
arg orPOSTGRES_USER
for root administrator user to run command with (namelypostgres
root user here)--password
arg orPOSTGRES_PASSWORD
for root administrator password--database
arg orPOSTGRES_DATABASE
for both database name and new user that will have privileges of this database ( if you providednautilus
as value, then new user will be created with namenautilus
that will inherit the password fromPOSTGRES_PASSWORD
andnautilus
database with be bootstrapped with this user as owner)Example of
.env
fileList of commands are:
nautilus database init
- it will bootstrap schema, roles and all sql files located inschema
root directory (liketables.sql
)nautilus database drop
- it will drop all tables, role and data in target Postgres database