From dfbb9c73bc1ed8700940183b2b6cef1cca610674 Mon Sep 17 00:00:00 2001 From: fatihbaltaci Date: Mon, 24 Apr 2023 16:51:56 +0300 Subject: [PATCH] Update readme --- selfhosted/README.md | 80 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 3 deletions(-) diff --git a/selfhosted/README.md b/selfhosted/README.md index c66f7834..d3e17e30 100644 --- a/selfhosted/README.md +++ b/selfhosted/README.md @@ -1,8 +1,64 @@ -# Self hosted +# Ddosify Self hosted -## Add New Engine +## Introduction -The Ddosify Self-Hosted includes a default engine out of the box. To integrate additional engines, simply run a Docker container for each new engine. These engine containers will automatically register with the service and become available for use. Before adding new engines, ensure that you have enabled the distributed mode by clicking the `Unlock the Distributed Mode` button in the dashboard. +## Features + +✅ **No Code Web UI**: No need to write code to run load tests. Simply specify the target URL and the load test parameters. + +✅ **Distributed Mode**: Scale your load testing capabilities by utilizing multiple engines simultaneously. + +✅ **Arm64 and Amd64 Support**: Broad architecture compatibility ensures the tool works seamlessly across different systems on both Linux and MacOS. + +✅ **Dockerized**: Containerized solution simplifies deployment and reduces dependency management overhead. + +✅ **Easy to Deploy**: Automated setup processes using Docker Compose. + + +## 🛠 Prerequisites + +- [Git](https://git-scm.com/) +- [Docker](https://docs.docker.com/get-docker/) +- [Docker Compose](https://docs.docker.com/compose/install/) + +## ⚡️ Quick Start (Recommended) + +You can quickly deploy Ddosify Self Hosted by running the following command. This script clones the Ddosify repository to your `$HOME/.ddosify` directory, and deploys the services using Docker Compose. Please check the [install.sh](./install.sh) file to see what it does. + +```bash +curl -sSL https://raw.githubusercontent.com/ddosify/ddosify/selfhosted_release/selfhosted/install.sh | bash +``` + +## 📖 Manual Installation + +### 1. Clone the repository + +```bash +git clone https://github.com/ddosify/ddosify.git +cd ddosify/selfhosted +``` + +### 2. Update the environment variables (optional) + +The default values for the environment variables are set in the [.env](./.env) file. You can modify these values to suit your needs. The following environment variables are available: + +- `DOCKER_INFLUXDB_INIT_USERNAME`: InfluxDB username. Default: `admin` +- `DOCKER_INFLUXDB_INIT_PASSWORD`: InfluxDB password. Default: `ChangeMe` +- `DOCKER_INFLUXDB_INIT_ADMIN_TOKEN`: InfluxDB admin token. Default: `5yR2qD5zCqqvjwCKKXojnPviQaB87w9JcGweVChXkhWRL` +- `POSTGRES_PASSWORD`: Postgres password. Default: `ChangeMe` + +### 3. Deploy the services + +```bash +docker-compose up -d +``` +### 4. Access the dashboard + +The dashboard is available at [http://localhost:8014](http://localhost:8014) + +## 🔧 Add New Engine + +The Ddosify Self Hosted includes a default engine out of the box. To integrate additional engines, simply run a Docker container for each new engine. These engine containers will automatically register with the service and become available for use. Before adding new engines, ensure that you have enabled the distributed mode by clicking the `Unlock the Distributed Mode` button in the dashboard. Make sure the new engine server can access the service server. Use the `DDOSIFY_SERVICE_ADDRESS` environment variable to specify the service server address where the install.sh script was executed. @@ -32,3 +88,21 @@ docker run --name $NAME -dit \ ``` You should see `mq_waiting_new_job` log in the engine container logs. This means that the engine is waiting for a job from the service server. After the engine is added, you can see it in the Engines page. + + +## 🧩 Services Overview + +| Service | Description | +|----------------------|---------------------------------------------------------------------------------------------------| +| Hammer | The engine responsible for executing load tests. You can add multiple hammers to scale your load testing capabilities. | +| Hammer Manager | Manages the engines (Hammers) involved in load testing. | +| Backend | Handles load test management and stores results. | +| InfluxDB | Database that stores metrics collected during testing. | +| Postgres | Database that preserves load test results. | +| RabbitMQ | Message broker enabling communication between Hammer Manager and Hammers. | +| Minio Object Storage | Object storage for multipart files and test data (CSV) used in load tests. | +| Nginx | Reverse proxy for backend and frontend services. | + +## 📝 License + +Ddosify Self Hosted is licensed under the AGPLv3: https://www.gnu.org/licenses/agpl-3.0.html