Installation

1. Vorarbeiten

sudo apt update
sudo apt upgrade

sudo apt install mariadb-server build-essential libssl-dev pkg-config rustup libclang-dev libffi-dev libgdal-dev libicu-dev nodejs npm texlive-full unzip wget

rustup default stable

Achtung: wenn dieser Dienst auf einem anderen Server als "MapSettings" installiert wird, /etc/locr/map-setting-client.ini und /etc/locr/poi-client.ini anlegen und anpassen!

sudo nano /etc/locr/map-setting-client.ini
[SERVER]
http-auth-username = serverconnect
http-auth-password = <myPassword>
sudo nano /etc/locr//etc/locr/poi-client.ini
[SERVER]
http-auth-username = serverconnect
http-auth-password = <myPassword>

Die Datei /etc/locr/finder.ini hat folgendes Grundgerüst und Standardwerte:

[DB]
name = finder
username = root
password = 

[POI]
default-db = default

[VMS2]
access-key = 
servers = '["vms2.locr.com"]'

1.1. Installation aus den Quellen

mkdir -p ~/projects && cd ~/projects

# Diesen Befehl verwenden, wenn der Server über SSH Key verbunden ist
git clone --recurse-submodules git@bitbucket.org:locr/finder.git Finder
# Alternativ Repository Access Token verwenden
git clone --recurse-submodules https://x-token-auth:{access_token}@bitbucket.org/locr/finder.git Finder

cd Finder
cp .env.example .env

Nun das DB_PASSWORD für den MySQL-DB-Benutzer und den VMS2-Zugangsschlüssel VMS2_ACCESS_KEY in der Datei .env entsprechend eintragen. Des Weiteren auch die Einträge für LOCR_POI_CLIENT_HTTP_AUTH_USERNAME und LOCR_POI_CLIENT_HTTP_AUTH_PASSWORD anpassen.

nano .env

2. Container Service installieren

Für Produktivumgebung

./scripts/install_service.sh

Für Entwicklungsumgebung

composer install && ./scripts/install_service.sh --env=dev

Achtung: wenn docker statt podman benutzt wird, sollte composer install im Container im Verzeichnis /var/www/finder ausgeführt werden!

2.1. Update Script im home-Verzeichnis erstellen

cat <<EOF >~/update_finder.sh
#!/usr/bin/env bash

cd ${PWD}
git pull

cd scripts
./update_service.sh
EOF

chmod +x ~/update_finder.sh

2.2. nginx Konfiguration hinzufügen

# Für den Zugriff unter https://<domain.tld>/finder/
sudo cp installation_files/nginx/conf.d/finder /etc/nginx/conf.d

# für den Zugriff unter einer subdomain => https://finder.<domain.tld>/
sudo cp installation_files/nginx/sites-available/finder.locr.com /etc/nginx/sites-available
sudo ln -s /etc/nginx/sites-available/finder.locr.com /etc/nginx/sites-enabled/

Sicherstellen, dass die folgenden Zeilen in der Datei /etc/nginx/sites-enabled/default vorhanden sind.

server {
    ...
    include conf.d/finder;
    ...
}

Falls ein Zertifikat für finder.locr.com ausgestellt wurde, die Konfiguration anpassen!

nginx Konfiguration testen und neustarten

sudo nginx -t
sudo systemctl restart nginx

2.3. Datenbank und Tabellen erstellen

sudo mysql -u root -p

# ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

sudo mysql -p --execute="CREATE DATABASE IF NOT EXISTS finder"
sudo mysql -p finder < db/schemas/mysql/finder.sql

Damit Zeitzonen in der Datenbank richtig interpretiert werden können muss noch folgendes ausgeführt werden! Siehe: https://mariadb.com/kb/en/mariadb-tzinfo-to-sql/

mariadb-tzinfo-to-sql /usr/share/zoneinfo | mariadb -u root -p mysql

/etc/locr/rds.ini anlegen und auf den services2.locr.com verweisen.

sudo nano /etc/locr/rds.ini
[RDS]
# port = 9080
# protocol = http
# ssl_verifyhost = 0
# ssl_verifypeer = false
hostname = services2.locr.com
auth_username = serverconnect
auth_password = <myPassword>
path = rds