Servidor de conversión de documentos ODF (Open Document Format) basado en Swoole y Unoserver.
🌍 mundae-odf-mutatis es un servicio de conversión de documentos que utiliza LibreOffice/unoserver como backend para realizar conversiones de formatos ODF a otros formatos como PDF. Implementa un sistema cliente-servidor con capacidades de procesamiento asíncrono y balanceo de carga.
- Servidor TCP con Swoole
- Procesamiento síncrono y asíncrono
- Sistema de cola con Redis
- Balanceo de carga de instancias unoserver
- Soporte para mTLS (mutual TLS)
- Monitoreo de salud de servidores
- Workers para procesamiento en segundo plano
- PHP 8.2 o superior
- Swoole PHP Extension
- Redis (para funcionalidad de cola)
- LibreOffice/unoserver
composer require xvii/mundae-odf-mutatis
Crear un archivo config/config.php
con la siguiente estructura:
return [
'server' => [
'host' => '127.0.0.1',
'port' => 9501,
'workers' => 4,
'task_workers' => 8,
'log_file' => '/path/to/log/file.log'
],
'unoserver_instances' => [
['host' => 'localhost', 'port' => 2002],
['host' => 'localhost', 'port' => 2003]
],
'queue' => [
'enabled' => true,
'host' => 'localhost',
'port' => 6379,
'channel' => 'conversions'
],
'concurrency' => 10,
'ssl' => [
'enabled' => false,
'ssl_cert_file' => '/path/to/cert.pem',
'ssl_key_file' => '/path/to/key.pem',
'ssl_client_cert_file' => true
]
];
php app/server.php
php app/worker.php
Más detalles sobre la configuración y uso del servidor y worker se pueden encontrar en el archivo app/README.md
.
$client = new ConversionClient();
$result = $client->convert(
'/ruta/documento.odt',
'pdf',
'/ruta/salida.pdf',
true, // async
false // no usar cola
);
- Soporte para mTLS (autenticación mutua TLS)
- Validación de certificados SSL
- Control de concurrencia
- Monitoreo de salud de servidores
Este proyecto está licenciado bajo [MIT License].
Las contribuciones son bienvenidas. Por favor, asegúrate de actualizar las pruebas según corresponda.