From e3742945acd6e9f40d8d98b4599b1461c3960eb6 Mon Sep 17 00:00:00 2001 From: accius Date: Sat, 31 Jan 2026 23:23:45 -0500 Subject: [PATCH] updates --- iturhfprop-service/Dockerfile | 34 +++++++++++++++++++--------------- iturhfprop-service/README.md | 19 +++++++++++++------ iturhfprop-service/server.js | 10 +++++----- 3 files changed, 37 insertions(+), 26 deletions(-) diff --git a/iturhfprop-service/Dockerfile b/iturhfprop-service/Dockerfile index 6acd8f9..9a6899b 100644 --- a/iturhfprop-service/Dockerfile +++ b/iturhfprop-service/Dockerfile @@ -6,7 +6,7 @@ ENV DEBIAN_FRONTEND=noninteractive # Install Node.js and utilities RUN apt-get update && apt-get install -y \ curl \ - unzip \ + tar \ ca-certificates \ && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ && apt-get install -y nodejs \ @@ -15,22 +15,26 @@ RUN apt-get update && apt-get install -y \ # Create directory for ITURHFProp WORKDIR /opt/iturhfprop -# Download the latest release (v14.2) - binaries zip -RUN curl -L -o binaries.zip "https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.2/ITURHFProp_14_02.zip" \ - && unzip binaries.zip \ - && rm binaries.zip +# Download individual binary files from v14.3 release (latest) +RUN curl -L -o ITURHFProp "https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.3/ITURHFProp" \ + && curl -L -o libp533.so "https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.3/libp533.so" \ + && curl -L -o libp372.so "https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.3/libp372.so" \ + && chmod +x ITURHFProp -# Download required data files -RUN curl -L -o data.zip "https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.2/Data.zip" \ - && unzip data.zip \ - && rm data.zip +# Download source to get Data files +RUN curl -L -o source.tar.gz "https://github.com/ITU-R-Study-Group-3/ITU-R-HF/archive/refs/tags/v14.3.tar.gz" \ + && tar -xzf source.tar.gz \ + && mv ITU-R-HF-14.3/Data . \ + && mv ITU-R-HF-14.3/IonMap . \ + && rm -rf ITU-R-HF-14.3 source.tar.gz -# Make Linux binary executable and set library path -RUN chmod +x /opt/iturhfprop/ITURHFProp || true +# Set library path so ITURHFProp can find shared libs ENV LD_LIBRARY_PATH=/opt/iturhfprop:$LD_LIBRARY_PATH -# List contents to verify -RUN echo "=== ITURHFProp files ===" && ls -la /opt/iturhfprop/ && echo "=== Data files ===" && ls -la /opt/iturhfprop/Data/ 2>/dev/null || ls -la /opt/iturhfprop/data/ 2>/dev/null || echo "Data dir not found" +# Verify installation +RUN echo "=== Binary files ===" && ls -la /opt/iturhfprop/*.so /opt/iturhfprop/ITURHFProp \ + && echo "=== Data directory ===" && ls /opt/iturhfprop/Data/ | head -10 \ + && echo "=== IonMap directory ===" && ls /opt/iturhfprop/IonMap/ | head -5 # Set up the API service WORKDIR /app @@ -39,10 +43,10 @@ RUN npm install --production COPY server.js ./ -# Environment - adjust DATA path based on actual structure +# Environment ENV PORT=3000 ENV ITURHFPROP_PATH=/opt/iturhfprop/ITURHFProp -ENV ITURHFPROP_DATA=/opt/iturhfprop/Data +ENV ITURHFPROP_DATA=/opt/iturhfprop EXPOSE 3000 diff --git a/iturhfprop-service/README.md b/iturhfprop-service/README.md index f107c21..d3219e3 100644 --- a/iturhfprop-service/README.md +++ b/iturhfprop-service/README.md @@ -118,15 +118,22 @@ curl http://localhost:3000/api/health Download ITURHFProp binaries from the [official release](https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases): ```bash -# Download binaries and data -wget https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.2/ITURHFProp_14_02.zip -wget https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.2/Data.zip -unzip ITURHFProp_14_02.zip -unzip Data.zip +# Download binaries (Linux) +curl -L -o ITURHFProp "https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.3/ITURHFProp" +curl -L -o libp533.so "https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.3/libp533.so" +curl -L -o libp372.so "https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.3/libp372.so" +chmod +x ITURHFProp + +# Download source for Data files +curl -L -o source.tar.gz "https://github.com/ITU-R-Study-Group-3/ITU-R-HF/archive/refs/tags/v14.3.tar.gz" +tar -xzf source.tar.gz +mv ITU-R-HF-14.3/Data . +mv ITU-R-HF-14.3/IonMap . # Set environment variables export ITURHFPROP_PATH=$(pwd)/ITURHFProp -export ITURHFPROP_DATA=$(pwd)/Data +export ITURHFPROP_DATA=$(pwd) +export LD_LIBRARY_PATH=$(pwd):$LD_LIBRARY_PATH # Run service npm install diff --git a/iturhfprop-service/server.js b/iturhfprop-service/server.js index 70b97e4..2bbf93e 100644 --- a/iturhfprop-service/server.js +++ b/iturhfprop-service/server.js @@ -20,9 +20,9 @@ const crypto = require('crypto'); const app = express(); const PORT = process.env.PORT || 3000; -// Paths to ITURHFProp +// Paths to ITURHFProp - DATA points to root which contains Data/ and IonMap/ subdirs const ITURHFPROP_PATH = process.env.ITURHFPROP_PATH || '/opt/iturhfprop/ITURHFProp'; -const ITURHFPROP_DATA = process.env.ITURHFPROP_DATA || '/opt/iturhfprop/Data'; +const ITURHFPROP_DATA = process.env.ITURHFPROP_DATA || '/opt/iturhfprop'; // Temp directory for input/output files const TEMP_DIR = '/tmp/iturhfprop'; @@ -97,13 +97,13 @@ Path.Relr ${requiredReliability} Path.ManMadeNoise ${manMadeNoise} Path.Modulation ANALOG Path.SorL SHORTPATH -TXAntFilePath ${ITURHFPROP_DATA}/Isotropic.ant -RXAntFilePath ${ITURHFPROP_DATA}/Isotropic.ant +TXAntFilePath ${ITURHFPROP_DATA}/Data/Isotropic.ant +RXAntFilePath ${ITURHFPROP_DATA}/Data/Isotropic.ant TXAnt.Alt 0.0 TXAnt.Gain ${txGain.toFixed(1)} RXAnt.Alt 0.0 RXAnt.Gain ${rxGain.toFixed(1)} -DataFilePath ${ITURHFPROP_DATA}/ +DataFilePath ${ITURHFPROP_DATA}/Data/ `; return input;