Verlihub puede cargar scripts Lua a través de su complemento Lua. Utilice Lua cuando un concentrador necesite un pequeño cambio de comportamiento sin volver a compilar el servidor Verlihub.
Los usos comunes incluyen bots de visualización, anuncios programados, comandos auxiliares, reglas de validación, asistentes de moderación automatizada, estadísticas centrales y enlaces de integración. La compatibilidad con Lua depende del complemento que se instale, cree y habilite.
Qué hace el complemento Lua
El complemento Lua ejecuta scripts Lua dentro del proceso central. Esto brinda a los administradores un camino más fácil para la personalización del concentrador que editar el código fuente Verlihub C++ o escribir un complemento compilado.
Los scripts Lua suelen ser más fáciles de revisar y reemplazar que los complementos compilados cuando el cambio es pequeño y específico del centro.
- Comandos de concentrador personalizados
- Mensajes de bienvenida automatizados
- Anuncios cronometrados
- Comprobaciones de validación de usuario
- Respuestas de bots
- Comandos de ayuda del operador
- Ganchos de registro o notificación
- Comprobaciones simples antispam o anti-flood
- Comportamiento específico del concentrador que no justifica un complemento de C++
Requisitos
Antes de habilitar la compatibilidad con Lua, confirme que el complemento Lua exista en el servidor. Una ruta de complemento común es /usr/local/lib/liblua_pi.so.
Compruebe si el archivo del complemento existe:
ls -lah /usr/local/lib/liblua_pi.so
Si el archivo no existe, es probable que Lua no se haya compilado ni instalado. Reconstruya Verlihub con la compatibilidad con el complemento Lua habilitada.
Dependiendo del sistema y del método de instalación, el complemento también puede vivir en /usr/lib, /usr/lib64, /usr/local/lib, o /usr/local/lib64. Búscalo antes de cambiar la configuración del hub:
find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null
Edificio Verlihub con soporte Lua
Si no se incluyó soporte para Lua durante la instalación, instale primero el paquete de desarrollo Lua. En Debian o Ubuntu:
sudo apt update
sudo apt install lua5.4 liblua5.4-dev
Algunas compilaciones Verlihub utilizan Lua 5.3 en lugar de Lua 5.4. Instale el paquete correspondiente cuando su sucursal o distribución lo requiera:
sudo apt install lua5.3 liblua5.3-dev
Luego reconstruya Verlihub con el complemento Lua habilitado a través de CMake:
cmake .. -DWITH_LUA=ON
make
sudo make install
El nombre exacto de la opción CMake puede variar según la versión Verlihub. Verifique las opciones de compilación disponibles antes de reconstruir un centro de producción:
cmake -LAH ..
Después de la instalación, confirme que se instaló la biblioteca de complementos:
find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null
Comandos de complemento
El complemento Lua se administra mediante comandos del complemento Verlihub desde una cuenta de operador.
- Listar complementos instalados o conocidos con
!lstplug. - Registre el complemento Lua con
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.. - Marque el complemento Lua activo con
!modplug lua -a 1. - Cargue el complemento con
!onplug lua. - Confirme los complementos cargados con
!pluglist.
!lstplug
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.
!modplug lua -a 1
!onplug lua
!pluglist
Explicación del comando
!lstplug
Enumera los complementos conocidos por Verlihub. Úselo primero para ver si el complemento Lua ya está registrado.
!lstplug
!addplug
Registra el complemento Lua con Verlihub.
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.
Significado de la opción:
lua: Nombre del complemento interno.-p /usr/local/lib/liblua_pi.so: Ruta a la biblioteca compartida del complemento Lua.-a 1: Marca el complemento como activo.-d Support for Lua scripts.: Descripción del complemento legible por humanos.
!modplug
Modifica el registro del complemento y se asegura de que el complemento Lua esté marcado como activo.
!modplug lua -a 1
!onplug
Carga o inicia el complemento Lua después de agregarlo y habilitarlo.
!onplug lua
!pluglist
Muestra los complementos cargados actualmente. Úselo para confirmar que Lua está activo.
!pluglist
Ubicación recomendada del script Lua
Mantenga los scripts Lua en un directorio dedicado propiedad del usuario del servicio Verlihub.
sudo mkdir -p /usr/local/etc/verlihub/lua
sudo chown -R verlihub:verlihub /usr/local/etc/verlihub/lua
sudo chmod 750 /usr/local/etc/verlihub/lua
Si su servicio Verlihub se ejecuta como otro usuario, reemplace verlihub:verlihub con el usuario y grupo correctos.
sudo chown -R vh:vh /usr/local/etc/verlihub/lua
sudo chown -R www-data:www-data /usr/local/etc/verlihub/lua
No haga que los directorios de scripts Lua sean escribibles en todo el mundo. Evitar chmod 777 /usr/local/etc/verlihub/lua.
Ejemplo de secuencia de comandos Lua
Cree un pequeño script de prueba:
sudo nano /usr/local/etc/verlihub/lua/test.lua
Contenido de ejemplo:
-- Simple Verlihub Lua test script.
-- This file confirms that the Lua plugin can load and execute scripts.
function Main()
VH:SendToAll("Lua test script loaded successfully.")
end
Las funciones Lua disponibles dependen de la API del complemento Verlihub Lua. Algunas instalaciones exponen objetos o funciones auxiliares de manera diferente, así que compare los ejemplos con la biblioteca de scripts Verlihub utilizada por su versión Verlihub.
Cargando scripts Lua
Una vez que el complemento Lua está activo, los scripts generalmente se pueden cargar a través de comandos Lua específicos del complemento o directorios de scripts configurados.
Comience verificando los comandos del complemento Lua disponibles desde el interior del concentrador:
!help lua
!plughelp lua
Si el complemento admite la lista, carga, descarga o recarga de secuencias de comandos, es posible que vea comandos similares a estos:
!lua
!lslua
!loadlua
!unloadlua
!reloadlua
Los nombres de los comandos pueden diferir entre las compilaciones Verlihub y las versiones del complemento.
Verificando que Lua esté funcionando
Verifique la configuración por etapas. Primero confirme que el complemento esté registrado, luego confirme que esté cargado:
!lstplug
!pluglist
Luego verifique los registros del servidor para ver los mensajes del complemento Lua:
journalctl -u verlihub -n 100 --no-pager
Si Verlihub no está administrado por systemd, verifique el directorio de registro Verlihub configurado. Las ubicaciones comunes incluyen /var/log/verlihub y /usr/local/var/log/verlihub.
Busque entradas de registro relacionadas con Lua cuando el registro de servicio sea grande:
grep -i lua /var/log/verlihub/* 2>/dev/null
Recomendaciones de producción
Utilice Lua para comportamientos personalizados pequeños, no para procesamiento pesado. El código Lua se ejecuta dentro del proceso central, por lo que un script incorrecto puede afectar el chat, el inicio de sesión o las actualizaciones de la lista de usuarios.
Buenos casos de uso de Lua:
- Comandos simples
- Mensajes centrales
- Comprobaciones de usuario
- Automatización ligera
- Pequeños ganchos de integración
Evite utilizar Lua para:
- Trabajos en segundo plano de larga duración
- Consultas pesadas de bases de datos
- Procesamiento de archivos grandes
- Bloquear llamadas de red
- Bucles con mucha CPU
- Cualquier cosa que pueda congelar el proceso central.
Pruebe los scripts en un centro de ensayo antes de cargarlos en un centro público con usuarios conectados.
Notas de seguridad
Solo los administradores de confianza deberían poder cargar o modificar scripts Lua.
Permisos recomendados:
sudo chown -R verlihub:verlihub /usr/local/etc/verlihub/lua
sudo chmod -R u=rwX,g=rX,o= /usr/local/etc/verlihub/lua
No permita que usuarios que no sean de confianza escriban archivos Lua. No almacene secretos directamente en los scripts Lua a menos que los permisos de los archivos estén bloqueados.
Mantenga los comandos de administración de complementos solo para operadores o administradores. Los usuarios normales no deberían poder cargar, descargar ni reemplazar scripts.
Solución de problemas
Archivo de complemento no encontrado
Los síntomas incluyen Cannot load plugin, No such file, o liblua_pi.so not found. Busque la biblioteca y luego actualice la ruta del complemento almacenado:
find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null
!modplug lua -p /correct/path/to/liblua_pi.so
El complemento Lua no aparece en la lista de complementos
Compruebe si se agregó. Si falta, agréguelo, márquelo como activo y cárguelo:
!lstplug
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.
!modplug lua -a 1
!onplug lua
El complemento existe pero no se carga
Verifique las dependencias de la biblioteca compartida y busque las bibliotecas Lua que faltan:
ldd /usr/local/lib/liblua_pi.so
not found
Si faltan las bibliotecas Lua, instale el paquete de tiempo de ejecución Lua correspondiente.
sudo apt install lua5.4 liblua5.4-0
sudo apt install lua5.3 liblua5.3-0
El script no se ejecuta
Verifique la ruta del script, los permisos de los archivos y los registros Verlihub. También verifique que el complemento Lua admita la API de secuencia de comandos utilizada por la secuencia de comandos.
ls -lah /usr/local/etc/verlihub/lua
journalctl -u verlihub -n 100 --no-pager
Hub se vuelve inestable después de cargar un script
Descargue el script o desactive el complemento Lua. Si el concentrador no responde, detenga Verlihub desde el shell y saque el script del directorio Lua:
sudo systemctl stop verlihub
sudo mkdir -p /usr/local/etc/verlihub/lua-disabled
sudo mv /usr/local/etc/verlihub/lua/problem-script.lua /usr/local/etc/verlihub/lua-disabled/
sudo systemctl start verlihub
Flujo de trabajo de administración sugerido
- Confirme que existe el complemento Lua.
- Añade el complemento con
!addplug. - Habilítelo con
!modplug. - Empiece con
!onplug. - Confírmalo con
!pluglist. - Cree un directorio de script Lua dedicado.
- Agregue un pequeño script de prueba.
- Verifique los registros Verlihub.
- Agregue guiones de producción uno a la vez.
- Mantenga copias de seguridad de los scripts en funcionamiento antes de realizar cambios.
Verlihub Lua Biblioteca de scripts
La biblioteca de scripts Verlihub Lua contiene scripts de ejemplo y código Lua reutilizable para la personalización del concentrador. Úselo como referencia para funciones admitidas, enlaces de eventos y patrones de comando.
Cuando utilice scripts de la biblioteca:
- Revise el script antes de instalarlo.
- Confirme que coincida con su versión Verlihub.
- Pruébelo primero en un centro que no sea de producción.
- Busque rutas codificadas, nombres de centros, apodos de operadores o configuraciones de bases de datos.
- Mantenga una copia de seguridad del guión original antes de editarlo.