LeTTo Doc

Build und Deployment des Referenz-Plugins

Build

Beide Scripts suchen das Projektverzeichnis (Datei plugin-demo-java.info), lesen den Endpoint-Pfad (urlpath) aus build/vars.bat und führen folgende Schritte aus:

  1. revision.txt nach src/main/resources/revision.txt kopieren
  2. mvn clean
  3. mvn javadoc:javadoc und die JavaDoc nach src/main/resources/static/<endpoint>/open/javadoc kopieren
  4. mvn package (ohne Tests) → target/plugin-demo-java-0.1.jar
  5. laufenden Container mit docker compose -f docker-service-<endpoint>.yml down stoppen
  6. Docker-Image lettohub/letto-service-<endpoint>:stable neu bauen
  7. yml/docker-service-plugin.yml als docker-service-<endpoint>.yml ins Compose-Verzeichnis kopieren und mit docker compose up -d starten
  build.bat build.sh
Java JAVA_HOME fest auf C:\Program Files\Java\jdk-25 aus der Umgebung
Maven mvn mvn, sonst ./mvnw
Compose-Verzeichnis \opt\letto\docker\compose\letto $LETTO_COMPOSE_DIR, Standard /opt/letto/docker/compose/letto

Docker

Dockerfile:

Compose-Datei yml/docker-service-plugin.yml

Wichtige Umgebungsvariablen:

Variable Bedeutung
letto_setup_uri URI des Setup-Services (Standard http://letto-setup.nw-letto:8096)
letto_user_user_password Passwort für die Anmeldung am Setup-Service (SERVICE_USER_PASSWORD)
servername Servername (SERVER_NAME)
letto.plugin.uri.intern interne URI des Plugins (Standard http://letto-<endpoint>.nw-letto:8080)
letto.plugin.uri.extern externe Basis-URI (Standard https://${SERVER_NAME})
network.letto.address, docker.container.name Adresse und Containername, werden an das Setup gemeldet
letto_pathImages, letto_webPathImages Verzeichnis und Web-Pfad der Bilder
letto_pathPlugins, letto_webPathPlugins Verzeichnis und Web-Pfad der Plugin-Bilder
debug true startet mit Remote-Debugging (DEBUG_PLUGINS bzw. DEBUG)

Weitere Variablen (jwt_secret, server_secret, spring.mail.* u.a.) sind in der Compose-Datei gesetzt, werden im Demo-Code aber nicht ausgewertet.

Proxy

Die nginx-Konfiguration proxy/<endpoint>.conf wird von setpluginname.bat erzeugt:

location /plugindemo/ {
     resolver 127.0.0.11 valid=5s ipv6=off;
     set $plugindemopath     letto-plugindemo.nw-letto:8080;
     proxy_set_header   Host $host;
     proxy_set_header   X-Real-IP $remote_addr;
     proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header   X-Forwarded-Proto $scheme;
     proxy_pass         http://$plugindemopath;
     proxy_read_timeout 90;
}

Einspielen am LeTTo-Server:

cp proxy/*.conf /opt/letto/docker/proxy/
docker restart letto-proxy

Registrierung am LeTTo-Server

Debugging und Testen

Referenz-Plugin (Java)