Skip to content

Tabula17/mundae-odf-mutatis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XVII: 🌍 mundae-odf-mutatis

PHP Version License Last commit

Servidor de conversión de documentos ODF (Open Document Format) basado en Swoole y Unoserver.

Descripción

🌍 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.

Características

  • 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

Requisitos

  • PHP 8.2 o superior
  • Swoole PHP Extension
  • Redis (para funcionalidad de cola)
  • LibreOffice/unoserver

Instalación

composer require xvii/mundae-odf-mutatis

Configuración

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
    ]
];

Uso

Iniciar el servidor

php app/server.php

Iniciar el worker

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.

Ejemplo de uso del cliente

$client = new ConversionClient();
$result = $client->convert(
    '/ruta/documento.odt',
    'pdf',
    '/ruta/salida.pdf',
    true,  // async
    false  // no usar cola
);

Características de Seguridad

  • Soporte para mTLS (autenticación mutua TLS)
  • Validación de certificados SSL
  • Control de concurrencia
  • Monitoreo de salud de servidores

Licencia

Este proyecto está licenciado bajo [MIT License].

Contribución

Las contribuciones son bienvenidas. Por favor, asegúrate de actualizar las pruebas según corresponda.

🌌 Ad astra per codicem

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages