Skip to content

nicholas-fedor/shoutrrr

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Shoutrrr

A 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 Pulls from DockerHub godoc All Contributors

Table of Contents

Full Documentation

Visit the project's GitHub Page for full documentation.

Installation

From Source

go install github.com/nicholas-fedor/shoutrrr/shoutrrr@latest

Binaries

Install the latest release binary to $HOME/go/bin (ensure it's in your PATH).

  • Windows (amd64):

    New-Item -ItemType Directory -Path $HOME\go\bin -Force | Out-Null; iwr (iwr https://api.github.com/repos/nicholas-fedor/shoutrrr/releases/latest | ConvertFrom-Json).assets.where({$_.name -like "*windows_amd64*.zip"}).browser_download_url -OutFile shoutrrr.zip; Add-Type -AssemblyName System.IO.Compression.FileSystem; ($z=[System.IO.Compression.ZipFile]::OpenRead("$PWD\shoutrrr.zip")).Entries | ? {$_.Name -eq 'shoutrrr.exe'} | % {[System.IO.Compression.ZipFileExtensions]::ExtractToFile($_, "$HOME\go\bin\$($_.Name)", $true)}; $z.Dispose(); rm shoutrrr.zip; if (Test-Path "$HOME\go\bin\shoutrrr.exe") { Write-Host "Successfully installed shoutrrr.exe to $HOME\go\bin" } else { Write-Host "Failed to install shoutrrr.exe" }
  • Linux (amd64):

    mkdir -p $HOME/go/bin && curl -L $(curl -s https://api.github.com/repos/nicholas-fedor/shoutrrr/releases/latest | grep -o 'https://[^"]*linux_amd64[^"]*\.tar\.gz') | tar -xz --strip-components=1 -C $HOME/go/bin shoutrrr
  • macOS (amd64):

    mkdir -p $HOME/go/bin && curl -L $(curl -s https://api.github.com/repos/nicholas-fedor/shoutrrr/releases/latest | grep -o 'https://[^"]*darwin_amd64[^"]*\.tar\.gz') | tar -xz --strip-components=1 -C $HOME/go/bin shoutrrr

Note

Visit the releases page for other architectures (e.g., arm, arm64, i386, riscv64).

Container Images

  • Docker Hub:

    docker pull nickfedor/shoutrrr:latest
  • GHCR:

    docker pull ghcr.io/nicholas-fedor/shoutrrr:latest

Note

Tags: latest (stable), vX.Y.Z (specific version), latest-dev (development), platform-specific (e.g., amd64-latest).

Go Package

go get github.com/nicholas-fedor/shoutrrr@latest

GitHub Action

- name: Shoutrrr
  uses: nicholas-fedor/shoutrrr-action@v1
  with:
    url: ${{ secrets.SHOUTRRR_URL }}
    title: Deployed ${{ github.sha }}
    message: See changes at ${{ github.event.compare }}.

Usage

CLI

shoutrrr send --url "slack://hook:T00000000-B00000000-XXXXXXXXXXXXXXXXXXXXXXXX@webhook" --message "Hello, Slack!"

Go Package Usage

import "github.com/nicholas-fedor/shoutrrr"

errs := shoutrrr.Send("slack://hook:T00000000-B00000000-XXXXXXXXXXXXXXXXXXXXXXXX@webhook", "Hello, Slack!")
if len(errs) > 0 {
    // Handle errors
}

Docker

docker run --rm nickfedor/shoutrrr:latest send --url "slack://hook:T00000000-B00000000-XXXXXXXXXXXXXXXXXXXXXXXX@webhook" --message "Hello, Slack!"

GitHub Action Usage

See installation example above.

Use as a Package

Option 1 - Using the direct send command

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

Option 2 - Using a sender

Single URL
url := "slack://token-a/token-b/token-c"
sender, err := shoutrrr.CreateSender(url)
sender.Send("Hello world (or slack channel) !", map[string]string { /* ... */ })
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 { /* ... */ })

Use Through the CLI

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

Use as a GitHub Action

You can also use Shoutrrr in a GitHub Actions workflow.

name: Deploy
on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - [Your other workflow steps]

      - name: Shoutrrr
        uses: nicholas-fedor/[email protected]
        with:
          url: ${{ secrets.SHOUTRRR_URL }}
          title: Deployed ${{ github.sha }}
          message: See changes at ${{ github.event.compare }}.

Supported Services

Service Description
Bark iOS push notifications
Discord Discord webhooks
Generic Custom HTTP webhooks
Google Chat Google Chat webhooks
Gotify Gotify push notifications
IFTTT IFTTT webhooks
Join Join push notifications
Lark Lark (Feishu) webhooks
Logger Local logging (for testing)
Matrix Matrix rooms
Mattermost Mattermost webhooks
Notifiarr Notifiarr message forwarding
Ntfy Ntfy push notifications
Opsgenie Opsgenie alerts
PagerDuty PagerDuty incident notifications
Pushbullet Pushbullet push notifications
Pushover Pushover push notifications
Rocket.Chat Rocket.Chat webhooks
Slack Slack webhooks or Bot API
SMTP Email notifications
Teams Microsoft Teams webhooks
Telegram Telegram bots
Zulip Zulip chat
XMPP XMPP messages (if enabled)

Contributors โœจ

Thanks goes to these wonderful people (emoji key):

Nicholas Fedor
Nicholas Fedor

๐Ÿ’ป ๐Ÿ“– ๐Ÿšง ๐Ÿ‘€
Amir Schnell
Amir Schnell

๐Ÿ’ป
nils mรฅsรฉn
nils mรฅsรฉn

๐Ÿ’ป ๐Ÿ“– ๐Ÿšง
Luka Peschke
Luka Peschke

๐Ÿ’ป ๐Ÿ“–
MrLuje
MrLuje

๐Ÿ’ป ๐Ÿ“–
Simon Aronsson
Simon Aronsson

๐Ÿ’ป ๐Ÿ“– ๐Ÿšง
Arne Jรธrgensen
Arne Jรธrgensen

๐Ÿ“– ๐Ÿ’ป
Alexei Tighineanu
Alexei Tighineanu

๐Ÿ’ป
Alexandru Bonini
Alexandru Bonini

๐Ÿ’ป
Senan Kelly
Senan Kelly

๐Ÿ’ป
JonasPf
JonasPf

๐Ÿ’ป
claycooper
claycooper

๐Ÿ“–
Derzsi Dรกniel
Derzsi Dรกniel

๐Ÿ’ป
Joseph Kavanagh
Joseph Kavanagh

๐Ÿ’ป ๐Ÿ›
Justin Steven
Justin Steven

๐Ÿ›
Carlos Savcic
Carlos Savcic

๐Ÿ’ป ๐Ÿ“–
PythonGermany
PythonGermany

๐Ÿ’ป
Noel O'Brien
Noel O'Brien

๐Ÿ’ป ๐Ÿ“–

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

Related Project(s)

  • Watchtower - Automate Docker container image updates.
  • Shoutrrr GitHub Action - Notifications using Shoutrrr in GitHub Actions.
  • Bezel - A lightweight server monitoring platform that includes Docker statistics, historical data, and alert functions.
  • WatchYourLAN - Lightweight network IP scanner with web GUI.
  • docker-volume-backup - Backup Docker volumes locally or to any S3, WebDAV, Azure Blob Storage, Dropbox, Google Drive or SSH compatible storage.
  • BirdNET-Go - An AI solution for continuous avian monitoring and identification.

About

A notification library for gophers and their furry friends.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Go 98.7%
  • Other 1.3%