Installation of Shuffle is currently available for docker and kubernetes.
This document outlines an introduction environment which is not scalable. Read here for information on production readiness and scalability. This also includes system requirements and configurations for Docker Swarm or Kubernetes.
The Docker setup is the default setup, and is ran with docker compose. This is NOT a scalable build without changes.
PS: if you're setting up Shuffle on Windows, go to the next step (Windows Docker setup)
Download Shuffle
git clone https://github.com/Shuffle/Shuffle
cd Shuffle
Fix prerequisites for the Opensearch database (Elasticsearch also works). This requires the shuffle-database folder to exist.
```bash
sudo chown -R 1000:1000 shuffle-database # IF you get an error using 'chown', add the user first with 'sudo useradd opensearch'
sudo swapoff -a # Disable swap
4. Run docker-compose.
```bash
docker compose up -d
bash
sudo sysctl -w vm.max_map_count=262144 # https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html
When you're done, go to the After installation step below.
This step is for setting up with Docker on windows from scratch.
Make sure you have Docker and docker-compose installed. WSL2 may be required.
Go to https://github.com/frikky/shuffle/releases and download the latest .zip release (or install git)
Unzip the folder and enter it
Open the .env file and change the line with "OUTER_HOSTNAME" to contain your IP:
OUTER_HOSTNAME=YOUR.IP.HERE
bash
docker compose up -d
https://shuffler.io/docs/configuration
Local development is pretty straight forward with ReactJS and Golang. This part is intended to help you run the code for development purposes. We recommend having Shuffle running with the Docker-compose, then manually running the portion that you want to test and/or edit.
PS: You have to stop the Backend Docker container to get this one working
PPS: Use the "main" branch when developing to get it set up easier
http://localhost:3000 - Requires npm/yarn/your preferred manager. Runs independently from backend.
cd frontend
yarn install
yarn start
http://localhost:5001 - REST API - requires >=go1.13
export SHUFFLE_OPENSEARCH_URL="https://localhost:9200"
export SHUFFLE_ELASTIC=true
export SHUFFLE_OPENSEARCH_USERNAME=admin
export SHUFFLE_OPENSEARCH_PASSWORD=StrongShufflePassword321!
export SHUFFLE_OPENSEARCH_SKIPSSL_VERIFY=true
cd backend/go-app
go run main.go walkoff.go docker.go
WINDOWS USERS: Follow this guide to add environment variables in your machine.
Large portions of the backend is written in another repository - shuffle-shared. If you want to update any of this code and test in realtime, we recommend following these steps:
//replace github.com/frikky/shuffle-shared => ../../shuffle-shared
Make sure this is running through the docker-compose, and that the backend points to it with SHUFFLE_OPENSEARCH_URL defined.
What it means:
docker-compose up opensearch -dExecution of Workflows: PS: This requires some specific environment variables
cd functions/onprem/orborus
go run orborus.go
Environments (modify for Windows):
export ORG_ID=Shuffle
export ENVIRONMENT_NAME=Shuffle
export BASE_URL=http://YOUR-IP:5001
export DOCKER_API_VERSION=1.40
AND THAT's it - hopefully it worked. If it didn't please email frikky@shuffler.io