4.7 KiB
4.7 KiB
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
- Clona el repositorio:
git clone <tu-repositorio>
cd onedrive
- 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
- Inicia los servicios:
docker-compose up -d
- 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
IPapunte aodengin: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