Skip to content

PhillMckinnon/Webhook_Alert_ElectronJS_GUI

Repository files navigation

Webhook_Alert_ElectronJS_GUI

Electron.js ExpressJS JavaScript jQuery Node.js SQLite3

An application that listens for incoming webhook requests and plays a corresponding .wav sound file when a webhook is received, but with a GUI and packed into ElectronJS. Designed to be a simple and customisable alert system that can be integrated and used with various services (e.g Uptime Kuma).

forgit

The app was developed during my practical workshop experience ( 07/04/2025 - 30/04/2025 )

Features

  • Listens for webhook requests on multiple endpoints (/webhook0, /webhook1, /webhook2, etc.).
  • Plays a specific .wav file for each webhook endpoint.
  • Logs incoming webhook data and playback status.
  • Easy to set up and use.

Prerequisites

  • Node.js installed on your system.
  • NPM (Node Package Manager) installed.

General Setup Instructions

1. Clone the Repository

Clone this repository to your local machine:

git clone https://github.com/PhillMckinnon/Webhook_Alert_ElectronJS_GUI
cd Webhook_Alert_ElectronJS_GUI

2. Install Dependencies

Install the required Node.js dependencies:

npm install

3. Configure Sound Files

Place your .wav sound files in the sounds directory. Ensure the filenames match the names (e.g., error2.wav, success2.wav, etc.).

4. Run the Application

Start the application

npm start

The application will start listening on port 3000. You can change it by editing port.json (located at UserDataDir).


Building

1. Clone the Repository

Clone this repository to your local machine:

git clone https://github.com/PhillMckinnon/Webhook_Alert_ElectronJS_GUI
cd Webhook_Alert_ElectronJS_GUI

2. Build the app

npm run build

3. Configure Sound Files

Place your .wav sound files in the sounds directory. Ensure the filenames match the names (e.g., error2.wav, success2.wav, etc.).

4. Run the Application

Start the application

run the .exe on windows or ./webhooking in the output directory on linux

Usage

Once the application is running, you can send POST requests to the following endpoints to trigger sound alerts:

  • /webhook0 → Plays success0.wav/error.wav
  • /webhook1 → Plays success1.wav/error1.wav
  • /webhook2 → Plays success2.wav/error2.wav
  • /webhook3 → Plays success3.wav/error3.wav
  • /webhook4 → Plays success4.wav/error4.wav

My custom body for Uptime Kuma: notification_settings

CUSTOM BODY
-----------
{
  "heartbeat": {
    "status": "{{ heartbeatJSON.status }}",
    "msg": "{{ heartbeatJSON.msg }}",
    "time": "{{ heartbeatJSON.time }}"
  },
  "monitor": {
    "name": "{{ monitorJSON.name }}",
    "url": "{{ monitorJSON.url }}"
  },
  "msg": "{{ msg }}"
}

ADDITIONAL HEADERS
------------------
{
"Content-Type": "application/json"
}

Customization

  • Modify the port number in the port.json file if needed.
  • Replace the .wav files with your own sound files.

Troubleshooting

  • Ensure the .wav files are in the correct directory and have the correct filenames.
  • Make sure the application has the necessary permissions to access the sound files.

License

This project is open-source and available under the MIT License.

Enjoy using the Webhook Sound Alert System! If you have any questions or issues, feel free to open an issue on GitHub.


📫Contact

For any questions or feedback, feel free to reach out to:

Email: phillipmckinnonwork@proton.me
GitHub: @PhillMckinnon