teresa11395/fase7-toolkit

GitHub: teresa11395/fase7-toolkit

Stars: 0 | Forks: 0

# 🛠️ Toolkit de Administración de Sistemas API REST para administradores de sistemas con Docker, Redis y NGINX. ## 📋 Descripción Este proyecto dockeriza el toolkit de Python de la Fase 7, exponiendo sus funcionalidades a través de una API REST construida con FastAPI. La infraestructura incluye tres servicios orquestados con Docker Compose: un backend Python, una base de datos Redis y un proxy inverso NGINX. ## 🏗️ Arquitectura Internet → NGINX (puerto 80) → Backend FastAPI (puerto 8000) → Redis (puerto 6379) ## 🚀 Arranque rápido ### Requisitos - Docker Engine - Docker Compose v2 ### Instalación 1. Clona el repositorio: git clone https://github.com/teresa11395/fase7-toolkit.git cd fase7-toolkit 2. Crea el archivo de variables de entorno: cp .env.example .env 3. Edita `.env` con tus valores: REDIS_PASSWORD=tu_contraseña_segura 4. Arranca la infraestructura: docker compose up --build 5. Accede a la API en: http://localhost/docs ## 📡 Endpoints | Método | Ruta | Descripción | |--------|------|-------------| | GET | /status | Estado de la API | | GET | /inventory | Inventario de servidores | | GET | /logs/suspicious | IPs sospechosas en auth.log | | POST | /entries | Guardar entrada persistente | | GET | /entries | Leer entradas guardadas | | GET | /cache/logs | Logs con caché Redis | | POST | /suspicious-ips | Reportar IP sospechosa | | GET | /suspicious-ips | Listar IPs sospechosas | ## 🗂️ Estructura del proyecto fase7-toolkit/ ├── docs/ # Documentación técnica │ ├── docker-teoria.md │ ├── docker-dockerfile.md │ ├── docker-redes.md │ ├── docker-volumenes.md │ └── nginx-teoria.md ├── main.py # API FastAPI ├── Dockerfile # Imagen del backend ├── docker-compose.yml # Orquestación de servicios ├── nginx.conf # Configuración del proxy ├── .env.example # Plantilla de variables ├── .dockerignore # Archivos excluidos del build └── requirements.txt # Dependencias Python ## 🔧 Servicios ### Backend (Python + FastAPI) - Imagen base: `python:3.11-alpine` - Puerto interno: 8000 - Healthcheck: GET /status cada 30s ### Redis - Imagen: `redis:7-alpine` - Puerto interno: 6379 - Autenticación por contraseña - Datos persistentes en volumen ### NGINX - Imagen: `nginx:alpine` - Puerto externo: 80 - Rate limiting: 10 req/s por IP - Proxy inverso hacia el backend ## 📚 Documentación técnica Toda la documentación teórica está en la carpeta `docs/`: - **docker-teoria.md** — Conceptos fundamentales de Docker - **docker-dockerfile.md** — Imágenes por capas y Dockerfile - **docker-redes.md** — Redes en Docker - **docker-volumenes.md** — Persistencia de datos - **nginx-teoria.md** — NGINX y proxy inverso ## ⚙️ Comandos útiles # Arrancar en segundo plano docker compose up -d --build # Ver logs docker compose logs -f # Parar todo docker compose down # Ver recursos en uso docker stats