Vilicus (from Latin, meaning overseer or supervisor) is a Bug Bounty API Dashboard. This platform is designed to simplify the process of bug bounty hunting by aggregating data from various sources and presenting it in an easy-to-understand dashboard.
To get Vilicus up and running, you'll need the following:
- Python3
- Docker
- Docker-compose
Follow these steps to install and run Vilicus:
-
Clone the Vilicus repository to your local machine.
git clone https://github.com/PatrikFehrenbach/vilicus.git cd vilicus
-
Start the Docker services.
docker-compose up
Wait for Docker to pull the necessary images and start the services. This may take a while.
-
In a new terminal window, install the required Python packages.
python3 -m pip install -r requirements.txt
-
Start the Vilicus server.
python3 run.py
This will start the server and the application will be accessible at
localhost:5000
(or whatever port you've configured). -
Visit the dashboard in your web browser.
Contributions are always welcome. If you find a bug or want to add a new feature, feel free to create a new issue or open a pull request.
This project is open-source and available under the MIT License.
Create a new domain. The request body should contain a JSON object with a "name" field.
Request Body:
{ "name": "domain name" }
Responses:
201: 'Domain added successfully!' 400: 'No domain name provided'
Update the name of an existing domain. The request body should contain a JSON object with a "name" field.
Request Body:
{ "name": "new domain name" }
Responses:
200: 'Domain updated successfully!' 400: 'No new domain name provided' 404: 'Domain not found'
Delete a specific domain by its name.
Responses:
200: 'Domain deleted successfully!' 404: 'Domain not found'
Export all domains.
Responses:
200: List of all domains
Search domains by query. The query should be passed as a URL parameter.
Responses:
200: Search results
Create a new subdomain for a specific domain. The request body should contain a JSON object with a "subdomain_name" field.
Request Body:
{ "subdomain_name": "subdomain name" }
Responses:
201: 'Subdomain added successfully!' 400: 'No subdomain name provided' 404: 'Main domain not found'
Update the name of an existing subdomain for a specific domain. The request body should contain a JSON object with a "name" field.
Request Body:
{ "name": "new subdomain name" }
Responses:
200: 'Subdomain updated successfully!' 400: 'No new subdomain name provided' 404: 'Main domain not found' 404: 'Subdomain not found'
Delete a specific subdomain for a specific domain.
Responses:
200: 'Subdomain deleted successfully!' 404: 'Main domain not found' 404: 'Subdomain not found'
Export all subdomains.
Responses:
200: List of all subdomains
Export all subdomains of a specific domain.
Responses:
200: List of all subdomains of the specified domain 404: 'Domain not found'
Search subdomains by query. The query should be passed as a URL parameter.
Responses:
200: Search results
Fetch all subdomains added in the last hour.
Responses:
200: List of all subdomains added in the last hour
Fetch all domains sorted by the count of their subdomains in descending order.
Responses:
200: List of all domains sorted by subdomains count