Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ Thumbs.db
# Env
.env
.env.*
<<<<<<< HEAD
*.bak
*.swp
*.tmp
Expand All @@ -19,5 +18,3 @@ __pycache__/
*.pyc
data/
*.sqlite
=======
>>>>>>> origin/main
4 changes: 0 additions & 4 deletions PR_DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
<<<<<<< HEAD
# 🛡️ Final One-Click Installer for Complete Pi-hole Stack

## 🎯 Objectives
Expand Down Expand Up @@ -157,7 +156,6 @@ tests/test_dns_monitor.py::test_parse_pihole_line_valid PASSED [ 83%]
tests/test_dns_monitor.py::test_parse_pihole_line_empty PASSED [ 91%]
tests/test_dns_monitor.py::test_parse_pihole_line_invalid PASSED [100%]

============== 12 passed in 0.34s ==============
```

## 🚀 Quickstart Testing
Expand Down Expand Up @@ -231,7 +229,6 @@ journalctl -u pihole-suite -f # View logs
---

**This PR delivers a complete, production-ready one-click installer that transforms any Debian/Ubuntu system into a comprehensive DNS security and monitoring platform with zero manual configuration required.**
=======
## 🎯 Overview

This comprehensive PR implements critical security fixes, repository hygiene improvements, and modern development standards for the Pi-hole Suite project.
Expand Down Expand Up @@ -296,4 +293,3 @@ This comprehensive PR implements critical security fixes, repository hygiene imp
- `.gitignore`: Extended Python artifacts coverage

This PR transforms the repository into a production-ready, enterprise-grade codebase with comprehensive security, testing, and quality standards.
>>>>>>> origin/main
3 changes: 0 additions & 3 deletions README.de.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
<<<<<<< HEAD
<div align="center">

# 🛡️ Pi-hole + Unbound + NetAlertX
Expand Down Expand Up @@ -251,12 +250,10 @@ Siehe [CHANGELOG.md](CHANGELOG.md) für Versionshistorie und Updates.
[💬 Diskussionen](https://github.com/TimInTech/Pi-hole-Unbound-PiAlert-Setup/discussions)

</div>
=======
# Pi-hole + Unbound + NetAlertX — Ein-Klick-Setup



- **Issues**: [GitHub Issues](https://github.com/TimInTech/Pi-hole-Unbound-PiAlert-Setup/issues)
- **Diskussionen**: [GitHub Discussions](https://github.com/TimInTech/Pi-hole-Unbound-PiAlert-Setup/discussions)
- **Dokumentation**: Diese README und Inline-Code-Kommentare
>>>>>>> origin/main
3 changes: 0 additions & 3 deletions api/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,2 @@
<<<<<<< HEAD
"""FastAPI API module."""
=======
"""API package for the Pi-hole suite."""
>>>>>>> origin/main
9 changes: 0 additions & 9 deletions api/main.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
<<<<<<< HEAD
"""FastAPI app for Pi-hole suite monitoring and management."""

import os
Expand Down Expand Up @@ -49,23 +48,18 @@ async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]:

def get_api_key() -> str:
"""Get configured API key."""
=======
"""FastAPI app exposing Pi-hole suite data."""
import os
import sqlite3



def _get_api_key() -> str:
>>>>>>> origin/main
return os.getenv("SUITE_API_KEY", "")


def get_db() -> Generator[sqlite3.Connection, None, None]:
<<<<<<< HEAD
"""Database dependency."""
=======
>>>>>>> origin/main
conn = sqlite3.connect(config.DB_PATH)
conn.row_factory = sqlite3.Row
try:
Expand All @@ -74,7 +68,6 @@ def get_db() -> Generator[sqlite3.Connection, None, None]:
conn.close()


<<<<<<< HEAD
def require_api_key(x_api_key: Optional[str] = Header(None)) -> None:
"""Require valid API key for authentication."""
api_key = get_api_key()
Expand Down Expand Up @@ -194,7 +187,6 @@ def get_stats(db: sqlite3.Connection = Depends(get_db)) -> StatsResponse:
total_devices=device_count,
recent_queries=recent_queries
)
=======


cur = db.execute(
Expand All @@ -211,4 +203,3 @@ def get_ip_leases(db=Depends(get_db)):



>>>>>>> origin/main
3 changes: 0 additions & 3 deletions api/schemas.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
<<<<<<< HEAD
"""Pydantic schemas for API responses."""

from typing import Optional
Expand Down Expand Up @@ -44,7 +43,6 @@ class StatsResponse(BaseModel):
total_dns_logs: int = Field(..., description="Total DNS log entries")
total_devices: int = Field(..., description="Total known devices")
recent_queries: int = Field(..., description="Queries in the last hour")
=======
"""Pydantic models for API request/response validation."""
from typing import Optional
from pydantic import BaseModel, Field, field_validator
Expand Down Expand Up @@ -100,4 +98,3 @@ class DNSLogResponse(BaseModel):
class HealthResponse(BaseModel):
"""Response model for health check."""
ok: bool
>>>>>>> origin/main
Loading
Loading