Many moons ago, this client was the browser based interface named NWSChat Live. The National Weather Service (NWS) subsequently migrated to Slack and this client became obsolete. But the weather.im service is still active and this interface is used there to allow browser based access to the XMPP chat rooms.
This project is licensed under the GNU General Public License v3.0 (GPLv3). See LICENSE.txt for full terms.
npm installnpm run devnpm run buildnpm run lint
Use the deployment script to build and publish the dist/ output:
bash deployment/weather_im.shbash deployment/weather_im.sh --prod
The script will:
- optionally run
npm ci - run
npm run lint - run
npm run build - in default mode: sync
dist/into the deployment destination withrsync - in
--prodmode: run the production deployment branch (customrsynccommand placeholder in the script)
Options:
--prodenable production deployment branch--helpshow script usage
Environment overrides:
DEST(default:/opt/weather.im/html/live)INSTALL_DEPS(1by default, set to0to skipnpm ci)
- The built client is configured to work when hosted under
/live/(or other subpaths), not just/.
- This project uses Vite + ES modules while still depending on ExtJS (UMD).
- ExtJS runtime assets are copied from
node_modules/@avalos/extjs-gpl/buildintopublic/vendor/avalos-extjs-gpl/buildautomatically by the Vite config. public/vendoris generated content and should not be committed to git.- This application is desktop/laptop focused and is not designed or supported for mobile phone usage.
- Transport is configured in src/config.js.
- Default is websocket (
XMPP_TRANSPORT: "websocket"). - To use websockets, set:
XMPP_TRANSPORT: "websocket"WEBSOCKET: "wss://<your-xmpp-host>/<websocket-endpoint>"
- If websocket transport is selected without a URL, the client derives it
from
BOSHby converting towss://and preserving the path. - The client enforces TLS-only websocket endpoints (
wss://).