OneDrive Engine

Sistema automatizado para la renovación de Microsoft E5 usando Docker, compuesto por dos servicios principales que trabajan en conjunto.

📋 Descripción

Este proyecto implementa un sistema de dos contenedores Docker:

  • odengin: Motor principal que gestiona la renovación automática de Microsoft E5
  • odcron: Servicio de tareas programadas que se comunica con el motor principal

🏗️ Arquitectura

┌─────────────────┐         ┌─────────────────┐
│    odcron       │────────>│    odengin      │
│  (Scheduler)    │  HTTP   │    (Engine)     │
│   Port: N/A     │         │   Port: 8080    │
└─────────────────┘         └─────────────────┘

Los servicios se comunican a través de una red Docker privada (odeng-net).

🚀 Inicio Rápido

Prerrequisitos

  • Docker
  • Docker Compose
  • Credenciales de Microsoft E5:
    • Client ID
    • Client Secret
    • Refresh Token

Instalación

  1. Clona el repositorio:
git clone <tu-repositorio>
cd onedrive
  1. Configura las variables de entorno en docker-compose.yml:
E5_CLIENT_ID=tu_client_id
E5_CLIENT_SECRET=tu_client_secret
E5_REFRESH_TOKEN=tu_refresh_token
WEB_APP_PASSWORD=tu_password_segura
  1. Inicia los servicios:
docker-compose up -d
  1. Verifica el estado:
docker-compose ps
docker-compose logs -f

⚙️ Configuración

Variables de Entorno

Servicio odengin

Variable Descripción Requerida
E5_CLIENT_ID Client ID de Microsoft Azure
E5_CLIENT_SECRET Client Secret de Azure
E5_REFRESH_TOKEN Token de renovación
WEB_APP_PASSWORD Contraseña de la aplicación web
E5_WEB_APP_PASSWORD Contraseña adicional E5

Servicio odcron

Variable Descripción Requerida
IP Dirección del motor (formato: host:puerto)
PASSWORD Contraseña de autenticación
REFRESH_TOKEN Token de renovación

Puertos

  • 8089: Puerto expuesto del servicio odengin (mapea al 8080 interno)

📁 Estructura del Proyecto

onedrive/
├── docker-compose.yml      # Orquestación de servicios
├── README.md              # Este archivo
├── cron/                  # Servicio de tareas programadas
│   ├── Dockerfile
│   ├── docker-compose.yml
│   ├── requirements.txt
│   ├── script.py
│   └── README.md
└── engine/                # Motor principal
    ├── Dockerfile
    ├── docker-compose.yml
    └── README.md

🔧 Comandos Útiles

Gestión de Contenedores

# Iniciar servicios
docker-compose up -d

# Detener servicios
docker-compose down

# Ver logs en tiempo real
docker-compose logs -f

# Ver logs de un servicio específico
docker-compose logs -f odengin
docker-compose logs -f odcron

# Reiniciar servicios
docker-compose restart

# Reconstruir imágenes
docker-compose build --no-cache
docker-compose up -d

Monitoreo

# Estado de los contenedores
docker-compose ps

# Inspeccionar un contenedor
docker inspect odengin

# Acceder al shell de un contenedor
docker exec -it odengin /bin/bash
docker exec -it odcron /bin/bash

🔍 Troubleshooting

El servicio odengin no inicia

  • Verifica que las credenciales de E5 sean correctas
  • Revisa los logs: docker-compose logs odengin
  • Asegúrate de que el puerto 8089 no esté en uso

El servicio odcron no se conecta

  • Verifica que odengin esté corriendo: docker-compose ps
  • Confirma que la variable IP apunte a odengin:8080
  • Revisa la configuración de la red: docker network inspect onedrive_odeng-net

Problemas de red entre contenedores

# Verificar conectividad
docker exec -it odcron ping odengin

🛡️ Seguridad

⚠️ Importante:

  • Nunca subas credenciales al repositorio
  • Usa variables de entorno o archivos .env
  • Cambia las contraseñas por defecto
  • Mantén las imágenes actualizadas

📝 Notas

  • Los contenedores se reinician automáticamente (restart: unless-stopped)
  • La comunicación entre servicios usa la red interna odeng-net
Description
No description provided
Readme 124 KiB
Languages
Shell 64.3%
Dockerfile 35.7%