
Ryax
Ryax is an open-source platform that streamlines the design, deployment, and monitoring of Cloud automations and APIs.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
·
Talk with the devs
⭐ About the project
Ryax is an open-source platform that streamlines the design, deployment, and monitoring of Cloud automations and APIs.
⚙ The source code
Ryax is composed of multiple micro-services and tools. To learn more about the internal architecture, see the documentation. The main components are:
User interfaces
cli: The CLI to command Ryax
front: The WebUI.
adm: The Ryax ADMinistrationn tool. To install, update, backup and more.
Micro-services
authorization: Answer to the question: “do you have the rights to do so?”.
repository: Scan git repositories to find actions.
runner: A trigger or an action run? It handles it.
studio: Handles the edition of workflows.
action-builder: Builds actions and triggers.
ryax-action-wrappers: The code between the action code and Ryax.
Other
default-actions: Some open-source actions and triggers.
errored-actions: Actions with errors, very useful to test the robustness of Ryax.
common-helm-charts: Set of common templates for Ryax services library charts
Main technologies used by Ryax
The code: Python, dependency-injector, SQLalchemy, GRPC.
Around the code: Nix, poetry, black, mypy.
Deploying Ryax: Kubernetes, Terraform, Helm.
⚡ Getting started with Ryax
On a local machine
We recommend this option if you wish to test our product with a minimal amount of configuration steps, and if you have enough RAM (~3GB) available.
You need the following dependencies :
Helm-diff plugin:
helm plugin add https://github.com/databus23/helm-diff
Poetry (Or
nix-shell
, although poetry is substantially faster)
Once these are available on your machine:
Clone ryax-adm and
cd
into it.Run
poetry install
to generate a virtual environment for python.Run
poetry shell
to activate the virtual environment. These last two steps can also be replaced bynix-shell
, although this one can take a while.Run
./local_ryax/local-ryax.sh
to deploy a Ryax instance on your machine withkind
. It takes a while.Connect to
http://localhost
on your web browser and voilà.
/!\ Warning To make it easier for you to access the cluster from your browser, we expose the ports 80 (http) and 443 (https) on your local machine. Make sure these aren’t already used!
On an existing Kubernetes cluster
This is the standard and recommended approach.
Make sure you’re on the intended cluster:
kubectl config current-context
Get a basic configuration for your new cluster:
docker run -v $PWD:/data/volume -u $UID ryaxtech/ryax-adm init --values volume/ryax_values.yaml
Edit it if needed:
vim ryax_values.yaml # Or your favorite text editor
Install:
docker run -v $PWD:/data/volume -u $UID ryaxtech/ryax-adm apply --values volume/ryax_values.yaml --suppress-diff
Get the external IP of Ryax, and connect to it on your browser:
kubectl -n kube-system get svc traefik
For more details on the configuration, see our documentation.
🛹 Roadmap
A more complete roadmap will be published soon.
[x] Create workflows
[x] Support actions and triggers made in python
[x] User and project management
[x] Create HTTP API
[ ] Support actions and triggers made in javascript
🤗 Contributing
If you want to say thank you and/or support the active development of Ryax:
Add a GitHub Star to the project.
Tweet about the project on your Twitter.
Write a review or tutorial on Medium, Dev.to or personal blog.
Share some triggers and actions with the community.
Fix bugs and implement features to our code.