feat: Update requirements.txt with test dependencies and enhance install script
Some checks reported errors
continuous-integration/drone/push Build was killed

- Add pytest, coverage, linting tools to requirements.txt
- Update install script for v2.1.0 with auth system info
- Mention JWT authentication and security features in output
This commit is contained in:
2025-11-25 21:26:27 +09:00
parent 66a783ba17
commit d00fc9fd61
157 changed files with 366 additions and 67581 deletions

View File

@@ -1,91 +0,0 @@
# PyGuardian Multi-stage Dockerfile
# Supports both controller and agent modes
FROM python:3.11-slim AS base
# Install system dependencies
RUN apt-get update && apt-get install -y \
iptables \
iputils-ping \
openssh-client \
curl \
&& rm -rf /var/lib/apt/lists/*
# Create pyguardian user
RUN groupadd -r pyguardian && useradd -r -g pyguardian pyguardian
# Set working directory
WORKDIR /opt/pyguardian
# Copy requirements and install Python dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy source code
COPY src/ ./src/
COPY config/ ./config/
COPY main.py .
# Set permissions
RUN chown -R pyguardian:pyguardian /opt/pyguardian
# Create data and logs directories
RUN mkdir -p /opt/pyguardian/data /opt/pyguardian/logs \
&& chown -R pyguardian:pyguardian /opt/pyguardian/data /opt/pyguardian/logs
# Controller mode
FROM base AS controller
# Expose API port
EXPOSE 8443
# Run as pyguardian user
USER pyguardian
# Set environment variables
ENV PYGUARDIAN_MODE=controller
ENV PYTHONPATH=/opt/pyguardian
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
CMD curl -f http://localhost:8443/health || exit 1
# Start command
CMD ["python", "main.py", "--mode", "controller"]
# Agent mode
FROM base AS agent
# Run as pyguardian user
USER pyguardian
# Set environment variables
ENV PYGUARDIAN_MODE=agent
ENV PYTHONPATH=/opt/pyguardian
# Health check for agent
HEALTHCHECK --interval=60s --timeout=15s --start-period=30s --retries=3 \
CMD python -c "import sys; sys.exit(0)" || exit 1
# Start command
CMD ["python", "main.py", "--mode", "agent"]
# Standalone mode (default)
FROM base AS standalone
# Expose API port (optional for standalone)
EXPOSE 8443
# Run as pyguardian user
USER pyguardian
# Set environment variables
ENV PYGUARDIAN_MODE=standalone
ENV PYTHONPATH=/opt/pyguardian
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
CMD python -c "import sys; sys.exit(0)" || exit 1
# Start command
CMD ["python", "main.py"]

View File

@@ -1,91 +0,0 @@
# PyGuardian Multi-stage Dockerfile
# Supports both controller and agent modes
FROM python:3.11-slim AS base
# Install system dependencies
RUN apt-get update && apt-get install -y \
iptables \
iputils-ping \
openssh-client \
curl \
&& rm -rf /var/lib/apt/lists/*
# Create pyguardian user
RUN groupadd -r pyguardian && useradd -r -g pyguardian pyguardian
# Set working directory
WORKDIR /opt/pyguardian
# Copy requirements and install Python dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy source code
COPY src/ ./src/
COPY config/ ./config/
COPY main.py .
# Set permissions
RUN chown -R pyguardian:pyguardian /opt/pyguardian
# Create data and logs directories
RUN mkdir -p /opt/pyguardian/data /opt/pyguardian/logs \
&& chown -R pyguardian:pyguardian /opt/pyguardian/data /opt/pyguardian/logs
# Controller mode
FROM base AS controller
# Expose API port
EXPOSE 8443
# Run as pyguardian user
USER pyguardian
# Set environment variables
ENV PYGUARDIAN_MODE=controller
ENV PYTHONPATH=/opt/pyguardian
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
CMD curl -f http://localhost:8443/health || exit 1
# Start command
CMD ["python", "main.py", "--mode", "controller"]
# Agent mode
FROM base AS agent
# Run as pyguardian user
USER pyguardian
# Set environment variables
ENV PYGUARDIAN_MODE=agent
ENV PYTHONPATH=/opt/pyguardian
# Health check for agent
HEALTHCHECK --interval=60s --timeout=15s --start-period=30s --retries=3 \
CMD python -c "import sys; sys.exit(0)" || exit 1
# Start command
CMD ["python", "main.py", "--mode", "agent"]
# Standalone mode (default)
FROM base AS standalone
# Expose API port (optional for standalone)
EXPOSE 8443
# Run as pyguardian user
USER pyguardian
# Set environment variables
ENV PYGUARDIAN_MODE=standalone
ENV PYTHONPATH=/opt/pyguardian
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
CMD python -c "import sys; sys.exit(0)" || exit 1
# Start command
CMD ["python", "main.py"]

View File

@@ -1,77 +0,0 @@
# PyGuardian Docker Compose
# Controller + Agent cluster setup
version: '3.8'
services:
pyguardian-controller:
build:
context: ../..
dockerfile: deployment/docker/Dockerfile
target: controller
container_name: pyguardian-controller
restart: unless-stopped
privileged: true
network_mode: host
volumes:
- controller_data:/opt/pyguardian/data
- controller_logs:/opt/pyguardian/logs
- controller_config:/opt/pyguardian/config
- /var/log:/var/log:ro
environment:
- PYGUARDIAN_MODE=controller
- PYGUARDIAN_CONFIG=/opt/pyguardian/config/config.yaml
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
- CLUSTER_SECRET=${CLUSTER_SECRET}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8443/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
pyguardian-agent-1:
build:
context: ../..
dockerfile: deployment/docker/Dockerfile
target: agent
container_name: pyguardian-agent-1
restart: unless-stopped
privileged: true
network_mode: host
volumes:
- agent1_data:/opt/pyguardian/data
- agent1_logs:/opt/pyguardian/logs
- agent1_config:/opt/pyguardian/config
- /var/log:/var/log:ro
environment:
- PYGUARDIAN_MODE=agent
- CONTROLLER_HOST=localhost
- CONTROLLER_PORT=8443
- CLUSTER_SECRET=${CLUSTER_SECRET}
depends_on:
- pyguardian-controller
healthcheck:
test: ["CMD", "python", "-c", "import sys; sys.exit(0)"]
interval: 60s
timeout: 15s
retries: 3
start_period: 30s
volumes:
controller_data:
driver: local
controller_logs:
driver: local
controller_config:
driver: local
agent1_data:
driver: local
agent1_logs:
driver: local
agent1_config:
driver: local
networks:
default:
name: pyguardian-network

View File

@@ -1,77 +0,0 @@
# PyGuardian Docker Compose
# Controller + Agent cluster setup
version: '3.8'
services:
pyguardian-controller:
build:
context: ../..
dockerfile: deployment/docker/Dockerfile
target: controller
container_name: pyguardian-controller
restart: unless-stopped
privileged: true
network_mode: host
volumes:
- controller_data:/opt/pyguardian/data
- controller_logs:/opt/pyguardian/logs
- controller_config:/opt/pyguardian/config
- /var/log:/var/log:ro
environment:
- PYGUARDIAN_MODE=controller
- PYGUARDIAN_CONFIG=/opt/pyguardian/config/config.yaml
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
- CLUSTER_SECRET=${CLUSTER_SECRET}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8443/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
pyguardian-agent-1:
build:
context: ../..
dockerfile: deployment/docker/Dockerfile
target: agent
container_name: pyguardian-agent-1
restart: unless-stopped
privileged: true
network_mode: host
volumes:
- agent1_data:/opt/pyguardian/data
- agent1_logs:/opt/pyguardian/logs
- agent1_config:/opt/pyguardian/config
- /var/log:/var/log:ro
environment:
- PYGUARDIAN_MODE=agent
- CONTROLLER_HOST=localhost
- CONTROLLER_PORT=8443
- CLUSTER_SECRET=${CLUSTER_SECRET}
depends_on:
- pyguardian-controller
healthcheck:
test: ["CMD", "python", "-c", "import sys; sys.exit(0)"]
interval: 60s
timeout: 15s
retries: 3
start_period: 30s
volumes:
controller_data:
driver: local
controller_logs:
driver: local
controller_config:
driver: local
agent1_data:
driver: local
agent1_logs:
driver: local
agent1_config:
driver: local
networks:
default:
name: pyguardian-network