Home

Awesome

<h1 align="center"> <br> <a href="https://purpleops.app"><img src="static/images/logo.png" alt="PurpleOps Logo" width="200"></a> <br> PurpleOps <br> </h1> <h4 align="center">An open-source self-hosted purple team management web application.</h4> <p align="center"> <a href="LICENSE"><img src="https://img.shields.io/badge/Licence-blue?logo=unlicense&logoColor=white"> <a href="https://docs.purpleops.app"><img src="https://img.shields.io/badge/Docs-blue?logo=readthedocs&logoColor=white"> </p> <p align="center"> <a href="#key-features">Key Features</a> • <a href="#installation">Installation</a> • <a href="#contact-us">Contact Us</a> • <a href="#credits">Credit</a> • <a href="#license">License</a> </p> <p align="center"> <img src="static/images/demo.gif"> </p>

Key Features

How PurpleOps is different:

Installation

Default

# Clone this repository
$ git clone https://github.com/CyberCX-STA/PurpleOps

# Go into the repository
$ cd PurpleOps

# Alter PurpleOps settings (if you want to customize anything but should work out the box)
$ nano .env

# Run the app with docker (add `-d` to run in background)
$ sudo docker compose up

# PurpleOps should now by available on http://localhost:5000, it is recommended to add a reverse proxy such as nginx or Apache in front of it if you want to expose this to the outside world.
<details> <summary><h3>Kali</h3></summary>
# Install docker-compose
sudo apt install docker-compose -y

# Clone this repository
$ git clone https://github.com/CyberCX-STA/PurpleOps

# Go into the repository
$ cd PurpleOps

# Alter PurpleOps settings (if you want to customize anything but should work out the box)
$ nano .env

# Run the app with docker (add `-d` to run in background)
$ sudo docker-compose up

# PurpleOps should now by available on http://localhost:5000, it is recommended to add a reverse proxy such as nginx or Apache in front of it if you want to expose this to the outside world.
</details> <details> <summary><h3>Manual</h3></summary>
# Alternatively
$ sudo docker run --name mongodb -d -p 27017:27017 mongo
$ pip3 install -r requirements.txt
$ python3 seeder.py
$ python3 purpleops.py
</details> <details> <summary><h3>NGINX Reverse Proxy + Certbot</h3></summary>

Replace 2x purpleops.example.com with your FQDN and ensure your box is open internet-wide on 80/443.

sudo apt install nginx certbot python3-certbot-nginx -y
sudo nano /etc/nginx/sites-available/purpleops # Paste below file
sudo ln -s /etc/nginx/sites-available/purpleops /etc/nginx/sites-enabled/
sudo certbot --nginx -d purpleops.example.com
sudo service nginx restart
server {
  listen 80;
  server_name purpleops.example.com;

  location / {
      proxy_pass http://localhost:5000;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
  }
}
</details> <details> <summary><h3>IP Whitelisting with ufw</h3></summary>
sudo apt install ufw -y
sudo ufw allow 22
sudo ufw deny 80
sudo ufw deny 443
sudo ufw insert 1 allow from 100.100.100.100/24 to any port 443
sudo ufw enable
</details>

Contact Us

We would love to hear back from you, if something is broken or have and idea to make it better add a ticket or connect to us on the PurpleOps Discord or email us at pops@purpleops.app | @_w_m__

Credits

License

Apache