--- version: 1 {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "files" "apprise-custom")) -}} include: - custom.yml {{ end }} # Define an Asset object if you wish (Optional) # asset: # app_id: AppriseTest # app_desc: Apprise Test Notifications # app_url: http://nuxref.com groups: - chat: matrix - developer: slack - social: reddit, twitter - owner: sendgrid, twilio, rsyslog, system tag: all urls: {{- $gmailAppPassword := (default "" (env "GMAIL_PASSWORD")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "GMAIL_PASSWORD")) -}} {{- $gmailAppPassword = includeTemplate "secrets/GMAIL_PASSWORD" | decrypt | trim -}} {{- end -}} {{- if ne $gmailAppPassword "" -}} ### E-mail # Source: https://github.com/caronc/apprise/wiki/Notify_email # Sends an e-mail with GMail SMTP using GMail username provided in .chezmoi.yaml.tmpl and uses `GMAIL_PASSWORD` (which can be an app password instead of your normal password) - mailto://{{ .user.gmail.username }}:{{- $gmailAppPassword -}}@gmail.com:587?smtp=smtp.gmail.com&from={{ .user.gmail.username }}: - to: "{{ .user.email }}" tag: email, gmail {{ end }} {{- $iftttWebhookId := (default "" (env "IFTTT_WEBHOOK_ID")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "IFTTT_WEBHOOK_ID")) -}} {{- $iftttWebhookId = includeTemplate "secrets/IFTTT_WEBHOOK_ID" | decrypt | trim -}} {{- end -}} {{- if ne $iftttWebhookId "" -}} ### IFTTT # Source: https://github.com/caronc/apprise/wiki/Notify_ifttt # Triggers an IFTTT webhook - ifttt://{{- $iftttWebhookId -}}: - tag: ifttt {{ end }} {{- $matrixPassword := (default "" (env "MATRIX_PASSWORD")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "MATRIX_PASSWORD")) -}} {{- $matrixPassword = includeTemplate "secrets/MATRIX_PASSWORD" | decrypt | trim -}} {{- end -}} {{- $matrixUsername := (default "" (env "MATRIX_USERNAME")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "MATRIX_USERNAME")) -}} {{- $matrixUsername = includeTemplate "secrets/MATRIX_USERNAME" | decrypt | trim -}} {{- end -}} {{- if and (ne $matrixPassword "") (ne $matrixUsername "") -}} ### Matrix # Source: https://github.com/caronc/apprise/wiki/Notify_matrix # https://app.element.io/#/room/#megabyte.space:matrix.org # Posts a message in a Matrix chatroom - matrix://{{- $matrixUsername -}}:{{- $matrixPassword -}}@matrix.org/#megabyte.space: - tag: chat, matrix, megabyte-labs # https://app.element.io/#/room/#install.doctor:matrix.org - matrix://{{- $matrixUsername -}}:{{- $matrixPassword -}}@matrix.org/#install.doctor: - tag: chat, matrix, install-doctor {{ end }} ### Microsoft Teams # Source: https://github.com/caronc/apprise/wiki/Notify_msteams # Note: Microsoft Teams currently requires paid subscriptions of Office 365 for a custom organization {{- $redditAppId := (default "" (env "REDDIT_APP_ID")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "REDDIT_APP_ID")) -}} {{- $redditAppId = includeTemplate "secrets/REDDIT_APP_ID" | decrypt | trim -}} {{- end -}} {{- $redditAppSecret := (default "" (env "REDDIT_APP_SECRET")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "REDDIT_APP_SECRET")) -}} {{- $redditAppSecret = includeTemplate "secrets/REDDIT_APP_SECRET" | decrypt | trim -}} {{- end -}} {{- $redditPassword := (default "" (env "REDDIT_PASSWORD")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "REDDIT_PASSWORD")) -}} {{- $redditPassword = includeTemplate "secrets/REDDIT_PASSWORD" | decrypt | trim -}} {{- end -}} {{- $redditUsername := (default "" (env "REDDIT_USERNAME")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "REDDIT_USERNAME")) -}} {{- $redditUsername = includeTemplate "secrets/REDDIT_USERNAME" | decrypt | trim -}} {{- end -}} {{- if and (ne $redditAppId "") (ne $redditAppSecret "") (ne $redditPassword "") (ne $redditUsername "") -}} ### Reddit # Source: https://github.com/caronc/apprise/wiki/Notify_reddit # TODO - Replace opensource below with appropriate sub-reddit - reddit://{{- $redditUsername -}}:{{- $redditPassword -}}@{{- $redditAppId -}}/{{- $redditAppSecret -}}/{subreddit}: - tag: reddit, post, megabyte-labs {{ end }} ### RSyslog # Source: https://github.com/caronc/apprise/wiki/Notify_rsyslog - rsyslog://localhost: - tag: rsyslog, log {{- $sendGridApiKey := (default "" (env "SENDGRID_API_KEY")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "SENDGRID_API_KEY")) -}} {{- $sendGridApiKey = includeTemplate "secrets/SENDGRID_API_KEY" | decrypt | trim -}} {{- end -}} {{- if ne $sendGridApiKey "" -}} ### SendGrid # Source: https://github.com/caronc/apprise/wiki/Notify_sendgrid # Sends an e-mail using SendGrid (with templating options) - sendgrid://{{- $sendGridApiKey -}}:{{ .host.noReplyEmail }}: - to: "{{ .user.email }}" tag: email, sendgrid {{ end }} {{- $slackBotToken := (default "" (env "SLACK_BOT_USER_OAUTH_TOKEN")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "SLACK_BOT_USER_OAUTH_TOKEN")) -}} {{- $slackBotToken = includeTemplate "secrets/SLACK_BOT_USER_OAUTH_TOKEN" | decrypt | trim -}} {{- end -}} {{- if ne $slackBotToken "" -}} ### Slack # Source: https://github.com/caronc/apprise/wiki/Notify_slack # Posts in Slack chatroom - slack://{{ $slackBotToken }}: - tag: chat, slack {{ end }} {{- $twilioAccountSid := (default "" (env "TWILIO_ACCOUNT_SID")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "TWILIO_ACCOUNT_SID")) -}} {{- $twilioAccountSid = includeTemplate "secrets/TWILIO_ACCOUNT_SID" | decrypt | trim -}} {{- end -}} {{- $twilioAuthToken := (default "" (env "TWILIO_AUTH_TOKEN")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "TWILIO_AUTH_TOKEN")) -}} {{- $twilioAuthToken = includeTemplate "secrets/TWILIO_AUTH_TOKEN" | decrypt | trim -}} {{- end -}} {{- $twilioFromNumber := (default "" (env "TWILIO_FROM_NUMBER")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "TWILIO_FROM_NUMBER")) -}} {{- $twilioFromNumber = includeTemplate "secrets/TWILIO_FROM_NUMBER" | decrypt | trim -}} {{- end -}} {{- $cellPhoneNumber := (default "" (env "CELL_PHONE_NUMBER")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "CELL_PHONE_NUMBER")) -}} {{- $cellPhoneNumber = includeTemplate "secrets/CELL_PHONE_NUMBER" | decrypt | trim -}} {{- end -}} {{- if and (ne $twilioAccountSid "") (ne $twilioAuthToken "") (ne $twilioFromNumber "") (ne $cellPhoneNumber "") -}} ### Twilio # Source: https://github.com/caronc/apprise/wiki/Notify_twilio # Sends a text message from Twilio to the `CELL_PHONE_NUMBER` - twilio://{{- $twilioAccountSid -}}:{{- $twilioAuthToken -}}@{{- $twilioFromNumber -}}/{{- $cellPhoneNumber -}} - tag: text, twilio {{ end }} {{- $twitterApiKey := (default "" (env "TWITTER_API_KEY")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "TWITTER_API_KEY")) -}} {{- $twitterApiKey = includeTemplate "secrets/TWITTER_API_KEY" | decrypt | trim -}} {{- end -}} {{- $twitterApiKeySecret := (default "" (env "TWITTER_API_KEY_SECRET")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "TWITTER_API_KEY_SECRET")) -}} {{- $twitterApiKeySecret = includeTemplate "secrets/TWITTER_API_KEY_SECRET" | decrypt | trim -}} {{- end -}} {{- $twitterAccessToken := (default "" (env "TWITTER_ACCESS_TOKEN")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "TWITTER_ACCESS_TOKEN")) -}} {{- $twitterAccessToken = includeTemplate "secrets/TWITTER_ACCESS_TOKEN" | decrypt | trim -}} {{- end -}} {{- $twitterAccessTokenSecret := (default "" (env "TWITTER_ACCESS_TOKEN_SECRET")) -}} {{- if and (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "TWITTER_ACCESS_TOKEN_SECRET")) -}} {{- $twitterAccessTokenSecret = includeTemplate "secrets/TWITTER_ACCESS_TOKEN_SECRET" | decrypt | trim -}} {{- end -}} {{- if and (ne $twitterApiKey "") (ne $twitterApiKeySecret "") (ne $twitterAccessToken "") (ne $twitterAccessTokenSecret "") -}} ### Twitter # Posts a tweet - twitter://{{- $twitterApiKey -}}/{{- $twitterApiKeySecret -}}/{{- $twitterAccessToken -}}/{{- $twitterAccessTokenSecret -}}?mode=tweet: - tag: post, tweet, megabyte-labs {{ end }} ### dbus # Source: https://github.com/caronc/apprise/wiki/Notify_dbus - dbus://: - tag: dbus, system ### GNOME # Source: https://github.com/caronc/apprise/wiki/Notify_gnome - gnome://: - tag: gnome, system ### macOS # Source: https://github.com/caronc/apprise/wiki/Notify_macosx - macosx://: - tag: macos, system ### Windows # Source: