SKLTP TAK - Installationsmanual
- 1 Installationsguide för TAK — Tjänsteadresskatalog
- 1.1 1. Introduktion
- 1.2 2. Systemkrav
- 1.3 3. Förberedelser
- 1.4 4. Konfiguration
- 1.5 5. Start av applikationer
- 1.6 6. Köra som tjänst (Linux systemd)
- 1.7 7. Docker-alternativ (valfritt)
- 1.8 8. Sessionshantering
- 1.9 9. Verifiering
- 1.10 10. Säkerhetsåtgärder efter installation
- 1.11 11. Sammanfattning
- 1.12 12. Migrering från tidigare versioner
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 |
|---|---|---|
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 |
|---|---|
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_delayanger fördröjningen innan första kontrollen (ms),intervalanger intervallet mellan kontroller (ms) ochreset_nodeslistar 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
Skapa tabeller endast om DB-användaren saknar DDL-rättigheter (annars körs scriptet per automatik). Kör då SQL-scriptet i samma databas som TAK använder:
https://github.com/skltp/tak/blob/main/tak-web/src/main/resources/org/springframework/session/jdbc/schema-mysql.sql
9. Verifiering
Kontrollera loggar för startmeddelanden och eventuella fel.
Komponent | Kontroll |
|---|---|
tak-web | Öppna http://localhost:8080 och logga in. |
tak-services | Kontrollera att |
tak-monitor | Granska loggar för cache-reset-händelser. |
10. Säkerhetsåtgärder efter installation
Byt lösenord för standard-adminanvändaren.
Begränsa databasåtkomst.
Skydda logg- och konfigurationsfiler.
Aktivera HTTPS.
11. Sammanfattning
TAK består av tre komponenter som tillsammans utgör tjänsteadresskatalogen. När installationen är klar bör du:
Kontrollera att alla applikationer startar utan fel.
Säkerställa att databasanslutningen fungerar och loggar skrivs korrekt.
Bekräfta att webgränssnittet är åtkomligt.
Aktivera HTTPS via reverse proxy.
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: