Actualizar README.md con la descripción del sistema y la configuración de servicios Docker
This commit is contained in:
184
README.md
184
README.md
@@ -1 +1,183 @@
|
||||
Pruebas con docker
|
||||
# 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:
|
||||
|
||||
```bash
|
||||
git clone <tu-repositorio>
|
||||
cd onedrive
|
||||
```
|
||||
|
||||
2. Configura las variables de entorno en `docker-compose.yml`:
|
||||
|
||||
```yaml
|
||||
E5_CLIENT_ID=tu_client_id
|
||||
E5_CLIENT_SECRET=tu_client_secret
|
||||
E5_REFRESH_TOKEN=tu_refresh_token
|
||||
WEB_APP_PASSWORD=tu_password_segura
|
||||
```
|
||||
|
||||
3. Inicia los servicios:
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
4. Verifica el estado:
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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`
|
||||
|
||||
Reference in New Issue
Block a user