From 78f0209af2fa9150dc6ed745ffcbff679ed2285d Mon Sep 17 00:00:00 2001 From: Aiden Gerbrandt Date: Mon, 13 Apr 2026 17:44:42 -0500 Subject: [PATCH] Added Read,e and examples --- CaddyFile | 4 ++++ README.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ metar-rss.service | 13 +++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 CaddyFile create mode 100644 README.md create mode 100644 metar-rss.service diff --git a/CaddyFile b/CaddyFile new file mode 100644 index 0000000..7323f70 --- /dev/null +++ b/CaddyFile @@ -0,0 +1,4 @@ +:80 { + root * /var/www/weather + file_server +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..5708cc4 --- /dev/null +++ b/README.md @@ -0,0 +1,46 @@ +# Metar RSS Generator +This node app generates rss XML files that you can then serve as an RSS feed. + +## Install and Setup (Linux) +```sh +# Clone the repo +sudo mkdir -p /opt +cd /opt && sudo git clone https://git.entropic.pro/Aiden/metar-rss + +# Edit config, see below for details +sudo nano /opt/metar-rss/config.json + +# Create service user +sudo useradd -M metar-rss +sudo usermod -L metar-rss + +# Create needed directories and ensure they are owned by the user +sudo mkdir -p /var/www/weather +sudo chmod -R metar-rss:metar-rss /var/www/weather +sudo chmod -R metar-rss:metar-rss /opt/metar-rss + +# Install and start service (systemd) +sudo cp /opt/metar-rss/metar-rss.service /etc/systemd/system/ +sudo systemctl daemon-reload +sudo systemctl enable --now metar-rss.service +``` + +## Config +The following settings can be set in `config.json`: + +- outputdir + - This is the base directory where the RSS XML files will be output +- icaos + - This is an array of ICAO Airport codes to generate feeds for. +- siteurl + - This should be the base url for your website +- rss-baseurl + - This should be the base url path where these files will be served. + - Eg. `https://example.com/weather` will indiate that KJFK's metar will be served at `https://example.com/weather/metar/KJFK/rss.xml` +- check-interval + - This sets how often the app will check for new data in minutes +- loglevel + - Uses standard loglevel values, set 7 or higher for all logs (debug) + +## Webserver +Note that this app only generates the rss files, you will still need to serve them with some kind of webserver, I have included an example caddy configuration for referance. \ No newline at end of file diff --git a/metar-rss.service b/metar-rss.service new file mode 100644 index 0000000..cb83adb --- /dev/null +++ b/metar-rss.service @@ -0,0 +1,13 @@ +[Unit] +Description=Monitors, generates and updates an RSS Feed File for Airport METARs +After=network.target + +[Service] +Restart=always +RestartSec=5 +User=metar-rss +WorkingDirectory=/opt/metar-rss +ExecStart=/usr/bin/node index.js + +[Install] +WantedBy=multi-user.target \ No newline at end of file