trmnl.html directly on GitHub, as it will be forcefully overwritten by the NAS update.sh script.
Mountain Dashboard is a custom, automated weather scraping and presentation system designed to provide concise mountain weather forecasts for specialized devices, specifically Kindle e-readers, TRMNL e-paper displays, and mobile browsers.
This project scrapes text and synoptic charts from the Mountain Weather Information Service (MWIS). To ensure reliability and precise scheduling, it uses a local Synology NAS as a hardware bridge:
build.py) fetches the MWIS data and injects it into a dynamic HTML template, generating a static trmnl.html file locally.update.sh) checks if the newly generated HTML is actually different from the last run. If the forecast hasn't changed, it aborts the process to save bandwidth and prevent empty updates.@media query acts as an escape hatch for screens under 800px wide. It switches to Merriweather typography (1.5 line-height), introduces vertical scrolling, and features clean, text-only accordion menus (indented at 30px) for regional navigation.mountainweather. Do NOT initialize it with a Readme or license.ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_mountain -N ""
cat ~/.ssh/id_ed25519_mountain.pub
mountainweather repository on GitHub > Settings > Deploy keys > Add deploy key. Paste the key and check "Allow write access".mkdir -p /var/services/homes/alex/scripts/mountainweather/logs
cd /var/services/homes/alex/scripts/mountainweather/
pip and specify an older version of urllib3 to comply with Synology's OpenSSL 1.0.2 constraints before installing the scraper dependencies:
wget https://bootstrap.pypa.io/pip/3.8/get-pip.py
/usr/local/bin/python3 get-pip.py --user
/usr/local/bin/python3 -m pip install --user "urllib3<2"
/usr/local/bin/python3 -m pip install --user requests beautifulsoup4
rm get-pip.py
Create the four core files in the /mountainweather/ directory using the Synology Text Editor app: build.py, update.sh, README.md, and Readme.html.
Ensure the shell script is executable:
chmod +x update.sh
Run these commands to initialize the local repository, configure your bot identity, force the specific Deploy Key, and push the initial setup:
cd /var/services/homes/alex/scripts/mountainweather/
# Configure local Git identity
git config --global user.name "Synology Updater"
git config --global user.email "bot@local"
# Initialize repository
git init
git remote add origin git@github.com:alexroddie/mountainweather.git
# Force Git to use the dedicated Mountain Deploy Key
git config core.sshCommand "ssh -i ~/.ssh/id_ed25519_mountain -o IdentitiesOnly=yes"
# Track files and push
git add trmnl.html README.md Readme.html update.sh build.py
git commit -m "Initial commit from Synology"
git branch -M main
git push -u origin main
(If prompted regarding the SSH fingerprint, type yes and press Enter).
https://alexroddie.github.io/mountainweather/trmnl.html)Mountain Dashboard. Set User to alex.bash /var/services/homes/alex/scripts/mountainweather/update.shMountain Dashboard • Synology Build v3.0 • Alex Roddie © 2026