


A lightweight Valheim server mod to call webhooks and support simple health monitoring via HTTP.
The goal of this mod is to provide some simple server monitoring tools with low overhead and not bring in a whole bunch of other dependencies. While other server notification mods are usually tightly coupled with a specific service (e.g. a discord event notifier), this mod supports calling any arbitrary webhook you provide when certain events happen on the server. For example, when a player joins my server, this mod calls an IFTTT webhook to start a routine that sends a discord notification to two different discord servers, and triggers a blink(1) device.
See the configuration section for more information. Please submit any suggestions for more events to support as an issue.
This mod also creates a lightweight webserver that allows external uptime monitoring tools (e.g. UptimeRobot) to monitor the status of your Valheim server by responding to incoming HTTP requests. As with the webhooks, there are other solutions out there, but they often work by parsing server logs and require starting up a node.js instance or other beefier infrastructure.
The web server will respond to HEAD and GET method requests only. You can also specify a keyword to send in the response body to facilitate keyword monitoring, if desired (and supported by your monitoring service). See the Confgiuration section for more customization info.
The simplest way to use the webserver is to run the mod with your Valheim server, then point a reverse proxy to it on the same machine.
This section of the config file contains settings that allow you to set a URL that the plugin will call when some event happens.
By default the plugin sends a GET request, but this can be changed by prefixing the URL with an HTTP method
seperated from the URL with a ;. Supported methods are: GET, HEAD, PUT, POST, and DELETE.
If an invalid or no method is specified, GET will be used.
For example, to specify a POST request:
ServerStarted = POST;http://example.com/endpoint
Additionally, some webhooks support substituting occurrences of a special string with a value coming from the plugin. This allows you
to pass some data along about the event. Substitutions specific to a hook will be noted in the entry in config file.
All hooks support the substitution {HookName}, which is replaced with the name of the entry in the config file.
For example, in the following URL the string {PlayerName} will be replaced by the name of the player who joined the server,
and {HookName} will be replaced with "PlayerJoined":
PlayerJoined = GET;http://example.com/trigger?event={HookName}&player={PlayerName}
See the config file for documentation about each webhook.
A heartbeat is just a special webhook that is called at a regular interval to indicate that the server is still running. You can specify the heartbeat URL as well as the interval in the config file.
EnableWebServer
HttpHost
HttpPort
ResponseKeyword
SuccessCode
BepinEx for Valheim is required for this plugin to work.
Install from your favorite mod manager, or manually by following these instructions:
bbar.Mods.SimpleHealthCheck.dll file into <GameDirectory>\Bepinex\plugins<GameDirectory>\BepinEx\config\bbar.Mods.SimpleHealthCheck.cfg