added some stuff lol!

This commit is contained in:
CMDRunematti
2026-06-13 11:05:07 +02:00
parent 4d94210f9c
commit ff03de0cf4
4 changed files with 152 additions and 1 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
{ {
"schemaVersion": 2, "schemaVersion": 2,
"dockerfilePath": "./Dockerfile" "dockerfilePath": "./docker-compose.yml"
} }
+82
View File
@@ -0,0 +1,82 @@
version: "3.9"
services:
postgis:
image: postgis/postgis:16-3.4
restart: unless-stopped
environment:
POSTGRES_DB: planner
POSTGRES_USER: planner
POSTGRES_PASSWORD: change-me
volumes:
- postgis_data:/var/lib/postgresql/data
osm-importer:
build:
context: ./services/osm-importer
dockerfile: Dockerfile
restart: unless-stopped
depends_on:
- postgis
environment:
PBF_URL: https://download.geofabrik.de/europe-latest.osm.pbf
PGHOST: postgis
PGPORT: "5432"
PGDATABASE: planner
PGUSER: planner
PGPASSWORD: change-me
UPDATE_INTERVAL_SECONDS: "86400"
volumes:
- osm_data:/osm
martin:
image: ghcr.io/maplibre/martin:latest
restart: unless-stopped
environment:
DATABASE_URL: postgres://planner:change-me@postgis:5432/planner
depends_on:
- postgis
valhalla:
image: ghcr.io/valhalla/valhalla-scripted:latest
restart: unless-stopped
environment:
tile_urls: https://download.geofabrik.de/europe/germany-latest.osm.pbf
volumes:
- valhalla_data:/custom_files
traccar:
image: traccar/traccar:latest
restart: unless-stopped
ports:
- "8082:8082"
- "5000-5150:5000-5150"
- "5000-5150:5000-5150/udp"
volumes:
- traccar_data:/opt/traccar/data
- traccar_logs:/opt/traccar/logs
planner-api:
build: .
restart: unless-stopped
depends_on:
- postgis
- martin
- valhalla
- traccar
ev-battery-tracker:
image: alpine:3.20
command: ["sh", "-c", "sleep infinity"]
restart: unless-stopped
traffic-fetcher:
image: alpine:3.20
command: ["sh", "-c", "sleep infinity"]
restart: unless-stopped
volumes:
postgis_data:
valhalla_data:
traccar_data:
traccar_logs:
+8
View File
@@ -0,0 +1,8 @@
FROM iboates/osm2pgsql:latest
WORKDIR /app
COPY osm-import.sh /osm-import.sh
RUN chmod +x /osm-import.sh
CMD ["sh", "/osm-import.sh"]
+61
View File
@@ -0,0 +1,61 @@
#!/bin/sh
set -eu
PBF_URL="${PBF_URL:-https://download.geofabrik.de/europe/germany-latest.osm.pbf}"
PBF_FILE="${PBF_FILE:-/osm/region.osm.pbf}"
PGHOST="${PGHOST:-postgis}"
PGPORT="${PGPORT:-5432}"
PGDATABASE="${PGDATABASE:-planner}"
PGUSER="${PGUSER:-planner}"
PGPASSWORD="${PGPASSWORD:-change-me}"
export PGPASSWORD
UPDATE_INTERVAL_SECONDS="${UPDATE_INTERVAL_SECONDS:-86400}"
echo "OSM importer starting..."
if [ ! -f "$PBF_FILE" ]; then
echo "Downloading initial extract from $PBF_URL"
wget -O "$PBF_FILE" "$PBF_URL"
fi
if ! psql -h "$PGHOST" -p "$PGPORT" -U "$PGUSER" -d "$PGDATABASE" -tAc \
"SELECT 1 FROM pg_tables WHERE tablename = 'planet_osm_point'" | grep -q 1; then
echo "Initial osm2pgsql import..."
osm2pgsql \
--create \
--slim \
--database "$PGDATABASE" \
--host "$PGHOST" \
--port "$PGPORT" \
--username "$PGUSER" \
"$PBF_FILE"
else
echo "OSM tables already exist, skipping initial import."
fi
if ! psql -h "$PGHOST" -p "$PGPORT" -U "$PGUSER" -d "$PGDATABASE" -tAc \
"SELECT 1 FROM pg_tables WHERE tablename = 'planet_osm_replication_status'" | grep -q 1; then
echo "Initializing replication..."
osm2pgsql-replication init \
--database "$PGDATABASE" \
--host "$PGHOST" \
--port "$PGPORT" \
--username "$PGUSER" \
--osm-file "$PBF_FILE"
else
echo "Replication already initialized."
fi
while true; do
echo "Running replication update..."
osm2pgsql-replication update \
--database "$PGDATABASE" \
--host "$PGHOST" \
--port "$PGPORT" \
--username "$PGUSER"
echo "Sleeping for $UPDATE_INTERVAL_SECONDS seconds..."
sleep "$UPDATE_INTERVAL_SECONDS"
done