Installation
1. Installation aus den Quellen
mkdir -p ~/projects && cd ~/projects
git clone git@bitbucket.org:locr/locrgeocoder.git LocrGeocoder
cd LocrGeocoder
# Die `.env.example` Datei nach `.env` kopieren und die Werte anpassen.
cp .env.example .env
2. Entwicklungsumgebung einrichten
2.1. .env
Datei anpassen
-
PGHOST=db
← Interner Hostname innerhalb der Docker Compose Umgebung -
ENVIRONMENT=dev
-
PGPASSWORD=<secret>
← Damit die Datenbank in der Docker Compose Umgebung funktioniert, muss ein Passwort gesetzt werden.
2.2. VSCode einrichten
-
Docker muss installiert sein.
-
VSCode mit der
Dev Containers
-Erweiterung (ms-vscode-remote.remote-containers) installieren. -
Dev Container
starten. -
WebService sollte nach erfolgreicher Installation unter
http://localhost:8080/
erreichbar sein. -
die phpPgAdmin Oberfläche sollte unter
http://localhost:8080/phppgadmin/
erreichbar sein. -
Xdebug kann über
Ausführen und debuggen
→Listen for Xdebug (Docker Compose)
gestartet werden.
3. Daten erstellen/importieren
3.1. neue Daten erstellen
./scripts/prepare_db.sh
npm install
# OpenAddresses Quellen von https://batch.openaddresses.io/data
# Stand: 2024-08-25
node --env-file=.env ./scripts/oa_importer.mjs --country=at # 2'930'014 Einträge
./scripts/import_plz_data.sh # nur für 'de' Import
node --env-file=.env ./scripts/oa_importer.mjs --country=de # ca. 15 Minuten; 6'994'900 Einträge
node --env-file=.env ./scripts/oa_importer.mjs --country=fr # ca. 18 Minuten; 26'040'540 Einträge
# NAD Daten werden momentan nicht verwendet.
# ./scripts/import_nad_data.sh # ca. 01:30h (Download ca. 7.5GB, ca. 10min bei 12MB/s Downloadgeschwindigkeit)
./scripts/import_tiger_data.sh # Dieses script muss vor import_oa_us.sh ausgeführt werden!
./scripts/import_oa_us.sh
./scripts/import_addresses_ca.sh
./scripts/import_ca_postal_codes.sh
3.2. erstellte Daten sichern
Datenbank sollte ca. 55GB groß sein.
sudo -u postgres pg_dump $PGDATABASE | gzip > /tmp/2025-03-17_locr_geocoder.gz
3.3. gezippte Datei auf Server kopieren
scp /tmp/2025-03-17_locr_geocoder.gz serverconnect@maps1.locr.com:~/
3.4. kopierte Datei auf Server (maps1.locr.com) ins /var/www/archive Verzeichnis verschieben
sudo mv ~/2025-03-17_locr_geocoder.gz /var/www/archives && sudo chown root:root /var/www/archives/2025-03-17_locr_geocoder.gz
3.5. existierende Daten auf neuen Server importieren
sudo -u postgres psql --command="CREATE DATABASE locr_geocoder"
sudo -u postgres psql --command="CREATE EXTENSION IF NOT EXISTS postgis" locr_geocoder
wget -O /tmp/locr_geocoder.gz https://maps1.locr.com/archives/2025-03-17_locr_geocoder.gz
cat /tmp/locr_geocoder.gz | gunzip | sudo -u postgres psql locr_geocoder
rm /tmp/locr_geocoder.gz
4. Produktionsumgebung einrichten
4.2. Update script im home-Verzeichnis erstellen
cat <<EOF >~/update_locr_geocoder.sh
#!/usr/bin/env bash
cd ${PWD}/scripts
./update_service.sh
EOF
chmod +x ~/update_locr_geocoder.sh
4.3. nginx konfigurieren
sudo cp installation_files/nginx/conf.d/locr-geocoder /etc/nginx/conf.d
Die /etc/hosts
Datei um folgenden Eintrag ergänzen:
127.0.0.1 locr-geocoder
Sicherstellen, dass folgende Zeile in der /etc/nginx/sites-enabled/default
Datei vorhanden ist!
server {
...
include conf.d/locr-geocoder;
...
}
nginx neustarten
sudo service nginx restart