# ntfy

**ntfy** lets you send push notifications to your phone or desktop via scripts from any computer, using simple HTTP PUT or POST requests.

# 🔔 Low Space

## Script

```bash
#!/bin/bash

mingigs=20
avail=$(df | awk '$6 == "/" && $4 < '$mingigs' * 1024*1024 { print $4/1024/1024 }')

if [ -n "$avail" ]; then
  curl \
      -H "Title: Low Disk Space" \
      -H "Priority: urgent" \
      -H "Tags: warning,cd" \
      -d "Hello TTBB! Only $avail GB available on the root disk. Better clean that up." \
      https://notify.boreux.work/raspberrypi?auth=<TOKEN>
fi
```

## Cron

```bash
0  *    * * *   root    /bin/bash /root/ntfy/low-disk-space.sh
```

# ⛔️ SSH Access

## Script

```bash
#!/bin/bash
if [ "${PAM_TYPE}" = "open_session" ]; then
  curl \
      -H "Title: SSH Login" \
      -H "Priority: urgent" \
      -H "Tags: warning,door" \
      -d "Hello TTBB! There was an SSH login with user ${PAM_USER} from ${PAM_RHOST} host" \
      https://notify.boreux.work/pihole?auth=<TOKEN>
fi
```

## `/etc/pam.d/sshd`

At the end of the file, add the following line:

```bash
session optional pam_exec.so /root/ntfy/ssh-login.sh
```

# 🐚 Useful Commands

## Creating an Administrator

```bash
docker exec -it <NTFY_CONTAINER_NAME> ntfy user add --role=admin <USERNAME>
```