# Shoutrrr Notification library for gophers and their furry friends. Heavily inspired by caronc/apprise. ![github actions workflow status](https://github.com/nicholas-fedor/shoutrrr/workflows/Main%20Workflow/badge.svg) [![codecov](https://codecov.io/gh/nicholas-fedor/shoutrrr/branch/main/graph/badge.svg)](https://codecov.io/gh/nicholas-fedor/shoutrrr) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/47eed72de79448e2a6e297d770355544)](https://www.codacy.com/gh/nicholas-fedor/shoutrrr/dashboard?utm_source=github.com&utm_medium=referral&utm_content=nicholas-fedor/shoutrrr&utm_campaign=Badge_Grade) [![report card](https://goreportcard.com/badge/github.com/nicholas-fedor/shoutrrr)](https://goreportcard.com/badge/github.com/nicholas-fedor/shoutrrr) [![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/github.com/nicholas-fedor/shoutrrr) [![github code size in bytes](https://img.shields.io/github/languages/code-size/nicholas-fedor/shoutrrr.svg?style=flat-square)](https://github.com/nicholas-fedor/shoutrrr) [![license](https://img.shields.io/github/license/nicholas-fedor/shoutrrr.svg?style=flat-square)](https://github.com/nicholas-fedor/shoutrrr/blob/main/LICENSE) [![Pulls from DockerHub](https://img.shields.io/docker/pulls/nickfedor/shoutrrr.svg)](https://hub.docker.com/r/nickfedor/shoutrrr) [![godoc](https://godoc.org/github.com/nicholas-fedor/shoutrrr?status.svg)](https://godoc.org/github.com/nicholas-fedor/shoutrrr) [![All Contributors](https://img.shields.io/badge/all_contributors-16-orange.svg?style=flat-square)](#contributors-)


## Installation ### Using the Go CLI ```bash go install github.com/nicholas-fedor/shoutrrr/shoutrrr@latest ``` ### From Source ```bash 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 ```go url := "slack://token-a/token-b/token-c" err := shoutrrr.Send(url, "Hello world (or slack channel) !") ``` #### Using a sender ```go 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 ```go 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: ```shell shoutrrr send [OPTIONS] ``` ### From a GitHub Actions workflow You can also use Shoutrrr from a GitHub Actions workflow. See this example and the [action on GitHub Marketplace](https://github.com/marketplace/actions/shoutrrr-action): ```yaml name: Deploy on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Some other steps needed for deploying run: ... - name: Shoutrrr uses: nicholas-fedor/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](https://nicholas-fedor.github.io/shoutrrr). ## Contributors โœจ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/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

๐Ÿ’ป ๐Ÿ“–
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! ## Related Project(s) - [watchtower](https://github.com/nicholas-fedor/watchtower) - automate Docker container image updates