Kryptos AI is a virtual investment assistant that manages your cryptocurrency portfolio. To learn more, check out the Kryptos Slide Deck and the Kryptos White Paper.
To get the entire project up and running locally:
Clone the repo:
$ git clone https://github.com/produvia/kryptos.git
$ cd kryptos
Build the docker images
$ docker-compose build
$ docker-compose up
This will spin up a web, worker, ml, postgres, and redis container.
The web app will be accessible at http://0.0.0.0:8080
You can also view the RQ dashboard at http://0.0.0.0:8080/rq
Hitting Ctl-C will stop all the containers. To prevent this and run the containers in the background:
$ docker-compose up -d
You can then selectively view the logs of any of the containers
$ docker-compose logs -f <web|worker|ml>
Once the containers are running, you can access the the shell of any of the containers, use the exec
command
For instance, to run strategies from CLI:
$ docker-compose exec worker bash
This will provide a command prompt inside the worker container from which you can run the strat
command
For example, to work on the ML service:
# start all containers w/o logging
$ docker-compose up -d
# enter the ml shell
$ docker-compose exec ml bash
# or enter the worker shell to run a strategy
$ docker-compose exec worker bash
Then to stream ML logs in a separate terminal
docker-compose logs -f ml
To stop all containers
$ docker-compose stop
To stopa specific container
$ docker-compose stop <web|worker|ml>
When contributing to the codebase, please follow the branching model described here
Essentially, the two main branches are
master
: the main branch containing the latest stable code released to productiondevelop
: the "Work in Progress" branch where all new changes are merged into
Then there are feature branches. These are the branches where you will make most of your commits. They branch off of develop, and are merged back into develop when the feature is complete.
Remember to get the lastest changes
$ git checkout develop
$ git pull
Then create your new feature branch
$ git checkout -b feature/<YOUR_FEATURE_NAME>
To push your latest changes to the repo
$ git push origin feature<YOUR_FEATURE_BRANCH>
When you are ready to merge your feature branch back into develop
- Ensure you have pushed your latest changes to the origin feature/<FEATURE_BRANCH> branch
- Submit a pull request to the
develop
branch
For more information, check out documentation for the different services: