automatic discord messages whenever your servers are accessed
Add plausible analytics
Add GPL license
Add purchase button to homepage


browse  log 



You can also use your local clone with git send-email.

# Discord Notifier

This repository contains the source code for a ssh login notification
service. When running this software will send discord messages to a
channel of your choice on shh logins.

In addition to the code needed to send these messages, this also
includes the code for a server and install script. When used together
these programs will automate the process of configuring a discord
webhook for a server of your choice and installing the notification
system on your machine.

If you would like you can actually pay money for this software. If you
do that I'll provide support over email if things do not work like you
might expect. [Here](https://buy.stripe.com/3cs4jc2q09ug90IbII) is a
link where you can do that.

The reccomended setup is to run this software on your syslogs server
so that notifications will be sent for logins on all machines

## Using the install script

If you would just like to install a discord-notifier on a machine that
you run you can use the install script in
`/client/install.sh`. Running `sudo bash install.ssh` will prompt you
to open a discord url for authentication and then install the

Running as root is needed as the script needs to modify the rsyslog
configuration on your machine.

## Organization

- `/server` contains the source code for a server which is needed to
  communicate with the Discord API and configure a webhook
- `/client` contains the source code for a client side install script.
- `/workers-server` contains the source code for a Cloudflare Workers
  version of `/server`. This version is equally functional as
  `/server` but high latency for Workers KV write propogration makes
  `/server` preferable for most use cases.

## Deploying yourself

Each folder listed above has a README file which contains information
about deploying that component. You can read more about how this all
fits together in the initial functional spec for this work