Cleaned up README
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# Shuffle
|
||||
[Shuffle](https://shuffler.io) is an automation platform for your security stack (SOAR). It uses Docker for scaling and OpenAPI for integrations. Shuffle has the possibility to run across multiple isolated environments and tracks progress for you.
|
||||
[Shuffle](https://shuffler.io) is the platform for automation needs (SOAR). It has thousands of premade integrations and uses open frameworks like OpenAPI to ease migration. The workflow editor is based on a no-code thought process to empower non-developer, and the app creator makes you able to inegrate any platform in minutes.
|
||||
|
||||
**It's in BETA**, but if you want to implement Shuffle - [get in touch](https://shuffler.io/contact), send a mail to [frikky@shuffler.io](mailto:frikky@shuffler.io) or on twitter [@frikkylikeme](https://twitter.com/frikkylikeme)
|
||||
**It's in BETA** - [Get in touch](https://shuffler.io/contact), send a mail to [frikky@shuffler.io](mailto:frikky@shuffler.io) or poke me on twitter [@frikkylikeme](https://twitter.com/frikkylikeme)
|
||||
|
||||

|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
## Related repositories
|
||||
* Apps: https://github.com/frikky/shuffle-apps
|
||||
* Workflows: https://github.com/frikky/shuffle-workflows (empty)
|
||||
* Security OpenAPI apps: https://github.com/frikky/OpenAPI-security-definitions
|
||||
* Documentation: https://github.com/frikky/shuffle-docs
|
||||
* OpenAPI apps: https://github.com/frikky/OpenAPI-security-definitions
|
||||
|
||||
## Documentation
|
||||
Documentation can be found on https://shuffler.io/docs/about or in your own instance. Currently lacking:
|
||||
@@ -21,113 +21,42 @@ Documentation can be found on https://shuffler.io/docs/about or in your own inst
|
||||
* Updates after migrating from SaaS to open source
|
||||
|
||||
## Features
|
||||
* Premade workflows for TheHive and MISP
|
||||
* Simple workflow automation editor
|
||||
* Premade apps for a number of security tools
|
||||
* Simple workflow editor
|
||||
* App creator for [OpenAPI](https://github.com/frikky/OpenAPI-security-definitions)
|
||||
* Easy to learn Python library for custom apps
|
||||
|
||||
## In the works
|
||||
* Premade workflows for security professionals
|
||||
* Dashboard - Statistics are implemented
|
||||
* Debug view for manual executions
|
||||
* App versioning
|
||||
|
||||
## Support
|
||||
Open an issue on Github, or [join the gitter chat](https://gitter.im/Shuffle-SOAR/community). For other / private requests: [frikky@shuffler.io](mailto:frikky@shuffler.io)
|
||||
|
||||
### Setup - Local development
|
||||
Frontend - requires [npm](https://nodejs.org/en/download/)/[yarn](https://yarnpkg.com/lang/en/docs/install/#debian-stable)/your preferred manager. Runs independently from backend - edit frontend/src/App.yaml (line 44~) from window.location.origin to http://YOUR IP:5001
|
||||
```bash
|
||||
cd frontend
|
||||
npm i
|
||||
npm start
|
||||
```
|
||||
## Website
|
||||
https://shuffler.io
|
||||
|
||||
Backend - API calls - requires [>=go1.13](https://golang.org/dl/)
|
||||
```bash
|
||||
export DATASTORE_EMULATOR_HOST=0.0.0.0:8000
|
||||
cd backend/go-app
|
||||
go build
|
||||
go run *.go
|
||||
```
|
||||
## License
|
||||
All modular information related to Shuffle will be under MIT (anyone can use it for whatever purpose), with Shuffle itself using AGPLv3.
|
||||
|
||||
Database - Datastore:
|
||||
```
|
||||
docker run -p 8000:8000 google/cloud-sdk gcloud beta emulators datastore start --project=shuffle --host-port 0.0.0.0:8000 --no-store-on-disk
|
||||
```
|
||||
Apps & App SDK: MIT
|
||||
Shuffle backend: AGPLv3
|
||||
|
||||
Orborus - Execution of Workflows:
|
||||
PS: This requires some specific environment variables.
|
||||
```
|
||||
cd functions/onprem/orborus
|
||||
go run orborus.go
|
||||
```
|
||||
|
||||
|
||||
### Project overview
|
||||
### Project overview
|
||||
Below is the folder structure with a short explanation
|
||||
```bash
|
||||
├── README.md # :)
|
||||
├── backend # Contains directly backend related code. Go with sh tests
|
||||
├── README.md # What you're reading right now
|
||||
├── backend # Contains backend related code.
|
||||
│ ├── go-app # The backend golang webserver
|
||||
│ ├── app_gen # Code for app generation outside the Shuffle platform
|
||||
│ └── app_sdk # The SDK used for apps
|
||||
├── frontend # Contains frontend code. ReactJS and cytoscape. Horrible code :)
|
||||
├── app_gen # Contains code generation projects for OpenAPI or PythonLib -> Shuffler app
|
||||
├── functions # Contains google cloud function code mainly.
|
||||
│ ├── static_baseline.py # Static code used by stitcher.go to generate code
|
||||
│ ├── stitcher.go # Attempts to stitch together an app - part of backend now
|
||||
│ ├── onprem # Code for onprem solutions
|
||||
│ │ ├── Orborus # Distributes execution locations
|
||||
│ │ ├── Worker # Runs a workflow
|
||||
│ │ └── App_SDK # Backend of individual apps
|
||||
│ └── triggers # Custom triggers used in https://shuffler.io/workflows
|
||||
└ docker-compose.yml # Used for deployments
|
||||
```
|
||||
|
||||
# Technology
|
||||
GCP was chosen because why not use the best thingies. "Serverless" \o/
|
||||
```bash
|
||||
├── languages
|
||||
│ ├── Go # I like go, which is why go.
|
||||
│ ├── Python3.7 # 3.7 specifically because of f-strings and 2.7 deprecation in 2020
|
||||
│ ├── Javascript # Frontend stuff. Uses ReactJS + Cytoscape for visualization
|
||||
│ ├── sh/Bash # Basic testing and some deployments
|
||||
├── gcloud
|
||||
│ ├── datastore # TODO: Move away from this
|
||||
├── onprem
|
||||
│ ├── Docker # Runs the same cloud functions. I didn't like the thought of proxies
|
||||
```
|
||||
|
||||
# Migration
|
||||
Shuffle was initially built for cloud and SaaS, and a lot broke when it was moved to local execution.
|
||||
There will be a major overhaul to the backend specifically. I'm currently moving and updating the following:
|
||||
- Create dockerfiles and a single runscript
|
||||
- * App creator - (Cloud function -> Docker)
|
||||
- * Workflows - Run workflows locally
|
||||
- * App list - IMPORT EXISTING APPS
|
||||
- * Dockerfiles - Load the ones that are in workflows with a new version
|
||||
- * Docker-compose- Frontend, backend, db & orborus
|
||||
- * Configuration - Write setup documentation - Did for docker
|
||||
- * Remove orborus? Can deploy straight, but that would be weird - Won't do this yet
|
||||
- * Full OpenAPI support with authentication schemes in App creator (not Oauth2 yet)
|
||||
- * Change workflow name
|
||||
- * User run statistics
|
||||
- Extended result data usage, build json with answers, not just "from previous action"
|
||||
- Workflows - IMPORT DEFAULT WORKFLOWS - Create some towards e.g. TheHive & MISP.
|
||||
- Documentation - General documentation /docs rewrite
|
||||
- API doc - 1. In Shuffle. 2. In e.g. python
|
||||
- Fix scheduler
|
||||
- Use variables in e.g. JSON body
|
||||
- Add random secret to orborus
|
||||
|
||||
```
|
||||
# 1. export DATASTORE_EMULATOR_HOST=0.0.0.0:8000
|
||||
# 2. docker run -p 8000:8000 google/cloud-sdk gcloud beta emulators datastore start --project=shuffle --host-port 0.0.0.0:8000 --no-store-on-disk
|
||||
```
|
||||
* Mail: Use appengine and connect to sendmail
|
||||
|
||||
# Update for users:
|
||||
* Build from scratch (docker-compose)
|
||||
* Push stable builds to Dockerhub
|
||||
|
||||
### Migration issues:
|
||||
* Some workflows where items have multiple parents don't work.
|
||||
* Fix dummy.json (GCP config) - bypass this somehow.
|
||||
|
||||
+34
-2
@@ -21,14 +21,46 @@ cd Shuffle
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
## After installation
|
||||
### After installation
|
||||
1. After installation, go to http://localhost:3001/adminsetup (or your servername)
|
||||
|
||||
2. Now set up your admin account (username & password). Shuffle doesn't have a default username and password.
|
||||
|
||||

|
||||
|
||||
## Useful info
|
||||
### Useful info
|
||||
* The server is available on http://localhost:3001 (or your servername)
|
||||
* Further configurations can be done in docker-compose.yml and .env.
|
||||
* Default database location is /etc/shuffle
|
||||
|
||||
|
||||
|
||||
## Local development installation
|
||||
Frontend - requires [npm](https://nodejs.org/en/download/)/[yarn](https://yarnpkg.com/lang/en/docs/install/#debian-stable)/your preferred manager. Runs independently from backend - edit frontend/src/App.yaml (line 44~) from window.location.origin to http://YOUR IP:5001
|
||||
```bash
|
||||
cd frontend
|
||||
npm i
|
||||
npm start
|
||||
```
|
||||
|
||||
Backend - API calls - requires [>=go1.13](https://golang.org/dl/)
|
||||
```bash
|
||||
export DATASTORE_EMULATOR_HOST=0.0.0.0:8000
|
||||
cd backend/go-app
|
||||
go build
|
||||
go run *.go
|
||||
```
|
||||
|
||||
Database - Datastore:
|
||||
```
|
||||
docker run -p 8000:8000 google/cloud-sdk gcloud beta emulators datastore start --project=shuffle --host-port 0.0.0.0:8000 --no-store-on-disk
|
||||
```
|
||||
|
||||
Orborus - Execution of Workflows:
|
||||
PS: This requires some specific environment variables.
|
||||
```
|
||||
cd functions/onprem/orborus
|
||||
go run orborus.go
|
||||
```
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user