# Setting up automated Pangolin monitoring with systemd

**URL:** <https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438>\
**Category:** Networking\
**Tags:** pangolin\
**Created:** [January 22, 2025, 5:59pm UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438 "2025-01-22T17:59:00Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![hhf.technoloy](https://forum.hhf.technology/user_avatar/forum.hhf.technology/hhf.technoloy/32/68_2.png) [@hhf.technoloy](https://forum.hhf.technology/u/hhf.technoloy)\
**Post date:** [January 22, 2025, 5:59pm UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/1 "2025-01-22T17:59:00Z")

</div>

# Pangolin Monitoring Setup Guide

This guide explains how to set up comprehensive monitoring for your Pangolin server using a combination of systemd services, Discord alerts, and optional Falco security monitoring.

## Basic Monitoring Setup

### 1. Install and Configure the Monitor Script

First, create the monitoring directory and download the script:

```bash
sudo mkdir -p /opt/pangolin-monitor
curl -o /opt/pangolin-monitor/pangolin-monitor.sh https://gist.githubusercontent.com/hhftechnology/b2109fa3f2bf05ebb8945f0423d9e6b9/raw/58514da761cdb53bbd8144c71999347cd2a8f1ea/pangolin-monitor.sh

```

Before making the script executable, you need to edit it to configure your specific settings:

```bash
sudo nano /opt/pangolin-monitor/pangolin-monitor.sh

```

Update the following configuration variables at the top of the script:

```bash
# Configuration Section
PANGOLIN_URL="https://pangolin.testing.your.domain" # Your Pangolin instance URL
PANGOLIN_EMAIL="your_email@hhf.technology" # Your admin email
PANGOLIN_PASSWORD="your_admin_password" # Your admin password
PANGOLIN_ORG="your_org" # Your organization name
DISCORD_WEBHOOK="https://discord.com/api/webhooks/your-hook" # Your Discord webhook URL

# Optional: Adjust monitoring thresholds if needed
CHECK_INTERVAL=60 # How often to check (in seconds)
BANDWIDTH_WARNING_THRESHOLD=1000 # MB
BANDWIDTH_CRITICAL_THRESHOLD=2000 # MB

```

After configuring the script, make it executable:

```bash
sudo chmod +x /opt/pangolin-monitor/pangolin-monitor.sh

```

#### Important Configuration Notes:

1. **PANGOLIN\_URL** : Must be the full URL to your Pangolin instance
2. **PANGOLIN\_EMAIL** and **PANGOLIN\_PASSWORD** : Must match your admin credentials
3. **PANGOLIN\_ORG** : The organization name in Pangolin you want to monitor
4. **DISCORD\_WEBHOOK** : Create this in your Discord server:
  - Open Discord Server Settings
  - Go to Integrations
  - Create a Webhook
  - Copy the Webhook URL

#### Adjusting Thresholds:

- `CHECK_INTERVAL`: Default 60 seconds, increase for less frequent checks
- `BANDWIDTH_WARNING_THRESHOLD`: Default 1000 MB
- `BANDWIDTH_CRITICAL_THRESHOLD`: Default 2000 MB
- Adjust these based on your typical usage patterns

### 2. Create Systemd Service

Create the service file at `/etc/systemd/system/pangolin-monitor.service`:

```bash
sudo nano /etc/systemd/system/pangolin-monitor.service

```

Add the following content:

```ini
[Unit]
Description=Pangolin Monitoring Service
After=network.target

[Service]
Type=simple
ExecStart=/opt/pangolin-monitor/pangolin-monitor.sh
Restart=always
RestartSec=60

[Install]
WantedBy=multi-user.target

```

### 3. Enable and Start the Service

```bash
sudo systemctl enable pangolin-monitor.service
sudo systemctl start pangolin-monitor.service

```

## Monitoring Features

The monitoring script provides comprehensive checks including:

### Container Health Monitoring

- Checks status of all critical containers:
  - Pangolin
  - Gerbil
  - Traefik

- Verifies both running state and health check status
- Sends alerts for any container issues

### Bandwidth Monitoring

- Tracks total bytes in/out
- Configurable warning and critical thresholds
- Bandwidth metrics in logs and alerts
- Uses Pangolin API for metrics collection

## Enhanced Security with Falco

For additional security monitoring, you can deploy Falco:

```bash
sudo docker run --rm -i -t --name falco --privileged \
    -v /var/run/docker.sock:/host/var/run/docker.sock \
    -v /dev:/host/dev \
    -v /proc:/host/proc:ro \
    -v /boot:/host/boot:ro \
    -v /lib/modules:/host/lib/modules:ro \
    -v /usr:/host/usr:ro \
    -v /etc:/host/etc:ro \
    falcosecurity/falco:0.39.2

```

Falco provides:

- Real-time threat detection
- Container runtime monitoring
- Kubernetes workload security
- Behavioral monitoring

## Security Recommendations

1. SSH Security:

2. Container Security:

3. Network Security:

## Monitoring Verification

### Check Service Status

```bash
sudo systemctl status pangolin-monitor.service

```

### View Monitoring Logs

```bash
journalctl -u pangolin-monitor.service

```

## Troubleshooting

### Common Issues

1. **Discord Alerts Not Working**

2. **Container Status Errors**

3. **Bandwidth Monitoring Issues**

## Additional Resources

- Full discussion and updates: [HHF Technology Forum](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd)
- Detailed blog post: [Pangolin Monitor Blog](https://hhf.technology/blog/pangolin-monitor)
- [Falco Documentation](https://falco.org/docs/)

## Customization

The monitoring script can be customized by editing thresholds and alert conditions in `/opt/pangolin-monitor/pangolin-monitor.sh`. Common customizations include:

- Adjusting bandwidth thresholds
- Modifying check intervals
- Adding custom metrics
- Configuring additional alert destinations

Remember to restart the service after making changes:

```bash
sudo systemctl restart pangolin-monitor.service

```

---

<div class="post-metadata">

**Author:** ![player684](https://forum.hhf.technology/user_avatar/forum.hhf.technology/player684/32/677_2.png) [@player684](https://forum.hhf.technology/u/player684)\
**Post date:** [February 1, 2025, 9:03am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/2 "2025-02-01T09:03:11Z")

</div>

Hi, This is really helpful. Thanks for this.

If I have 2FA on Pangolin account would this still work because it need Pangolin password and with 2FA I guess password alone won’t be enough.

---

<div class="post-metadata">

**Author:** ![hhf.technoloy](https://forum.hhf.technology/user_avatar/forum.hhf.technology/hhf.technoloy/32/68_2.png) [@hhf.technoloy](https://forum.hhf.technology/u/hhf.technoloy)\
**Post date:** [February 1, 2025, 9:20am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/3 "2025-02-01T09:20:42Z")

</div>

glad to hear this. yes it will work , you can put up discord alerts too.

---

<div class="post-metadata">

**Author:** ![player684](https://forum.hhf.technology/user_avatar/forum.hhf.technology/player684/32/677_2.png) [@player684](https://forum.hhf.technology/u/player684)\
**Post date:** [February 1, 2025, 9:24am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/4 "2025-02-01T09:24:15Z")

</div>

yeah that’s what i plan to do with this without the Falco bit for now because I don’t understand Flaco and want to be careful not to block myself 😉

---

<div class="post-metadata">

**Author:** ![hhf.technoloy](https://forum.hhf.technology/user_avatar/forum.hhf.technology/hhf.technoloy/32/68_2.png) [@hhf.technoloy](https://forum.hhf.technology/u/hhf.technoloy)\
**Post date:** [February 1, 2025, 9:25am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/5 "2025-02-01T09:25:40Z")

</div>

you can secure 22 by tailnet. I can share my script if you wish

---

<div class="post-metadata">

**Author:** ![player684](https://forum.hhf.technology/user_avatar/forum.hhf.technology/player684/32/677_2.png) [@player684](https://forum.hhf.technology/u/player684)\
**Post date:** [February 1, 2025, 9:28am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/6 "2025-02-01T09:28:28Z")

</div>

Please do. But I am using a custom port and I am also mindful not to mess-up Pangolin 🙂  
Would you recommend Falco or Crowdsec or both? What is the best setup in your opinion?

---

<div class="post-metadata">

**Author:** ![hhf.technoloy](https://forum.hhf.technology/user_avatar/forum.hhf.technology/hhf.technoloy/32/68_2.png) [@hhf.technoloy](https://forum.hhf.technology/u/hhf.technoloy)\
**Post date:** [February 1, 2025, 9:33am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/7 "2025-02-01T09:33:58Z")

</div>

bash script that securely binds SSH to your Tailscale IP

```bash
#!/bin/bash

# Exit on any error and enable error tracing
set -e
set -x

# Function to log messages with timestamps
log() {
    echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1"
}

# Function to check command status and exit if failed
check_status() {
    if [$? -eq 0]; then
        log "✅ $1 completed successfully"
    else
        log "❌ Error: $1 failed"
        exit 1
    fi
}

# Function to verify IPv4 forwarding is enabled
check_ipv4_forwarding() {
    if ["$(cat /proc/sys/net/ipv4/ip_forward)" -eq 1]; then
        log "IPv4 forwarding is enabled"
        return 0
    else
        log "IPv4 forwarding is not enabled"
        return 1
    fi
}

# Function to create secure user and set up SSH keys
setup_secure_user() {
    local username="secureuser"
    local ssh_dir="/home/$username/.ssh"
    
    # Create user if doesn't exist
    if ! id "$username" &>/dev/null; then
        log "Creating secure user..."
        useradd -m -s /bin/bash "$username"
        # Set a secure random password that will be disabled after key setup
        local temp_pass=$(openssl rand -base64 32)
        echo "$username:$temp_pass" | chpasswd
        
        # Add user to sudo group and configure sudo access
        usermod -aG sudo "$username"
        # Configure passwordless sudo for specific commands
        echo "$username ALL=(ALL:ALL) NOPASSWD: /usr/sbin/tailscale, /bin/systemctl restart ssh, /bin/systemctl restart sshd" > "/etc/sudoers.d/$username"
        chmod 0440 "/etc/sudoers.d/$username"
    fi
    
    # Create and secure SSH directory
    mkdir -p "$ssh_dir"
    chown -R "$username:$username" "$ssh_dir"
    chmod 700 "$ssh_dir"
    
    # Generate SSH key pair
    log "Generating SSH key pair..."
    local key_file="$ssh_dir/id_ed25519"
    if [! -f "$key_file"]; then
        sudo -u "$username" ssh-keygen -t ed25519 -f "$key_file" -N "" -C "$username@$(hostname)"
        cat "$key_file.pub" >> "$ssh_dir/authorized_keys"
        chmod 600 "$ssh_dir/authorized_keys"
        chown "$username:$username" "$ssh_dir/authorized_keys"
    fi
    
    # Disable password authentication for this user
    passwd -l "$username"
    
    # Display the private key for backup and wait for user confirmation
    log "⚠️ IMPORTANT - SSH Private Key ⚠️"
    log "Please copy this private key and store it securely. You will need it to connect to this server."
    log "The key will be displayed below. Once displayed, you will have time to copy it."
    echo ""
    read -p "Press Enter to display the private key..."
    echo ""
    echo "------------------------"
    echo "PRIVATE KEY - COPY EVERYTHING BETWEEN THE LINES:"
    echo "------------------------"
    cat "$key_file"
    echo "------------------------"
    echo ""
    
    # Wait for user confirmation with a clear warning
    while true; do
        read -p "Have you securely copied the private key? (yes/no): " confirm
        case $confirm in
            [Yy]* ) break;;
            [Nn]* ) 
                log "Please copy the key now. It's critical for server access."
                echo "------------------------"
                cat "$key_file"
                echo "------------------------"
                echo "";;
            * ) log "Please answer yes or no.";;
        esac
    done
    
    # Display public key for reference
    log "For reference, here is the public key (less critical, but useful to keep):"
    echo "------------------------"
    cat "$key_file.pub"
    echo "------------------------"
    echo ""
    read -p "Press Enter to continue with the setup..."
}

# Function to determine SSH service name
get_ssh_service() {
    if systemctl list-units --full -all | grep -Fq "ssh.service"; then
        echo "ssh"
    elif systemctl list-units --full -all | grep -Fq "sshd.service"; then
        echo "sshd"
    else
        log "SSH service not found!"
        exit 1
    fi
}

# Check if script is run as root
if ["$EUID" -ne 0]; then 
    log "Please run as root"
    exit 1
fi

# 1. Set up secure user and generate SSH keys
log "Setting up secure user and SSH keys..."
setup_secure_user
check_status "Secure user setup"

# 2. Verify Tailscale installation
log "Checking Tailscale installation..."
if ! command -v tailscale &> /dev/null; then
    log "Tailscale is not installed. Please install Tailscale first."
    exit 1
fi
check_status "Tailscale installation check"

# 2. Verify Tailscale status
log "Checking Tailscale status..."
if ! tailscale status &> /dev/null; then
    log "Tailscale is not running"
    exit 1
fi
check_status "Tailscale status check"

# 3. Check IPv4 forwarding
log "Checking IPv4 forwarding..."
if ! check_ipv4_forwarding; then
    log "Enabling IPv4 forwarding..."
    echo 1 > /proc/sys/net/ipv4/ip_forward
    # Make IPv4 forwarding persistent
    echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-tailscale.conf
    sysctl -p /etc/sysctl.d/99-tailscale.conf
fi
check_status "IPv4 forwarding configuration"

# 4. Get Tailscale IP
log "Getting Tailscale IP..."
TAILSCALE_IP=$(tailscale ip -4)
if [-z "$TAILSCALE_IP"]; then
    log "Failed to get Tailscale IP"
    exit 1
fi
log "Tailscale IP: $TAILSCALE_IP"
check_status "Tailscale IP retrieval"

# 5. Backup original SSH configuration
log "Creating backup of SSH configuration..."
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup.$(date +%Y%m%d_%H%M%S)
check_status "SSH config backup"

# 6. Update SSH configuration
log "Updating SSH configuration..."
cat > /etc/ssh/sshd_config << EOF
# SSH Configuration - Modified by Tailscale binding script
Port 22
ListenAddress ${TAILSCALE_IP}
PermitRootLogin prohibit-password
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server

# Security enhancements
Protocol 2
PermitEmptyPasswords no
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
EOF
check_status "SSH config update"

# 7. Verify SSH configuration syntax
log "Verifying SSH configuration syntax..."
sshd -t
check_status "SSH config syntax verification"

# 8. Restart SSH service
SSH_SERVICE=$(get_ssh_service)
log "Restarting ${SSH_SERVICE} service..."
systemctl restart ${SSH_SERVICE}
check_status "SSH service restart"

# 9. Verify SSH service is running
log "Verifying SSH service status..."
if ! systemctl is-active --quiet ${SSH_SERVICE}; then
    log "SSH service failed to start. Rolling back changes..."
    cp /etc/ssh/sshd_config.backup.$(date +%Y%m%d_%H%M%S) /etc/ssh/sshd_config
    systemctl restart ${SSH_SERVICE}
    exit 1
fi
check_status "SSH service status verification"

log "✨ Setup completed successfully! ✨"
log "Your SSH service is now bound to Tailscale IP: ${TAILSCALE_IP}"
log ""
log "⚠️ Important Notes:"
log "1. Keep this terminal session open until you verify SSH access"
log "2. Test SSH connection using: ssh user@${TAILSCALE_IP}"
log "3. To revert changes:"
log " - cp /etc/ssh/sshd_config.backup.$(date +%Y%m%d_%H%M%S) /etc/ssh/sshd_config"
log " - systemctl restart ${SSH_SERVICE}"

```

Here’s a more detailed step-by-step procedure:

# SSH Key Setup and User Creation Procedure

1. Save the Script

2. Set Script Permissions

3. Execute the Script

> Note: Keep the terminal window open during the entire process. donot not close it

1. Secure the Generated Key

2. Convert Key for PuTTY Use

3. Test New User Access

4. Safety Checks

Important Safety Notes:

- Store your key files securely
- Make backup copies of both `.key` and `.ppk` files

---

<div class="post-metadata">

**Author:** ![hhf.technoloy](https://forum.hhf.technology/user_avatar/forum.hhf.technology/hhf.technoloy/32/68_2.png) [@hhf.technoloy](https://forum.hhf.technology/u/hhf.technoloy)\
**Post date:** [February 1, 2025, 9:35am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/8 "2025-02-01T09:35:30Z")

</div>

> [@player684](#):
>
> Would you recommend Falco or Crowdsec or both? What is the best setup in your opinion?

Crowdsec preferred. Falco is over kill

---

<div class="post-metadata">

**Author:** ![player684](https://forum.hhf.technology/user_avatar/forum.hhf.technology/player684/32/677_2.png) [@player684](https://forum.hhf.technology/u/player684)\
**Post date:** [February 1, 2025, 9:37am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/9 "2025-02-01T09:37:20Z")

</div>

Great. You have give me a lot to work with today 😃

I am gonna follow your crowdsec guide and see if I can figure everything and the above to see if everything will work as I want.

Thank you so much.

---

<div class="post-metadata">

**Author:** ![hhf.technoloy](https://forum.hhf.technology/user_avatar/forum.hhf.technology/hhf.technoloy/32/68_2.png) [@hhf.technoloy](https://forum.hhf.technology/u/hhf.technoloy)\
**Post date:** [February 1, 2025, 9:37am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/10 "2025-02-01T09:37:59Z")

</div>

> [@hhf.technoloy](#):
>
> Note: Keep the terminal window open during the entire process. donot not close it

@player684 make sure tailscale client is running on your pc and approve the both on the tailscale dashboard-- vm and the pc.

---

<div class="post-metadata">

**Author:** ![player684](https://forum.hhf.technology/user_avatar/forum.hhf.technology/player684/32/677_2.png) [@player684](https://forum.hhf.technology/u/player684)\
**Post date:** [February 1, 2025, 9:38am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/11 "2025-02-01T09:38:23Z")

</div>

BTW I hope more people find your forum, you have created some really useful resources. Thanks for all the effort

---

<div class="post-metadata">

**Author:** ![hhf.technoloy](https://forum.hhf.technology/user_avatar/forum.hhf.technology/hhf.technoloy/32/68_2.png) [@hhf.technoloy](https://forum.hhf.technology/u/hhf.technoloy)\
**Post date:** [February 1, 2025, 9:38am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/12 "2025-02-01T09:38:35Z")

</div>

its little complicated. you can DM me on discord if you get stuck

---

<div class="post-metadata">

**Author:** ![hhf.technoloy](https://forum.hhf.technology/user_avatar/forum.hhf.technology/hhf.technoloy/32/68_2.png) [@hhf.technoloy](https://forum.hhf.technology/u/hhf.technoloy)\
**Post date:** [February 1, 2025, 9:39am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/13 "2025-02-01T09:39:36Z")

</div>

Thank you. its to benefit all the community members. I hope people utilize more and more.

---

<div class="post-metadata">

**Author:** ![player684](https://forum.hhf.technology/user_avatar/forum.hhf.technology/player684/32/677_2.png) [@player684](https://forum.hhf.technology/u/player684)\
**Post date:** [February 1, 2025, 9:45am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/14 "2025-02-01T09:45:19Z")

</div>

so I added the monitoring service to discord but I am getting auth failed.

---

<div class="post-metadata">

**Author:** ![player684](https://forum.hhf.technology/user_avatar/forum.hhf.technology/player684/32/677_2.png) [@player684](https://forum.hhf.technology/u/player684)\
**Post date:** [February 1, 2025, 9:46am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/15 "2025-02-01T09:46:03Z")

</div>

Is this not because i have 2FA on Panoglin?

edit: I created a new admin user in Pangolin without 2FA and now stopped getting auth error in Discord

---

<div class="post-metadata">

**Author:** ![player684](https://forum.hhf.technology/user_avatar/forum.hhf.technology/player684/32/677_2.png) [@player684](https://forum.hhf.technology/u/player684)\
**Post date:** [February 7, 2025, 11:11am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/16 "2025-02-07T11:11:39Z")

</div>

Hi, I implemented the monitoring service only with the script. It was working brilliantly, but today, for some reason, it stated sending all kinds of errors. I tried to troubleshoot but not getting anywhere. Is there anything I can do to get this back up?

I have now stopped the systemd service, but this is what it looked like on Discord

> **[Screenshot-20250207-111012 hosted at ImgBB](https://ibb.co/gbRj9xfF)**
>
> Image Screenshot-20250207-111012 hosted in ImgBB

---

<div class="post-metadata">

**Author:** ![hhf.technoloy](https://forum.hhf.technology/user_avatar/forum.hhf.technology/hhf.technoloy/32/68_2.png) [@hhf.technoloy](https://forum.hhf.technology/u/hhf.technoloy)\
**Post date:** [February 7, 2025, 5:48pm UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/17 "2025-02-07T17:48:20Z")

</div>

share your logs and your pangolin version details

---

<div class="post-metadata">

**Author:** ![player684](https://forum.hhf.technology/user_avatar/forum.hhf.technology/player684/32/677_2.png) [@player684](https://forum.hhf.technology/u/player684)\
**Post date:** [February 7, 2025, 10:03pm UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/18 "2025-02-07T22:03:18Z")

</div>

Is it okay to share publicly here? or Can you please send me a DM and I will reply wih logs.

---

<div class="post-metadata">

**Author:** ![german](https://forum.hhf.technology/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@german](https://forum.hhf.technology/u/german)\
**Post date:** [February 9, 2025, 9:14am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/19 "2025-02-09T09:14:54Z")

</div>

hey i edited this version and added pushover [https://raw.githubusercontent.com/synologyy/pango-scripts/refs/heads/main/pangolin-monitor.sh](https://raw.githubusercontent.com/synologyy/pango-scripts/refs/heads/main/pangolin-monitor.sh)

---

<div class="post-metadata">

**Author:** ![hhf.technoloy](https://forum.hhf.technology/user_avatar/forum.hhf.technology/hhf.technoloy/32/68_2.png) [@hhf.technoloy](https://forum.hhf.technology/u/hhf.technoloy)\
**Post date:** [February 9, 2025, 10:37am UTC](https://forum.hhf.technology/t/setting-up-automated-pangolin-monitoring-with-systemd/438/20 "2025-02-09T10:37:00Z")

</div>

Its awesome. i just tested it out. work perfectly.
