8000 GitHub - greboid/irc-webhook
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

greboid/irc-webhook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Webhook IRC notifier plugin

Plugin for IRC-Bot

Receives notifications from a URL instance and outputs them to a channel.

  • go build github.com/greboid/irc-webhook/v4/cmd/webhook
  • docker run ghcr.io/greboid/irc-webhook

Configuration

The following configuration settings are supported:

Flag Env var Default Description
-rpc-host RPC_HOST localhost Hostname of the IRC-bot instance
-rpc-port RPC_PORT 8001 Port to connect to IRC-bot on
-rpc-token RPC_TOKEN - Authentication token for IRC-bot
-channel CHANNEL - Channel to send messages to by default
-allowed-channels ALLOWED_CHANNELS - List of channels that messages may be sent to
-debug DEBUG false Whether to enable debug logging
-db-path DB_PATH /data/db Path to store token database
-admin-key ADMIN_KEY - Default key for incoming requests

Multi-channel support

By default, all messages will be sent to the channel specified in the channel flag/env var.

To enable multi-channel support, set allowed-channels to a comma-separated list of additional channels to allow (e.g. #channel1,#channel2,#channel3). You can also set allowed-channels to * to allow clients to send messages anywhere.

API

The plugin exposes two endpoints.

All requests must be authenticated with an X-API-Key header containing either the admin key specified in the config, or a key created using the keys API.

/webhook/sendmessage

Sends a message to IRC. If allowed channels is specified in the config, you can specify the channel as well.

POST /webhooks/sendmessage HTTP/1.1
X-Api-Key: my-key
Content-Type: application/json

{
  "message": "Hello world!",
  "channel": "#some-non-default-channel"
}
HTTP/1.1 200 OK
Content-Type: text/plain

Delivered

Responds with a 200 OK when the message is successfully delivered

/webhook/keys

Manages the API keys permitted to interact with the plugin. Note that any key can use this API, so in effect all keys are "admin" keys.

A GET request will list all existing keys:

GET /webhooks/keys HTTP/1.1
X-Api-Key: my-admin-key
HTTP/1.1 200 OK
Content-Type: application/json

["a-key", "another-key"]

A POST request with the key in the "message" field will add a new key:

POST /webhooks/keys HTTP/1.1
X-Api-Key: my-admin-key
Content-Type: application/json

{"message": "my-new-key"}
HTTP/1.1 200 OK
Content-Type: text/plain

User added

A DELETE request with the key in the "message" field will delete the key:

DELETE /webhooks/keys HTTP/1.1
X-Api-Key: my-admin-key
Content-Type: application/json

{"message": "my-new-key"}
HTTP/1.1 200 OK
Content-Type: text/plain

User deleted

Example running

---
version: "3.5"
service:
  goplum:
    image: ghcr.io/greboid/irc-webhook
    environment:
      RPC_HOST: bot
      RPC_TOKEN: <as configured on the bot>
      CHANNEL: #spam
      DB_PATH: /data/db
      ADMIN_KEY: CGP9NDXs
webhook -rpc-host bot -rpc-token <as configured on the bot> -channel #spam -db-path /data/db -admin-key CGP9NDXs

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •  
0