SKLTP TAK - Installationsmanual

SKLTP TAK - Installationsmanual

Installationsguide för TAK — Tjänsteadresskatalog

Version: 4.1
Datum: Oktober 2025


1. Introduktion

TAK (Tjänsteadresskatalog) är en central komponent i SKLTP-plattformen som tillhandahåller en katalog över tjänster, kontrakt och adresser.
Applikationen är utvecklad i Java 17 med Spring Boot 3.5, och kan köras på både Linux, Windows och andra plattformar som stödjer Java.

TAK består av tre fristående komponenter:

Komponent

Funktion

Obligatorisk

Komponent

Funktion

Obligatorisk

tak-services.jar

Exponerar tjänster (REST/SOAP) som andra system använder för att läsa katalogdata.

✅ Ja

tak-web.jar

Webbaserat administrationsgränssnitt för att hantera kataloginnehåll.

✅ Ja

tak-monitor.jar

Övervakar publicering av nya databasversioner och anropar HTTP-endpoints för att invalidera cachear i tak-services, VP, AGP och andra system.

❌ Valfri

💡 tak-monitor behövs inte för att driften av TAK ska fungera, men används för cache-synkronisering i större miljöer.


2. Systemkrav

Komponent

Rekommenderad version

Komponent

Rekommenderad version

Java Runtime Environment (JRE)

17 (LTS)

Databas

MySQL 8.0

Minne

Minst 1 GB RAM per komponent

Disk

Minst 500 MB ledigt utrymme

Nätverk

Åtkomst till databas och eventuell e-postserver


3. Förberedelser

3.1 Installera Java 17

Kontrollera om Java redan är installerat:

java -version

Exempelinstallation på Linux (Ubuntu/Debian):

sudo apt install openjdk-17-jre

För Windows: ladda ner från
https://adoptium.net


3.2 Installera MySQL 8.0

Exempel för Debian/Ubuntu:

sudo apt install mysql-server sudo systemctl enable mysql sudo systemctl start mysql

3.3 Skapa databas och användare

Logga in i MySQL:

mysql -u root -p

Skapa schema och användare:

CREATE DATABASE tp_admin CHARACTER SET utf8; GRANT USAGE ON tp_admin.* TO 'tp_adminuser'@'localhost' IDENTIFIED BY '<lösenord>'; GRANT ALL PRIVILEGES ON tp_admin.* TO 'tp_adminuser'@'localhost'; FLUSH PRIVILEGES;

🔒 Byt ut <lösenord> mot ett säkert lösenord.

3.4 Skapa tabeller och standarddata

Ladda ner och kör SQL-skriptet:

wget https://raw.githubusercontent.com/skltp/tak/main/resources/sql/tp-admin-DDL.sql mysql -u tp_adminuser -p -h mysql-server -P 3306 -D tp_admin < tp-admin-DDL.sql

Skriptet:

  • Skapar alla nödvändiga tabeller.

  • Skapar en standard-adminanvändare för inloggning i TAK Web.

    ⚠️ Viktigt: Ändra lösenordet för denna användare efter installation (se avsnitt 9).


4. Konfiguration

4.1 Grundläggande principer

Varje applikation (tak-web, tak-services, tak-monitor) ska ligga i en egen katalog med sin egen application.yaml-fil, egen port och separat loggfil eller stdout-konfiguration. Detta gör det enklare att skilja loggar och inställningar mellan komponenterna och undvika portkonflikter.

4.2 Rekommenderad katalogstruktur per applikation

/opt/tak/ web/ tak-web.jar application.yaml logs/ services/ tak-services.jar application.yaml logs/ monitor/ tak-monitor.jar application.yaml logs/

4.3 Exempel på konfiguration per applikation

4.3.1 tak-web: application.yaml (port 8080)

tak: alert.on.publicera: true # skickar mejl vid publiceringar (kräver mejl) background: '#bfe600' # bakgrundsfärg på webgränssnittet platform: RTJP-REGION123 # identifiering av plattformen web.csrf.active: true # CSRF kan tillfälligt stängas av vid behov # Beställningsstöd (valfritt) bestallning: on: true url: - name: DEV url: http://bestallningstod-url/bs-api/api/takOrders/ certBundle: bestallning logging: file.name: ./logs/tak-web.log level.root: INFO server: port: 8080 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/tp_admin?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true username: tp_adminuser password: <lösenord> mail: # behövs för "tak.alert.on.publicera: true" host: mail.example.com port: 25 properties.mail.smtp.auth: false ssl.bundle.pem.bestallning: # sslBundle för hämtning från beställningsstödet keystore: certificate: ./certs/application.crt private-key: ./certs/application.key truststore: certificate: ./certs/bestallningstod_trust.crt

För mer information om SSL-bundles, se: Spring Boot SSL – SSL bundles

4.3.2 tak-services: application.yaml (port 8081)

spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/tp_admin?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true username: tp_adminuser password: <lösenord> logging: level.root: INFO server: port: 8081

4.3.3 tak-monitor: application.yaml (port 8082)

spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/tp_admin?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true username: tp_adminuser password: <lösenord> server: port: 8082 initial_delay: 30000 interval: 60000 reset_nodes: - url: http://host-for-tak:8081/tak-services/reset/pv - url: http://host-for-vp:23000/resetcache - url: http://host-for-kat:8082/kat/resetcache - url: http://host-for-agp:8091/resetcache - url: http://host-for-ei:8083/skltp-ei/resetcachee logging: file.name: ./logs/tak-monitor.log level.root: INFO

 

initial_delay anger fördröjningen innan första kontrollen (ms), interval anger intervallet mellan kontroller (ms) och reset_nodes listar endpoints som ska anropas när en ny version av katalogdatabasen upptäcks.

4.4 Rekommendation: använd reverse proxy för TLS-terminering

Det rekommenderas att installera en reverse proxy (t.ex. Nginx eller Apache) framför TAK-komponenterna för att terminera TLS/HTTPS. Detta innebär att proxyn hanterar alla inkommande säkra anslutningar (TLS-handshakes) och vidarebefordrar trafiken internt till TAK-applikationerna via HTTP.

Fördelar:

  • Enklare certifikathantering

  • Mindre belastning på applikationerna

  • Centraliserad loggning och autentisering

Exempel (Nginx):

server { listen 443 ssl; server_name tak.example.com; ssl_certificate /etc/ssl/certs/tak.crt; ssl_certificate_key /etc/ssl/private/tak.key; location /tak-web { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } location /tak-services { proxy_pass http://localhost:8081; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } location /tak-monitor { proxy_pass http://localhost:8082; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } }

Möjliggör säker extern åtkomst via HTTPS medan applikationerna körs internt över HTTP.


5. Start av applikationer

5.1 Starta tak-web

cd /opt/tak/web java -jar tak-web.jar

5.2 Starta tak-services

cd /opt/tak/services java -jar tak-services.jar

5.3 Starta tak-monitor (valfritt)

cd /opt/tak/monitor java -jar tak-monitor.jar

6. Köra som tjänst (Linux systemd)

Samma systemd-exempel kan användas även för tak-web och tak-monitor, med justerade sökvägar.

[Unit] Description=TAK Services After=network.target [Service] User=tak ExecStart=/usr/bin/java -jar /opt/tak/tak-services.jar --spring.config.additional-location=/opt/tak/services/application.yaml SuccessExitStatus=143 Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target
sudo systemctl daemon-reload sudo systemctl enable tak-services sudo systemctl start tak-services

7. Docker-alternativ (valfritt)

FROM eclipse-temurin:17-jre COPY tak-services.jar /app/ COPY application.yaml /app/ WORKDIR /app ENTRYPOINT ["java", "-jar", "tak-services.jar"]
docker build -t tak-services . docker run -d --name tak-services -p 8080:8080 tak-services

8. Sessionshantering

I TAK-WEB så finns det ett behov att hålla sessioner för inloggade användare, för att hålla inloggningen vid liv och för vissa arbetsflöden, sessionshantering sköts av spring session som default så lagras sessionsdata i minnet. I vissa fall så kan det finnas behov att lagra sessionsdata i databasen istället, sk jdbc-sessioner. då kan man aktivera det enligt nedan

JDBC-sessioner för klustrad drift som alternativ till "in-memory-sessions":

  • Aktivera i konfiguration:

    spring.session.store-type=jdbc

9. Verifiering

Kontrollera loggar för startmeddelanden och eventuella fel.

Komponent

Kontroll

Komponent

Kontroll

tak-web

Öppna http://localhost:8080 och logga in.

tak-services

Kontrollera att /actuator/health svarar korrekt.

tak-monitor

Granska loggar för cache-reset-händelser.


10. Säkerhetsåtgärder efter installation

  1. Byt lösenord för standard-adminanvändaren.

  2. Begränsa databasåtkomst.

  3. Skydda logg- och konfigurationsfiler.

  4. Aktivera HTTPS.


11. Sammanfattning

TAK består av tre komponenter som tillsammans utgör tjänsteadresskatalogen. När installationen är klar bör du:

  1. Kontrollera att alla applikationer startar utan fel.

  2. Säkerställa att databasanslutningen fungerar och loggar skrivs korrekt.

  3. Bekräfta att webgränssnittet är åtkomligt.

  4. Aktivera HTTPS via reverse proxy.

  5. Dokumentera eventuella anpassningar.

 

12. Migrering från tidigare versioner

Om en installation redan finns behöver en migrering göras. Det beskrivs i följande dokument: