pull/27/head
accius 4 days ago
parent 1007053c6e
commit e3742945ac

@ -6,7 +6,7 @@ ENV DEBIAN_FRONTEND=noninteractive
# Install Node.js and utilities # Install Node.js and utilities
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
curl \ curl \
unzip \ tar \
ca-certificates \ ca-certificates \
&& curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y nodejs \ && apt-get install -y nodejs \
@ -15,22 +15,26 @@ RUN apt-get update && apt-get install -y \
# Create directory for ITURHFProp # Create directory for ITURHFProp
WORKDIR /opt/iturhfprop WORKDIR /opt/iturhfprop
# Download the latest release (v14.2) - binaries zip # Download individual binary files from v14.3 release (latest)
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" \ RUN curl -L -o ITURHFProp "https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.3/ITURHFProp" \
&& unzip binaries.zip \ && curl -L -o libp533.so "https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.3/libp533.so" \
&& rm binaries.zip && 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 # Download source to get 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" \ 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" \
&& unzip data.zip \ && tar -xzf source.tar.gz \
&& rm data.zip && 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 # Set library path so ITURHFProp can find shared libs
RUN chmod +x /opt/iturhfprop/ITURHFProp || true
ENV LD_LIBRARY_PATH=/opt/iturhfprop:$LD_LIBRARY_PATH ENV LD_LIBRARY_PATH=/opt/iturhfprop:$LD_LIBRARY_PATH
# List contents to verify # Verify installation
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" 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 # Set up the API service
WORKDIR /app WORKDIR /app
@ -39,10 +43,10 @@ RUN npm install --production
COPY server.js ./ COPY server.js ./
# Environment - adjust DATA path based on actual structure # Environment
ENV PORT=3000 ENV PORT=3000
ENV ITURHFPROP_PATH=/opt/iturhfprop/ITURHFProp ENV ITURHFPROP_PATH=/opt/iturhfprop/ITURHFProp
ENV ITURHFPROP_DATA=/opt/iturhfprop/Data ENV ITURHFPROP_DATA=/opt/iturhfprop
EXPOSE 3000 EXPOSE 3000

@ -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): Download ITURHFProp binaries from the [official release](https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases):
```bash ```bash
# Download binaries and data # Download binaries (Linux)
wget https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.2/ITURHFProp_14_02.zip curl -L -o ITURHFProp "https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.3/ITURHFProp"
wget https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.2/Data.zip curl -L -o libp533.so "https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.3/libp533.so"
unzip ITURHFProp_14_02.zip curl -L -o libp372.so "https://github.com/ITU-R-Study-Group-3/ITU-R-HF/releases/download/v14.3/libp372.so"
unzip Data.zip 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 # Set environment variables
export ITURHFPROP_PATH=$(pwd)/ITURHFProp export ITURHFPROP_PATH=$(pwd)/ITURHFProp
export ITURHFPROP_DATA=$(pwd)/Data export ITURHFPROP_DATA=$(pwd)
export LD_LIBRARY_PATH=$(pwd):$LD_LIBRARY_PATH
# Run service # Run service
npm install npm install

@ -20,9 +20,9 @@ const crypto = require('crypto');
const app = express(); const app = express();
const PORT = process.env.PORT || 3000; 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_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 // Temp directory for input/output files
const TEMP_DIR = '/tmp/iturhfprop'; const TEMP_DIR = '/tmp/iturhfprop';
@ -97,13 +97,13 @@ Path.Relr ${requiredReliability}
Path.ManMadeNoise ${manMadeNoise} Path.ManMadeNoise ${manMadeNoise}
Path.Modulation ANALOG Path.Modulation ANALOG
Path.SorL SHORTPATH Path.SorL SHORTPATH
TXAntFilePath ${ITURHFPROP_DATA}/Isotropic.ant TXAntFilePath ${ITURHFPROP_DATA}/Data/Isotropic.ant
RXAntFilePath ${ITURHFPROP_DATA}/Isotropic.ant RXAntFilePath ${ITURHFPROP_DATA}/Data/Isotropic.ant
TXAnt.Alt 0.0 TXAnt.Alt 0.0
TXAnt.Gain ${txGain.toFixed(1)} TXAnt.Gain ${txGain.toFixed(1)}
RXAnt.Alt 0.0 RXAnt.Alt 0.0
RXAnt.Gain ${rxGain.toFixed(1)} RXAnt.Gain ${rxGain.toFixed(1)}
DataFilePath ${ITURHFPROP_DATA}/ DataFilePath ${ITURHFPROP_DATA}/Data/
`; `;
return input; return input;

Loading…
Cancel
Save

Powered by TurnKey Linux.