mirror of
https://github.com/pacnpal/simpleguardhome.git
synced 2025-12-19 20:11:14 -05:00
Merge branch 'main' into merge-alert-autofix-4-and-main
This commit is contained in:
10
Dockerfile
10
Dockerfile
@@ -14,7 +14,7 @@ RUN apt-get update && \
|
||||
python3-pip \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& python3 -m pip install --no-cache-dir --upgrade pip setuptools wheel
|
||||
&& python3 -m pip install --no-cache-dir --upgrade "pip>=21.3" setuptools wheel
|
||||
|
||||
# Add architecture-specific compiler flags if needed
|
||||
ENV ARCHFLAGS=""
|
||||
@@ -24,7 +24,7 @@ RUN mkdir -p /app/src/simpleguardhome && \
|
||||
chmod -R 755 /app
|
||||
|
||||
# Copy source code, maintaining directory structure
|
||||
COPY setup.py requirements.txt /app/
|
||||
COPY setup.py requirements.txt pyproject.toml /app/
|
||||
COPY src /app/src/
|
||||
|
||||
# Set PYTHONPATH
|
||||
@@ -37,10 +37,8 @@ RUN pip install --no-cache-dir -r requirements.txt
|
||||
RUN set -e && \
|
||||
echo "Installing package..." && \
|
||||
pip uninstall -y simpleguardhome || true && \
|
||||
# First install dependencies only
|
||||
pip install --no-deps -v -e . && \
|
||||
# Then install package with dependencies
|
||||
pip install -e . && \
|
||||
# Install package in editable mode with compatibility mode enabled
|
||||
pip install --use-pep517 -e . --config-settings editable_mode=compat && \
|
||||
echo "Verifying installation..." && \
|
||||
pip show simpleguardhome && \
|
||||
# List all package files
|
||||
|
||||
29
pyproject.toml
Normal file
29
pyproject.toml
Normal file
@@ -0,0 +1,29 @@
|
||||
[build-system]
|
||||
requires = ["setuptools>=64.0.0", "wheel"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "simpleguardhome"
|
||||
version = "0.1.0"
|
||||
description = "SimpleGuardHome - A lightweight AdGuardHome UI"
|
||||
authors = [
|
||||
{name = "SimpleGuardHome Team"}
|
||||
]
|
||||
readme = "README.md"
|
||||
license = {file = "LICENSE"}
|
||||
requires-python = ">=3.7"
|
||||
dependencies = [
|
||||
"fastapi",
|
||||
"uvicorn",
|
||||
"python-dotenv",
|
||||
"httpx",
|
||||
"pydantic",
|
||||
"jinja2",
|
||||
]
|
||||
|
||||
[tool.setuptools]
|
||||
package-dir = {"" = "src"}
|
||||
packages = {find = {where = ["src"]}}
|
||||
|
||||
[tool.setuptools.package-data]
|
||||
simpleguardhome = ["templates/*", "favicon.ico"]
|
||||
23
setup.py
23
setup.py
@@ -1,22 +1,3 @@
|
||||
from setuptools import setup, find_packages
|
||||
from pathlib import Path
|
||||
from setuptools import setup
|
||||
|
||||
setup(
|
||||
name="simpleguardhome",
|
||||
version="0.1.0",
|
||||
packages=find_packages(where="src"),
|
||||
package_dir={"": "src"},
|
||||
include_package_data=True,
|
||||
package_data={
|
||||
"simpleguardhome": ["templates/*", "favicon.ico"]
|
||||
},
|
||||
python_requires=">=3.7",
|
||||
install_requires=[
|
||||
"fastapi",
|
||||
"uvicorn",
|
||||
"python-dotenv",
|
||||
"httpx",
|
||||
"pydantic",
|
||||
"jinja2",
|
||||
],
|
||||
)
|
||||
setup()
|
||||
@@ -4,7 +4,8 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>SimpleGuardHome</title>
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<script src="https://unpkg.com/@tailwindcss/browser@4" integrity="sha384-fsXZ0Oru5QjGkveFx8DdmBAyKdwnJ7TnbRzDN5LROCKt8PAN8h7y7oqCwtk9cN68" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/dompurify/2.3.4/purify.min.js" integrity="sha384-KGmzmwrs7oAU2sG5qfETslFsscVcCaxQrX2d7PW7I9bTrsuTD/eSMFr9jaMS9i+b" crossorigin="anonymous"></script>
|
||||
<script>
|
||||
function escapeHtml(unsafe) {
|
||||
return unsafe
|
||||
@@ -14,10 +15,20 @@
|
||||
.replace(/"/g, """)
|
||||
.replace(/'/g, "'");
|
||||
}
|
||||
|
||||
return unsafe.replace(/[&<"']/g, function (m) {
|
||||
switch (m) {
|
||||
case '&': return '&';
|
||||
case '<': return '<';
|
||||
case '>': return '>';
|
||||
case '"': return '"';
|
||||
case "'": return ''';
|
||||
default: return m;
|
||||
}
|
||||
});
|
||||
}
|
||||
async function checkDomain(event) {
|
||||
event.preventDefault();
|
||||
const domain = document.getElementById('domain').value;
|
||||
const domain = DOMPurify.sanitize(document.getElementById('domain').value);
|
||||
const resultDiv = document.getElementById('result');
|
||||
const unblockDiv = document.getElementById('unblock-action');
|
||||
const submitBtn = document.getElementById('submit-btn');
|
||||
@@ -69,7 +80,7 @@
|
||||
resultDiv.innerHTML = `
|
||||
<div class="bg-${bgColor}-100 border-l-4 border-${bgColor}-500 text-${bgColor}-700 p-4">
|
||||
<p class="font-bold">Error checking domain</p>
|
||||
<p class="text-sm">${errorMsg}</p>
|
||||
<p class="text-sm">${escapeHtml(errorMsg)}</p>
|
||||
</div>`;
|
||||
unblockDiv.innerHTML = '';
|
||||
}
|
||||
@@ -171,4 +182,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user