Skip to content

containrrr/shoutrrr

Repository files navigation

Shoutrrr

Notification library for gophers and their furry friends. Heavily inspired by caronc/apprise.

github actions workflow status codecov Codacy Badge report card go.dev reference github code size in bytes license godoc All Contributors



Installation

Using the snap

$ sudo snap install shoutrrr

Using the Go CLI

$ go install github.com/containrrr/shoutrrr/shoutrrr@latest

From Source

$ go build -o shoutrrr ./shoutrrr

Quick Start

As a package

Using shoutrrr is easy! There is currently two ways of using it as a package.

Using the direct send command

  url := "slack://token-a/token-b/token-c"
  err := shoutrrr.Send(url, "Hello world (or slack channel) !")

Using a sender

  url := "slack://token-a/token-b/token-c"
  sender, err := shoutrrr.CreateSender(url)
  sender.Send("Hello world (or slack channel) !", map[string]string { /* ... */ })

Using a sender with multiple URLs

  urls := []string {
    "slack://token-a/token-b/token-c"
    "discord://token@channel"
  }
  sender, err := shoutrrr.CreateSender(urls...)
  sender.Send("Hello world (or slack channel) !", map[string]string { /* ... */ })

Through the CLI

Start by running the build.sh script. You may then run send notifications using the shoutrrr executable:

$ shoutrrr send [OPTIONS] <URL> <Message [...]>

From a GitHub Actions workflow

You can also use Shoutrrr from a GitHub Actions workflow.

See this example and the action on GitHub Marketplace:

name: Deploy
on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Some other steps needed for deploying
        run: ...
      - name: Shoutrrr
        uses: containrrr/shoutrrr-action@v1
        with:
          url: ${{ secrets.SHOUTRRR_URL }}
          title: Deployed ${{ github.sha }}
          message: See changes at ${{ github.event.compare }}.

Documentation

For additional details, visit the full documentation.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Amir Schnell

πŸ’»

nils mΓ₯sΓ©n

πŸ’» πŸ“– 🚧

Luka Peschke

πŸ’» πŸ“–

MrLuje

πŸ’» πŸ“–

Simon Aronsson

πŸ’» πŸ“– 🚧

Arne JΓΈrgensen

πŸ“– πŸ’»

Alexei Tighineanu

πŸ’»

Alexandru Bonini

πŸ’»

Senan Kelly

πŸ’»

JonasPf

πŸ’»

claycooper

πŸ“–

Derzsi DΓ‘niel

πŸ’»

Joseph Kavanagh

πŸ’» πŸ›

Justin Steven

πŸ›

This project follows the all-contributors specification. Contributions of any kind welcome!

Related Project(s)

  • watchtower - process for automating Docker container base image updates that uses shoutrrr for notifications
  • kured - kubernetes reboot daemon has adopted shoutrrr as their unified notification method starting with version 1.7.0.
  • Green Orb - a versatile 'observe and report' buddy for your application logs