🔍 Analyze HTTP and DNS requests and create custom DNS records for your subdomain.
Quick-start using git and docker compose:
git clone https://github.com/adrgs/requestrepo.git
cd requestrepo
cp .env.example .env # modify .env as needed
docker compose up --build
This will setup a production-ready environment with the following services:
- 🌐 HTTP/S server on ports 80 and 443
- 🔌 DNS server on port 53
In order for DNS logging to work, the public IP of the DNS service must be set up as the authoritative nameserver for the domain.
If the domain registrar does not allow setting up IPs directly as nameservers, a workaround is to use a service like traefik.me
To enable the ip2country feature, you need to download the free IP to Country Lite database from db-ip.
The csv file must be placed in ip2country/vendor/dbip-country-lite.csv.gz
For development, it is recommended to use the Makefile to start the services for the best developer experience.
# Start the backend service
make start-backend
# Start the frontend service
make start-frontend
The DNS server needs to be started manually:
# Start the DNS server
cd dns; python ns.py
Thank you for reporting a security issue in requestrepo:
- debsec - 🔒 LFI via improper path handling
- JaGoTu - 🛡️ DoS via unrestricted file upload
- m0z - 🔐 LFI via session subdomain
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests.
- 🐍 Python 3.11+
- 📦 Node.js 18+
- 📜 Poetry
- 🐳 Docker (for Redis)
To set up the development environment, run:
make install
This will:
- 📥 Install backend dependencies using Poetry
- 📦 Install frontend dependencies using npm
- 🔒 Set up git hooks for code quality checks
The following git hooks are installed automatically:
- pre-commit: ✨ Runs formatting and linting checks before each commit
- pre-push: 🧪 Runs formatting, linting, and tests before pushing to remote
These hooks ensure that your code meets quality standards before being shared with others.
make install
- 🔧 Install dependencies and git hooksmake install-deps
- 📦 Install dependencies onlymake install-hooks
- 🔗 Install git hooks onlymake start-backend
- 🚀 Start the backend servermake start-frontend
- 🖥️ Start the frontend applicationmake start-redis
- 💾 Start the Redis containermake stop-redis
- 🛑 Stop the Redis containermake test
- 🧪 Run all testsmake lint
- 🔍 Run all lintersmake format
- ✨ Format all code
This repository uses GitHub Actions for continuous integration:
-
Quality Checks - 🚦 Runs on push to main and pull requests:
- ✨ Code formatting checks
- 🔍 Code linting
- 🧪 Tests
-
Pull Request Checks - 🔄 Runs on pull requests to main:
- 🚀 Combined job for formatting, linting, and testing
These workflows ensure that all code merged into the main branch meets quality standards.
If you find this project useful, please consider giving it a star on GitHub! Your support helps us grow and improve.