Aangemaakt: 2026/07/02 19:41:27 America/Chicago
Door: admin
Gewijzigd: 2026/07/03 16:24:56 America/Chicago
Door: admin

Verlihub kan Lua-scripts laden via de plug-in Lua. Gebruik Lua wanneer een hub een kleine gedragsverandering nodig heeft zonder de Verlihub-server opnieuw te compileren.

Veelvoorkomende toepassingen zijn displaybots, geplande aankondigingen, helperopdrachten, validatieregels, geautomatiseerde moderatiehelpers, hubstatistieken en integratiehooks. Lua-ondersteuning is afhankelijk van de plug-in die wordt geïnstalleerd, gebouwd en ingeschakeld.

Wat de plug-in Lua doet

De plug-in Lua voert Lua-scripts uit binnen het hubproces. Dat geeft beheerders een lichter pad voor het aanpassen van de hub dan het bewerken van de Verlihub C++-bron of het schrijven van een gecompileerde plug-in.

Lua-scripts zijn doorgaans gemakkelijker te beoordelen en te vervangen dan gecompileerde plug-ins als de wijziging klein en hub-specifiek is.

  • Aangepaste hub-opdrachten
  • Geautomatiseerde welkomstberichten
  • Getimede aankondigingen
  • Controles op gebruikersvalidatie
  • Bot-reacties
  • Operatorhelperopdrachten
  • Haken voor logboekregistratie of meldingen
  • Eenvoudige anti-spam- of anti-overstromingscontroles
  • Hub-specifiek gedrag dat een C++-plug-in niet rechtvaardigt

Vereisten

Voordat u ondersteuning voor Lua inschakelt, moet u bevestigen dat de plug-in Lua op de server bestaat. Een veelgebruikt plug-inpad is /usr/local/lib/liblua_pi.so.

Controleer of het plug-inbestand bestaat:

 ls -lah /usr/local/lib/liblua_pi.so 

Als het bestand niet bestaat, is Lua waarschijnlijk niet gebouwd of geïnstalleerd. Herbouw Verlihub met ondersteuning voor plug-ins Lua ingeschakeld.

Afhankelijk van het systeem en de installatiemethode kan de plug-in ook aanwezig zijn /usr/lib, /usr/lib64, /usr/local/lib, of /usr/local/lib64. Zoek ernaar voordat u de hubconfiguratie wijzigt:

 find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null 

Gebouw Verlihub met Lua Ondersteuning

Als er tijdens de installatie geen ondersteuning voor Lua was inbegrepen, installeer dan eerst het ontwikkelingspakket Lua. Op Debian of Ubuntu:

 sudo apt update
sudo apt install lua5.4 liblua5.4-dev 

Sommige Verlihub-builds gebruiken Lua 5.3 in plaats van Lua 5.4. Installeer het bijpassende pakket wanneer uw vestiging of distributie dit vereist:

 sudo apt install lua5.3 liblua5.3-dev 

Bouw vervolgens Verlihub opnieuw op met de plug-in Lua ingeschakeld via CMake:

 cmake .. -DWITH_LUA=ON
make
sudo make install 

De exacte optienaam CMake kan variëren per versie Verlihub. Controleer de beschikbare bouwopties voordat u een productiehub opnieuw opbouwt:

 cmake -LAH .. 

Bevestig na de installatie dat de plug-inbibliotheek is geïnstalleerd:

 find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null 

Plugin-opdrachten

De plug-in Lua wordt beheerd via plug-inopdrachten Verlihub vanuit een operatoraccount.

  • Geef geïnstalleerde of bekende plug-ins weer met !lstplug.
  • Registreer de plug-in Lua met !addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts..
  • Markeer de plug-in Lua actief met !modplug lua -a 1.
  • Laad de plug-in met !onplug lua.
  • Bevestig geladen plug-ins met !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 

Commando uitleg

!lstplug

Geeft een overzicht van de plug-ins die bekend zijn bij Verlihub. Gebruik deze eerst om te zien of de plug-in Lua al is geregistreerd.

 !lstplug 

!addplug

Registreert de plug-in Lua met Verlihub.

 !addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts. 

Optie betekenis:

  • lua: Interne plug-innaam.
  • -p /usr/local/lib/liblua_pi.so: Pad naar de gedeelde bibliotheek Lua plug-in.
  • -a 1: Markeert de plug-in als actief.
  • -d Support for Lua scripts.: Voor mensen leesbare plug-inbeschrijving.

!modplug

Wijzigt het plug-inrecord en zorgt ervoor dat plug-in Lua als actief wordt gemarkeerd.

 !modplug lua -a 1 

!onplug

Laadt of start de plug-in Lua nadat deze is toegevoegd en ingeschakeld.

 !onplug lua 

!pluglist

Toont momenteel geladen plug-ins. Gebruik het om te bevestigen dat Lua actief is.

 !pluglist 

Bewaar de Lua-scripts in een speciale map die eigendom is van de Verlihub-servicegebruiker.

 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 

Als uw Verlihub-service als een andere gebruiker wordt uitgevoerd, vervangt u verlihub:verlihub met de juiste gebruiker en groep.

 sudo chown -R vh:vh /usr/local/etc/verlihub/lua
sudo chown -R www-data:www-data /usr/local/etc/verlihub/lua 

Maak de Lua-scriptmappen niet wereldbeschrijfbaar. Voorkomen chmod 777 /usr/local/etc/verlihub/lua.

Voorbeeld Lua Script

Maak een klein testscript:

 sudo nano /usr/local/etc/verlihub/lua/test.lua 

Voorbeeld inhoud:

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

De beschikbare Lua-functies zijn afhankelijk van de plug-in-API Verlihub Lua. Sommige installaties geven helperobjecten of -functies anders weer, dus vergelijk de voorbeelden met de scriptbibliotheek Lua die door uw Verlihub-versie wordt gebruikt.

Lua Scripts laden

Nadat de plug-in Lua actief is, kunnen scripts meestal worden geladen via plug-in-specifieke Lua-opdrachten of geconfigureerde scriptmappen.

Begin met het controleren van de beschikbare Lua plug-inopdrachten vanuit de hub:

 !help lua
!plughelp lua 

Als de plug-in het weergeven, laden, verwijderen of herladen van scripts ondersteunt, ziet u mogelijk soortgelijke opdrachten als deze:

 !lua
!lslua
!loadlua
!unloadlua
!reloadlua 

Commandonamen kunnen verschillen tussen Verlihub-builds en plug-inversies.

Controleren of Lua werkt

Controleer de opstelling stapsgewijs. Bevestig eerst dat de plug-in is geregistreerd en bevestig vervolgens dat deze is geladen:

 !lstplug
!pluglist 

Controleer vervolgens de serverlogboeken op Lua-plug-inberichten:

 journalctl -u verlihub -n 100 --no-pager 

Als Verlihub niet wordt beheerd door systemd, controleer dan in plaats daarvan de geconfigureerde logmap Verlihub. Veel voorkomende locaties zijn onder meer /var/log/verlihub En /usr/local/var/log/verlihub.

Zoek naar Lua-gerelateerde logboekvermeldingen wanneer het servicelogboek groot is:

 grep -i lua /var/log/verlihub/* 2>/dev/null 

Productie-aanbevelingen

Gebruik Lua voor klein aangepast gedrag, niet voor zware verwerking. Lua-code wordt binnen het hubproces uitgevoerd, dus een slecht script kan van invloed zijn op chat-, login- of gebruikerslijstupdates.

Goede Lua gebruiksscenario's:

  • Eenvoudige commando's
  • Hub-berichten
  • Gebruikerscontroles
  • Lichtgewicht automatisering
  • Kleine integratiehaken

Vermijd het gebruik van Lua voor:

  • Langlopende achtergrondbanen
  • Zware databasequery's
  • Verwerking van grote bestanden
  • Netwerkoproepen blokkeren
  • CPU-zware loops
  • Alles wat het hubproces kan bevriezen

Test scripts op een faseringshub voordat u ze op een openbare hub laadt terwijl de gebruikers zijn verbonden.

Beveiligingsopmerkingen

Alleen vertrouwde beheerders mogen Lua-scripts kunnen uploaden of wijzigen.

Aanbevolen rechten:

 sudo chown -R verlihub:verlihub /usr/local/etc/verlihub/lua
sudo chmod -R u=rwX,g=rX,o= /usr/local/etc/verlihub/lua 

Sta niet toe dat niet-vertrouwde gebruikers Lua-bestanden schrijven. Bewaar geheimen niet rechtstreeks in Lua-scripts, tenzij de bestandsrechten zijn vergrendeld.

Houd plug-inbeheeropdrachten alleen voor de operator of alleen voor de beheerder. Normale gebruikers zouden geen scripts moeten kunnen laden, verwijderen of vervangen.

Problemen oplossen

Plug-inbestand niet gevonden

Symptomen zijn onder meer Cannot load plugin, No such file, of liblua_pi.so not found. Zoek naar de bibliotheek en update vervolgens het opgeslagen plug-inpad:

 find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null 
 !modplug lua -p /correct/path/to/liblua_pi.so 

Lua plug-in verschijnt niet in de plug-inlijst

Controleer of deze is toegevoegd. Als het ontbreekt, voeg het dan toe, markeer het als actief en laad het:

 !lstplug
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.
!modplug lua -a 1
!onplug lua 

De plug-in bestaat, maar kan niet worden geladen

Controleer de afhankelijkheden van de gedeelde bibliotheek en zoek naar ontbrekende Lua-bibliotheken:

 ldd /usr/local/lib/liblua_pi.so 
 not found 

Als de Lua-bibliotheken ontbreken, installeert u het overeenkomende runtimepakket Lua.

 sudo apt install lua5.4 liblua5.4-0
sudo apt install lua5.3 liblua5.3-0 

Script wordt niet uitgevoerd

Controleer het scriptpad, de bestandsrechten en de Verlihub-logboeken. Controleer ook of de plug-in Lua de script-API ondersteunt die door het script wordt gebruikt.

 ls -lah /usr/local/etc/verlihub/lua
journalctl -u verlihub -n 100 --no-pager 

Hub wordt instabiel na het laden van een script

Verwijder het script of schakel de plug-in Lua uit. Als de hub niet reageert, stop dan Verlihub vanuit de shell en verplaats het script uit de map 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 

Voorgestelde beheerdersworkflow

  1. Controleer of de plug-in Lua bestaat.
  2. Voeg de plug-in toe met !addplug.
  3. Schakel het in met !modplug.
  4. Begin ermee !onplug.
  5. Bevestig het met !pluglist.
  6. Maak een speciale scriptmap Lua.
  7. Voeg een klein testscript toe.
  8. Controleer de logboeken Verlihub.
  9. Voeg productiescripts één voor één toe.
  10. Bewaar back-ups van werkende scripts voordat u wijzigingen aanbrengt.

Verlihub Lua Scriptbibliotheek

De scriptbibliotheek Verlihub Lua bevat voorbeeldscripts en herbruikbare Lua-code voor hubaanpassing. Gebruik het als referentie voor ondersteunde functies, gebeurtenishooks en opdrachtpatronen.

Bij gebruik van scripts uit de bibliotheek:

  • Controleer het script voordat u het installeert.
  • Bevestig dat het overeenkomt met uw Verlihub-versie.
  • Test het eerst op een niet-productiehub.
  • Controleer op hardgecodeerde paden, hubnamen, bijnamen van operators of database-instellingen.
  • Bewaar een back-up van het originele script voordat u het gaat bewerken.

Open de scriptbibliotheek Verlihub Lua

Related Pages

Bovenliggende Pagina