redirector-osint


Nameredirector-osint JSON
Version 2.0.3 PyPI version JSON
download
home_pageNone
SummaryProfessional OSINT tool for URL redirection with comprehensive request logging, IP tracking, and user-agent analysis
upload_time2025-09-05 10:39:55
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords analytics cybersecurity ip-grabber osint redirector request-logging security-tool threat-intelligence user-agent-tracking
VCS
bugtrack_url
requirements fastapi uvicorn typer sqlalchemy jinja2 pyyaml rich httpx python-multipart aiofiles passlib python-jose
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Redirector ๐ŸŽฏ

![Redirector Logo](docs/redirector.png)

**A flexible request logger and redirector with campaign tracking, analytics, and tunnel support**

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
[![Docker](https://img.shields.io/badge/docker-ready-blue.svg)](https://hub.docker.com/)

## โšก Quick Start (30 seconds)

### Install & Run

```bash
# Install
pip install redirector-osint

# Run (redirects to your target URL)
redirector run --redirect https://your-target.com

# View dashboard at http://localhost:3000
```

### Docker (One-liner)

```bash
docker run -p 8080:8080 -p 3000:3000 redirector:latest
```

> **Note**: The Docker image is now configured to automatically accept the security notice for non-interactive use.

## โœจ What it does

- **Redirects** all traffic to your target URL
- **Logs** every request (IP, User-Agent, headers, etc.)  
- **Dashboard** to view all logged requests
- **Export** data as CSV/JSON

Perfect for tracking marketing campaigns, testing, or analyzing traffic patterns.

<!-- GIF Placeholder: Overview demo showing complete workflow -->
![Demo GIF](docs/demo.gif)
*Demo GIF should show: Installing via pip, running redirector command, accessing dashboard, viewing logged requests, and exporting data - complete 30-second workflow*

## ๐Ÿ”ง Installation

### Method 1: pip (easiest)

```bash
pip install redirector-osint
```

### Method 2: Docker

```bash
docker run -p 8080:8080 -p 3000:3000 redirector:latest
```

The Docker image automatically accepts the security notice for non-interactive use.

### Method 3: From source

```bash
git clone https://github.com/beladevo/redirector.git
cd redirector
pip install .
```

---

## ๐Ÿ’ป Usage

### Basic Usage

<!-- GIF Placeholder: Basic usage demonstration -->
![Basic Usage GIF](docs/basic-usage.gif)
*Basic Usage GIF should show: Running simple redirect command, testing redirect in browser, viewing logged request in dashboard*

```bash
# Simple redirect
redirector run --redirect https://example.com

# With campaign name
redirector run --redirect https://target.com --campaign operation-red

# With authentication
redirector run \
  --redirect https://target.com \
  --campaign secure-op \
  --dashboard-auth admin:password123

# With Cloudflare tunnel
redirector run \
  --redirect https://target.com \
  --campaign public-test \
  --tunnel
```

### Configuration File

Generate a configuration template:

```bash
redirector config --output my-config.yaml
```

Edit the configuration:

```yaml
# Redirector Configuration
redirect_url: https://your-target.com
redirect_port: 8080
dashboard_port: 3000
campaign: my-campaign
dashboard_raw: false
dashboard_auth: admin:secure123
store_body: false
tunnel: false
host: 0.0.0.0
log_level: info
```

Use the configuration:

```bash
redirector run --config my-config.yaml
```

### Advanced Usage

```bash
# Raw dashboard mode (no CSS/JS)
redirector run --redirect https://target.com --dashboard-raw

# Store request bodies (LAB USE ONLY)
redirector run --redirect https://target.com --store-body

# Custom ports
redirector run \
  --redirect https://target.com \
  --redirect-port 9080 \
  --dashboard-port 4000

# Custom database path
redirector run \
  --redirect https://target.com \
  --database /path/to/logs.db
```

---

## ๐Ÿ“Š Dashboard Features

<!-- GIF Placeholder: Dashboard features demonstration -->
![Dashboard Features GIF](docs/dashboard-features.gif)
*Dashboard Features GIF should show: Opening dashboard, filtering requests by campaign, viewing request details modal, exporting data as CSV, switching between beautiful and raw modes*

### Beautiful UI Mode (Default)
- **Real-time updates** - Auto-refresh every 10 seconds
- **Advanced filtering** - Campaign, time range, IP, User-Agent, method, path
- **Interactive tables** - Sortable columns with pagination
- **Detail modals** - Click any log entry for full details
- **Export buttons** - One-click CSV/JSONL export
- **Statistics cards** - Request counts, methods, top user agents
- **Mobile responsive** - Works perfectly on all devices

### Raw Mode
- **Terminal-style** - Green-on-black hacker aesthetic
- **Lightweight** - No JavaScript, minimal CSS
- **Fast loading** - Optimized for slow connections
- **Auto-refresh** - Simple page reload every 30 seconds

Access the dashboard at `http://localhost:3000` (or your configured port).

---

## ๐Ÿ”— API Reference

### Base URL
```
http://localhost:3000/api
```

### Endpoints

#### Health Check
```http
GET /api/health
```

#### Campaigns
```http
GET /api/campaigns
POST /api/campaigns
```

#### Logs
```http
GET /api/logs?campaign=test&page=1&per_page=50
GET /api/logs?start_time=2024-01-01T00:00:00Z&end_time=2024-01-02T00:00:00Z
GET /api/logs?ip_filter=192.168&ua_filter=Chrome&method_filter=GET
```

#### Exports
```http
GET /api/logs/export.csv?campaign=test
GET /api/logs/export.jsonl?start_time=2024-01-01T00:00:00Z
```

#### Statistics
```http
GET /api/stats?campaign=specific-campaign
```

### Example API Usage

```python
import httpx

client = httpx.Client(base_url="http://localhost:3000")

# Get recent logs
response = client.get("/api/logs?per_page=10")
logs = response.json()

# Create new campaign
campaign_data = {
    "name": "api-campaign",
    "description": "Created via API"
}
response = client.post("/api/campaigns", json=campaign_data)

# Export logs as CSV
with open("export.csv", "wb") as f:
    with client.stream("GET", "/api/logs/export.csv") as response:
        for chunk in response.iter_bytes():
            f.write(chunk)
```

---

## ๐Ÿณ Docker Deployment

<!-- GIF Placeholder: Docker deployment demonstration -->
![Docker Deployment GIF](docs/docker-deployment.gif)
*Docker Deployment GIF should show: Running docker command, container starting up, accessing both redirect and dashboard ports, viewing logs in docker logs*

### Basic Deployment

```yaml
# docker-compose.yml
version: '3.8'

services:
  redirector:
    image: redirector:latest
    ports:
      - \"8080:8080\"
      - \"3000:3000\"
    environment:
      - REDIRECT_URL=https://your-target.com
      - CAMPAIGN=docker-campaign
    volumes:
      - ./data:/app/data
```

### With Cloudflare Tunnel

```bash
# Enable tunnel profile
docker-compose --profile tunnel up
```

### Production Setup

```yaml
version: '3.8'

services:
  redirector:
    image: redirector:latest
    restart: unless-stopped
    ports:
      - \"8080:8080\"
      - \"3000:3000\"
    environment:
      - REDIRECT_URL=https://your-target.com
      - CAMPAIGN=production-campaign
      - DASHBOARD_AUTH=admin:secure-password-123
    volumes:
      - redirector-data:/app/data
      - redirector-logs:/app/logs
    healthcheck:
      test: [\"CMD\", \"curl\", \"-f\", \"http://localhost:3000/health\"]
      interval: 30s
      timeout: 10s
      retries: 3

volumes:
  redirector-data:
  redirector-logs:
```

---

## ๐Ÿงช Development

<!-- GIF Placeholder: Development setup demonstration -->
![Development Setup GIF](docs/development-setup.gif)
*Development Setup GIF should show: Cloning repository, running make dev, running make run, making code changes, running make check, tests passing*

### Setup Development Environment

```bash
git clone https://github.com/beladevo/redirector.git
cd redirector

# Install with development dependencies
make dev

# Or manually
pip install -e \".[dev]\"
pre-commit install
```

### Development Commands

```bash
# Run development server
make run

# Run with demo configuration
make run-demo

# Format code
make format

# Run linting
make lint

# Run type checking
make typecheck

# Run tests
make test

# Run all quality checks
make check

# Generate config template
make config

# View statistics
make stats
```

### Running Tests

```bash
# All tests
pytest

# Unit tests only
pytest tests/unit/

# Integration tests only
pytest tests/integration/

# With coverage
pytest --cov=src/redirector --cov-report=html
```

### Project Structure

```
redirector/
โ”œโ”€โ”€ src/redirector/           # Main package
โ”‚   โ”œโ”€โ”€ api/                  # API routes and models
โ”‚   โ”œโ”€โ”€ cli/                  # Command-line interface
โ”‚   โ”œโ”€โ”€ core/                 # Core functionality
โ”‚   โ”œโ”€โ”€ dashboard/            # Dashboard server
โ”‚   โ””โ”€โ”€ servers/              # Redirect and dashboard servers
โ”œโ”€โ”€ templates/                # Jinja2 templates
โ”œโ”€โ”€ static/                   # Static assets
โ”œโ”€โ”€ tests/                    # Test suite
โ”‚   โ”œโ”€โ”€ unit/                 # Unit tests
โ”‚   โ””โ”€โ”€ integration/          # Integration tests
โ”œโ”€โ”€ docs/                     # Documentation
โ”œโ”€โ”€ Dockerfile               # Container definition
โ”œโ”€โ”€ docker-compose.yml       # Container orchestration
โ”œโ”€โ”€ pyproject.toml           # Package configuration
โ”œโ”€โ”€ Makefile                 # Development commands
โ””โ”€โ”€ README.md                # This file
```

---

## ๐ŸŽฏ Use Cases

### Marketing & Analytics
- **Campaign Tracking** - Monitor marketing campaign performance
- **A/B Testing** - Track different redirect variants
- **User Behavior Analysis** - Understand user interaction patterns
- **Traffic Analysis** - Analyze visitor demographics and patterns

### Development & Research
- **API Testing** - Mock external service redirects and analyze responses
- **Integration Testing** - Test redirect behavior in different environments
- **Performance Monitoring** - Track response times and system performance
- **Data Collection** - Gather insights for research and optimization

### Development & Testing
- **API testing** - Mock external service redirects
- **Load testing** - Monitor performance under load
- **Integration testing** - Test redirect behavior
- **Monitoring setup** - Validate logging systems

---

## โš™๏ธ Configuration Options

### Core Settings
| Setting | Default | Description |
|---------|---------|-------------|
| `redirect_url` | `https://example.com` | Target URL for redirects |
| `redirect_port` | `8080` | Port for redirect server |
| `dashboard_port` | `3000` | Port for dashboard |
| `campaign` | Auto-generated | Campaign name |

### Dashboard Settings
| Setting | Default | Description |
|---------|---------|-------------|
| `dashboard_raw` | `false` | Use raw HTML mode |
| `dashboard_auth` | `null` | Basic auth (user:pass) |

### Logging Settings
| Setting | Default | Description |
|---------|---------|-------------|
| `store_body` | `false` | Store request bodies |
| `database_path` | `logs.db` | SQLite database path |

### Security Settings
| Setting | Default | Description |
|---------|---------|-------------|
| `max_body_size` | `10485760` | Max body size (10MB) |
| `rate_limit` | `null` | Requests per minute |

---

## ๐Ÿ“ˆ Monitoring & Analytics

### Built-in Statistics
- **Request counts** by campaign, method, time period
- **Top user agents** for identifying common browsers/bots
- **Geographic distribution** (via IP analysis)
- **Timing analysis** with response time tracking
- **Traffic patterns** with hourly/daily breakdowns

### Alerting Integration
```python
# Example: Slack webhook integration
import httpx

def send_alert(message):
    webhook_url = "https://hooks.slack.com/..."
    httpx.post(webhook_url, json={"text": message})

# Monitor for specific conditions
logs = redirector_client.get("/api/logs").json()
for log in logs["logs"]:
    if "suspicious-pattern" in log.get("user_agent", ""):
        send_alert(f"Suspicious request from {log['ip']}")
```

---

## ๐Ÿ”’ Security Considerations

### Network Security
- Run behind reverse proxy (nginx, cloudflare) in production
- Use TLS termination for HTTPS
- Implement network segmentation
- Monitor for DDoS attacks

### Data Protection
- Regularly backup database
- Use encrypted storage for sensitive campaigns
- Implement data retention policies
- Sanitize logs before sharing

### Access Control
- Use strong passwords for dashboard authentication
- Limit dashboard access to authorized personnel
- Implement IP whitelisting where possible
- Use VPN access for remote operations

---

## ๐Ÿค Contributing

We welcome contributions! Please read our [Contributing Guide](CONTRIBUTING.md) for details.

### Quick Contribution Setup
```bash
git clone https://github.com/beladevo/redirector.git
cd redirector
make dev
make check  # Run all quality checks
```

### Reporting Issues
Please report security issues privately.
For other issues, use GitHub Issues with the appropriate template.

---

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

---

## ๐Ÿ† Acknowledgments

- Built with [FastAPI](https://fastapi.tiangolo.com/) for high-performance APIs
- [Typer](https://typer.tiangolo.com/) for beautiful CLIs
- [Pico.css](https://picocss.com/) for elegant styling
- [Alpine.js](https://alpinejs.dev/) for reactive interfaces
- [SQLAlchemy](https://sqlalchemy.org/) for database management

---

## ๐Ÿ“ž Support

- **Documentation**: This README and inline help (`redirector --help`)
- **Issues**: [GitHub Issues](https://github.com/beladevo/redirector/issues)
- **Discussions**: [GitHub Discussions](https://github.com/beladevo/redirector/discussions)

---

**Remember: Use this tool responsibly and only with proper authorization. Stay ethical, stay legal! ๐Ÿ›ก๏ธ**
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "redirector-osint",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "analytics, cybersecurity, ip-grabber, osint, redirector, request-logging, security-tool, threat-intelligence, user-agent-tracking",
    "author": null,
    "author_email": "Redirector Contributors <security@redirector-tool.com>",
    "download_url": "https://files.pythonhosted.org/packages/e4/6b/b1cd9bfda43194a65da97dc199ae126c045f3e491d184adc91049e8afbb2/redirector_osint-2.0.3.tar.gz",
    "platform": null,
    "description": "# Redirector \ud83c\udfaf\n\n![Redirector Logo](docs/redirector.png)\n\n**A flexible request logger and redirector with campaign tracking, analytics, and tunnel support**\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)\n[![Docker](https://img.shields.io/badge/docker-ready-blue.svg)](https://hub.docker.com/)\n\n## \u26a1 Quick Start (30 seconds)\n\n### Install & Run\n\n```bash\n# Install\npip install redirector-osint\n\n# Run (redirects to your target URL)\nredirector run --redirect https://your-target.com\n\n# View dashboard at http://localhost:3000\n```\n\n### Docker (One-liner)\n\n```bash\ndocker run -p 8080:8080 -p 3000:3000 redirector:latest\n```\n\n> **Note**: The Docker image is now configured to automatically accept the security notice for non-interactive use.\n\n## \u2728 What it does\n\n- **Redirects** all traffic to your target URL\n- **Logs** every request (IP, User-Agent, headers, etc.)  \n- **Dashboard** to view all logged requests\n- **Export** data as CSV/JSON\n\nPerfect for tracking marketing campaigns, testing, or analyzing traffic patterns.\n\n<!-- GIF Placeholder: Overview demo showing complete workflow -->\n![Demo GIF](docs/demo.gif)\n*Demo GIF should show: Installing via pip, running redirector command, accessing dashboard, viewing logged requests, and exporting data - complete 30-second workflow*\n\n## \ud83d\udd27 Installation\n\n### Method 1: pip (easiest)\n\n```bash\npip install redirector-osint\n```\n\n### Method 2: Docker\n\n```bash\ndocker run -p 8080:8080 -p 3000:3000 redirector:latest\n```\n\nThe Docker image automatically accepts the security notice for non-interactive use.\n\n### Method 3: From source\n\n```bash\ngit clone https://github.com/beladevo/redirector.git\ncd redirector\npip install .\n```\n\n---\n\n## \ud83d\udcbb Usage\n\n### Basic Usage\n\n<!-- GIF Placeholder: Basic usage demonstration -->\n![Basic Usage GIF](docs/basic-usage.gif)\n*Basic Usage GIF should show: Running simple redirect command, testing redirect in browser, viewing logged request in dashboard*\n\n```bash\n# Simple redirect\nredirector run --redirect https://example.com\n\n# With campaign name\nredirector run --redirect https://target.com --campaign operation-red\n\n# With authentication\nredirector run \\\n  --redirect https://target.com \\\n  --campaign secure-op \\\n  --dashboard-auth admin:password123\n\n# With Cloudflare tunnel\nredirector run \\\n  --redirect https://target.com \\\n  --campaign public-test \\\n  --tunnel\n```\n\n### Configuration File\n\nGenerate a configuration template:\n\n```bash\nredirector config --output my-config.yaml\n```\n\nEdit the configuration:\n\n```yaml\n# Redirector Configuration\nredirect_url: https://your-target.com\nredirect_port: 8080\ndashboard_port: 3000\ncampaign: my-campaign\ndashboard_raw: false\ndashboard_auth: admin:secure123\nstore_body: false\ntunnel: false\nhost: 0.0.0.0\nlog_level: info\n```\n\nUse the configuration:\n\n```bash\nredirector run --config my-config.yaml\n```\n\n### Advanced Usage\n\n```bash\n# Raw dashboard mode (no CSS/JS)\nredirector run --redirect https://target.com --dashboard-raw\n\n# Store request bodies (LAB USE ONLY)\nredirector run --redirect https://target.com --store-body\n\n# Custom ports\nredirector run \\\n  --redirect https://target.com \\\n  --redirect-port 9080 \\\n  --dashboard-port 4000\n\n# Custom database path\nredirector run \\\n  --redirect https://target.com \\\n  --database /path/to/logs.db\n```\n\n---\n\n## \ud83d\udcca Dashboard Features\n\n<!-- GIF Placeholder: Dashboard features demonstration -->\n![Dashboard Features GIF](docs/dashboard-features.gif)\n*Dashboard Features GIF should show: Opening dashboard, filtering requests by campaign, viewing request details modal, exporting data as CSV, switching between beautiful and raw modes*\n\n### Beautiful UI Mode (Default)\n- **Real-time updates** - Auto-refresh every 10 seconds\n- **Advanced filtering** - Campaign, time range, IP, User-Agent, method, path\n- **Interactive tables** - Sortable columns with pagination\n- **Detail modals** - Click any log entry for full details\n- **Export buttons** - One-click CSV/JSONL export\n- **Statistics cards** - Request counts, methods, top user agents\n- **Mobile responsive** - Works perfectly on all devices\n\n### Raw Mode\n- **Terminal-style** - Green-on-black hacker aesthetic\n- **Lightweight** - No JavaScript, minimal CSS\n- **Fast loading** - Optimized for slow connections\n- **Auto-refresh** - Simple page reload every 30 seconds\n\nAccess the dashboard at `http://localhost:3000` (or your configured port).\n\n---\n\n## \ud83d\udd17 API Reference\n\n### Base URL\n```\nhttp://localhost:3000/api\n```\n\n### Endpoints\n\n#### Health Check\n```http\nGET /api/health\n```\n\n#### Campaigns\n```http\nGET /api/campaigns\nPOST /api/campaigns\n```\n\n#### Logs\n```http\nGET /api/logs?campaign=test&page=1&per_page=50\nGET /api/logs?start_time=2024-01-01T00:00:00Z&end_time=2024-01-02T00:00:00Z\nGET /api/logs?ip_filter=192.168&ua_filter=Chrome&method_filter=GET\n```\n\n#### Exports\n```http\nGET /api/logs/export.csv?campaign=test\nGET /api/logs/export.jsonl?start_time=2024-01-01T00:00:00Z\n```\n\n#### Statistics\n```http\nGET /api/stats?campaign=specific-campaign\n```\n\n### Example API Usage\n\n```python\nimport httpx\n\nclient = httpx.Client(base_url=\"http://localhost:3000\")\n\n# Get recent logs\nresponse = client.get(\"/api/logs?per_page=10\")\nlogs = response.json()\n\n# Create new campaign\ncampaign_data = {\n    \"name\": \"api-campaign\",\n    \"description\": \"Created via API\"\n}\nresponse = client.post(\"/api/campaigns\", json=campaign_data)\n\n# Export logs as CSV\nwith open(\"export.csv\", \"wb\") as f:\n    with client.stream(\"GET\", \"/api/logs/export.csv\") as response:\n        for chunk in response.iter_bytes():\n            f.write(chunk)\n```\n\n---\n\n## \ud83d\udc33 Docker Deployment\n\n<!-- GIF Placeholder: Docker deployment demonstration -->\n![Docker Deployment GIF](docs/docker-deployment.gif)\n*Docker Deployment GIF should show: Running docker command, container starting up, accessing both redirect and dashboard ports, viewing logs in docker logs*\n\n### Basic Deployment\n\n```yaml\n# docker-compose.yml\nversion: '3.8'\n\nservices:\n  redirector:\n    image: redirector:latest\n    ports:\n      - \\\"8080:8080\\\"\n      - \\\"3000:3000\\\"\n    environment:\n      - REDIRECT_URL=https://your-target.com\n      - CAMPAIGN=docker-campaign\n    volumes:\n      - ./data:/app/data\n```\n\n### With Cloudflare Tunnel\n\n```bash\n# Enable tunnel profile\ndocker-compose --profile tunnel up\n```\n\n### Production Setup\n\n```yaml\nversion: '3.8'\n\nservices:\n  redirector:\n    image: redirector:latest\n    restart: unless-stopped\n    ports:\n      - \\\"8080:8080\\\"\n      - \\\"3000:3000\\\"\n    environment:\n      - REDIRECT_URL=https://your-target.com\n      - CAMPAIGN=production-campaign\n      - DASHBOARD_AUTH=admin:secure-password-123\n    volumes:\n      - redirector-data:/app/data\n      - redirector-logs:/app/logs\n    healthcheck:\n      test: [\\\"CMD\\\", \\\"curl\\\", \\\"-f\\\", \\\"http://localhost:3000/health\\\"]\n      interval: 30s\n      timeout: 10s\n      retries: 3\n\nvolumes:\n  redirector-data:\n  redirector-logs:\n```\n\n---\n\n## \ud83e\uddea Development\n\n<!-- GIF Placeholder: Development setup demonstration -->\n![Development Setup GIF](docs/development-setup.gif)\n*Development Setup GIF should show: Cloning repository, running make dev, running make run, making code changes, running make check, tests passing*\n\n### Setup Development Environment\n\n```bash\ngit clone https://github.com/beladevo/redirector.git\ncd redirector\n\n# Install with development dependencies\nmake dev\n\n# Or manually\npip install -e \\\".[dev]\\\"\npre-commit install\n```\n\n### Development Commands\n\n```bash\n# Run development server\nmake run\n\n# Run with demo configuration\nmake run-demo\n\n# Format code\nmake format\n\n# Run linting\nmake lint\n\n# Run type checking\nmake typecheck\n\n# Run tests\nmake test\n\n# Run all quality checks\nmake check\n\n# Generate config template\nmake config\n\n# View statistics\nmake stats\n```\n\n### Running Tests\n\n```bash\n# All tests\npytest\n\n# Unit tests only\npytest tests/unit/\n\n# Integration tests only\npytest tests/integration/\n\n# With coverage\npytest --cov=src/redirector --cov-report=html\n```\n\n### Project Structure\n\n```\nredirector/\n\u251c\u2500\u2500 src/redirector/           # Main package\n\u2502   \u251c\u2500\u2500 api/                  # API routes and models\n\u2502   \u251c\u2500\u2500 cli/                  # Command-line interface\n\u2502   \u251c\u2500\u2500 core/                 # Core functionality\n\u2502   \u251c\u2500\u2500 dashboard/            # Dashboard server\n\u2502   \u2514\u2500\u2500 servers/              # Redirect and dashboard servers\n\u251c\u2500\u2500 templates/                # Jinja2 templates\n\u251c\u2500\u2500 static/                   # Static assets\n\u251c\u2500\u2500 tests/                    # Test suite\n\u2502   \u251c\u2500\u2500 unit/                 # Unit tests\n\u2502   \u2514\u2500\u2500 integration/          # Integration tests\n\u251c\u2500\u2500 docs/                     # Documentation\n\u251c\u2500\u2500 Dockerfile               # Container definition\n\u251c\u2500\u2500 docker-compose.yml       # Container orchestration\n\u251c\u2500\u2500 pyproject.toml           # Package configuration\n\u251c\u2500\u2500 Makefile                 # Development commands\n\u2514\u2500\u2500 README.md                # This file\n```\n\n---\n\n## \ud83c\udfaf Use Cases\n\n### Marketing & Analytics\n- **Campaign Tracking** - Monitor marketing campaign performance\n- **A/B Testing** - Track different redirect variants\n- **User Behavior Analysis** - Understand user interaction patterns\n- **Traffic Analysis** - Analyze visitor demographics and patterns\n\n### Development & Research\n- **API Testing** - Mock external service redirects and analyze responses\n- **Integration Testing** - Test redirect behavior in different environments\n- **Performance Monitoring** - Track response times and system performance\n- **Data Collection** - Gather insights for research and optimization\n\n### Development & Testing\n- **API testing** - Mock external service redirects\n- **Load testing** - Monitor performance under load\n- **Integration testing** - Test redirect behavior\n- **Monitoring setup** - Validate logging systems\n\n---\n\n## \u2699\ufe0f Configuration Options\n\n### Core Settings\n| Setting | Default | Description |\n|---------|---------|-------------|\n| `redirect_url` | `https://example.com` | Target URL for redirects |\n| `redirect_port` | `8080` | Port for redirect server |\n| `dashboard_port` | `3000` | Port for dashboard |\n| `campaign` | Auto-generated | Campaign name |\n\n### Dashboard Settings\n| Setting | Default | Description |\n|---------|---------|-------------|\n| `dashboard_raw` | `false` | Use raw HTML mode |\n| `dashboard_auth` | `null` | Basic auth (user:pass) |\n\n### Logging Settings\n| Setting | Default | Description |\n|---------|---------|-------------|\n| `store_body` | `false` | Store request bodies |\n| `database_path` | `logs.db` | SQLite database path |\n\n### Security Settings\n| Setting | Default | Description |\n|---------|---------|-------------|\n| `max_body_size` | `10485760` | Max body size (10MB) |\n| `rate_limit` | `null` | Requests per minute |\n\n---\n\n## \ud83d\udcc8 Monitoring & Analytics\n\n### Built-in Statistics\n- **Request counts** by campaign, method, time period\n- **Top user agents** for identifying common browsers/bots\n- **Geographic distribution** (via IP analysis)\n- **Timing analysis** with response time tracking\n- **Traffic patterns** with hourly/daily breakdowns\n\n### Alerting Integration\n```python\n# Example: Slack webhook integration\nimport httpx\n\ndef send_alert(message):\n    webhook_url = \"https://hooks.slack.com/...\"\n    httpx.post(webhook_url, json={\"text\": message})\n\n# Monitor for specific conditions\nlogs = redirector_client.get(\"/api/logs\").json()\nfor log in logs[\"logs\"]:\n    if \"suspicious-pattern\" in log.get(\"user_agent\", \"\"):\n        send_alert(f\"Suspicious request from {log['ip']}\")\n```\n\n---\n\n## \ud83d\udd12 Security Considerations\n\n### Network Security\n- Run behind reverse proxy (nginx, cloudflare) in production\n- Use TLS termination for HTTPS\n- Implement network segmentation\n- Monitor for DDoS attacks\n\n### Data Protection\n- Regularly backup database\n- Use encrypted storage for sensitive campaigns\n- Implement data retention policies\n- Sanitize logs before sharing\n\n### Access Control\n- Use strong passwords for dashboard authentication\n- Limit dashboard access to authorized personnel\n- Implement IP whitelisting where possible\n- Use VPN access for remote operations\n\n---\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please read our [Contributing Guide](CONTRIBUTING.md) for details.\n\n### Quick Contribution Setup\n```bash\ngit clone https://github.com/beladevo/redirector.git\ncd redirector\nmake dev\nmake check  # Run all quality checks\n```\n\n### Reporting Issues\nPlease report security issues privately.\nFor other issues, use GitHub Issues with the appropriate template.\n\n---\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## \ud83c\udfc6 Acknowledgments\n\n- Built with [FastAPI](https://fastapi.tiangolo.com/) for high-performance APIs\n- [Typer](https://typer.tiangolo.com/) for beautiful CLIs\n- [Pico.css](https://picocss.com/) for elegant styling\n- [Alpine.js](https://alpinejs.dev/) for reactive interfaces\n- [SQLAlchemy](https://sqlalchemy.org/) for database management\n\n---\n\n## \ud83d\udcde Support\n\n- **Documentation**: This README and inline help (`redirector --help`)\n- **Issues**: [GitHub Issues](https://github.com/beladevo/redirector/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/beladevo/redirector/discussions)\n\n---\n\n**Remember: Use this tool responsibly and only with proper authorization. Stay ethical, stay legal! \ud83d\udee1\ufe0f**",
    "bugtrack_url": null,
    "license": null,
    "summary": "Professional OSINT tool for URL redirection with comprehensive request logging, IP tracking, and user-agent analysis",
    "version": "2.0.3",
    "project_urls": {
        "Homepage": "https://github.com/beladevo/redirector",
        "Issues": "https://github.com/beladevo/redirector/issues",
        "Repository": "https://github.com/beladevo/redirector.git"
    },
    "split_keywords": [
        "analytics",
        " cybersecurity",
        " ip-grabber",
        " osint",
        " redirector",
        " request-logging",
        " security-tool",
        " threat-intelligence",
        " user-agent-tracking"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0398aff2fb1f21cc633f2e058c48d3b018633f212881d76ae3174b9d44be8689",
                "md5": "2d6e1987bd2df1c8dbda6be3137d1a50",
                "sha256": "70e26a44e24e703149170e5eeeb040a1ec5b95668c38fb61e5a7f28183f8b55d"
            },
            "downloads": -1,
            "filename": "redirector_osint-2.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2d6e1987bd2df1c8dbda6be3137d1a50",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 34464,
            "upload_time": "2025-09-05T10:39:53",
            "upload_time_iso_8601": "2025-09-05T10:39:53.530584Z",
            "url": "https://files.pythonhosted.org/packages/03/98/aff2fb1f21cc633f2e058c48d3b018633f212881d76ae3174b9d44be8689/redirector_osint-2.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e46bb1cd9bfda43194a65da97dc199ae126c045f3e491d184adc91049e8afbb2",
                "md5": "6bbc80abb3122debaeb19a252a1b1e5c",
                "sha256": "a0f9afc5897ac228b9de9810ef2fcc8b0d79e9ccb755f8ad7f5f045259e4a07f"
            },
            "downloads": -1,
            "filename": "redirector_osint-2.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "6bbc80abb3122debaeb19a252a1b1e5c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 1668923,
            "upload_time": "2025-09-05T10:39:55",
            "upload_time_iso_8601": "2025-09-05T10:39:55.069703Z",
            "url": "https://files.pythonhosted.org/packages/e4/6b/b1cd9bfda43194a65da97dc199ae126c045f3e491d184adc91049e8afbb2/redirector_osint-2.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-05 10:39:55",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "beladevo",
    "github_project": "redirector",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "fastapi",
            "specs": [
                [
                    ">=",
                    "0.111.0"
                ]
            ]
        },
        {
            "name": "uvicorn",
            "specs": [
                [
                    ">=",
                    "0.30.1"
                ]
            ]
        },
        {
            "name": "typer",
            "specs": [
                [
                    ">=",
                    "0.12.3"
                ]
            ]
        },
        {
            "name": "sqlalchemy",
            "specs": [
                [
                    ">=",
                    "2.0.32"
                ]
            ]
        },
        {
            "name": "jinja2",
            "specs": [
                [
                    ">=",
                    "3.1.4"
                ]
            ]
        },
        {
            "name": "pyyaml",
            "specs": [
                [
                    ">=",
                    "6.0.1"
                ]
            ]
        },
        {
            "name": "rich",
            "specs": [
                [
                    ">=",
                    "13.7.1"
                ]
            ]
        },
        {
            "name": "httpx",
            "specs": [
                [
                    ">=",
                    "0.27.0"
                ]
            ]
        },
        {
            "name": "python-multipart",
            "specs": [
                [
                    ">=",
                    "0.0.9"
                ]
            ]
        },
        {
            "name": "aiofiles",
            "specs": [
                [
                    ">=",
                    "23.2.1"
                ]
            ]
        },
        {
            "name": "passlib",
            "specs": [
                [
                    ">=",
                    "1.7.4"
                ]
            ]
        },
        {
            "name": "python-jose",
            "specs": [
                [
                    ">=",
                    "3.3.0"
                ]
            ]
        }
    ],
    "lcname": "redirector-osint"
}
        
Elapsed time: 1.61857s