From 0972c58c4c89570ab2e9548099ba0de65b2e6d70 Mon Sep 17 00:00:00 2001 From: thetechprepper Date: Sat, 5 Jul 2025 17:26:23 -0700 Subject: [PATCH] mbtileserver - Added initial systemd user-level service for the raster tile server --- .../et-service-mbtileserver.service | 1 + .../user/et-service-mbtileserver.service | 19 +++++++++ .../mbtileserver/tilesets/README.md | 1 + overlay/opt/emcomm-tools/bin/et-mbtileserver | 40 +++++++++++++++++++ 4 files changed, 61 insertions(+) create mode 120000 overlay/etc/skel/.config/systemd/user/default.target.wants/et-service-mbtileserver.service create mode 100644 overlay/etc/skel/.config/systemd/user/et-service-mbtileserver.service create mode 100644 overlay/etc/skel/.local/share/emcomm-tools/mbtileserver/tilesets/README.md create mode 100755 overlay/opt/emcomm-tools/bin/et-mbtileserver diff --git a/overlay/etc/skel/.config/systemd/user/default.target.wants/et-service-mbtileserver.service b/overlay/etc/skel/.config/systemd/user/default.target.wants/et-service-mbtileserver.service new file mode 120000 index 0000000..bf304cb --- /dev/null +++ b/overlay/etc/skel/.config/systemd/user/default.target.wants/et-service-mbtileserver.service @@ -0,0 +1 @@ +../et-service-mbtileserver.service \ No newline at end of file diff --git a/overlay/etc/skel/.config/systemd/user/et-service-mbtileserver.service b/overlay/etc/skel/.config/systemd/user/et-service-mbtileserver.service new file mode 100644 index 0000000..aa6f560 --- /dev/null +++ b/overlay/etc/skel/.config/systemd/user/et-service-mbtileserver.service @@ -0,0 +1,19 @@ +# Author : Gaston Gonzalez +# Date : 5 July 2025 +# Purpose : User systemd unit file for EmComm Tools raster tile service +# +# Usage: +# Check status : systemctl --user status et-service-mbtileservice +# Start service : systemctl --user start et-service-mbtileservice +# Stop service : systemctl --user stop et-service-mbtileservice +# Reload this config : systemctl --user daemon-reload + +[Unit] +Description=EmComm Tools raster tile service + +[Service] +ExecStart=/opt/emcomm-tools/bin/et-mbtileserver +Restart=always + +[Install] +WantedBy=default.target diff --git a/overlay/etc/skel/.local/share/emcomm-tools/mbtileserver/tilesets/README.md b/overlay/etc/skel/.local/share/emcomm-tools/mbtileserver/tilesets/README.md new file mode 100644 index 0000000..92513d6 --- /dev/null +++ b/overlay/etc/skel/.local/share/emcomm-tools/mbtileserver/tilesets/README.md @@ -0,0 +1 @@ +Copy your `.mbtiles` file here. diff --git a/overlay/opt/emcomm-tools/bin/et-mbtileserver b/overlay/opt/emcomm-tools/bin/et-mbtileserver new file mode 100755 index 0000000..672f728 --- /dev/null +++ b/overlay/opt/emcomm-tools/bin/et-mbtileserver @@ -0,0 +1,40 @@ +#!/bin/bash +# +# Author : Gaston Gonzalez +# Date : 5 July 2025 +# Purpose : Wrapper script for starting the raster tile server +# +# Preconditions: +# 1. At least one .mbtiles files exist in the tileset directory +# +# Postconditions: +# 1. mbtileserver is started +# 2. Tile server available at http://localhost:8000/services + +TILESERVER_HOME="${HOME}/.local/share/emcomm-tools/mbtileserver" +TILESERVER_TILE_DIR="${TILESERVER_HOME}/tilesets" + +start() { + CWD_DIR=$(pwd) + + cd ${TILESERVER_HOME} + CMD="mbtileserver" + et-log "Starting raster tile server in ${TILESERVER_HOME} with: ${CMD}" + + ${CMD} + + cd ${CWD_DIR} +} + +if [[ ! -e ${TILESERVER_TILE_DIR} ]]; then + et-log "Tile set directory does not exist: ${TILESERVER_TILE_DIR}." + exit 1 +fi + +ls ${TILESERVER_TILE_DIR}/*.mbtiles +if [[ $? -ne 0 ]]; then + et-log "Can't start tile server. No .mbtiles in ${TILESERVER_TILE_DIR}" + exit 1 +fi + +start