#!/bin/bash
echo "========== PI SNAPSHOT =========="
echo ""
echo "=== SYSTEM ==="
cat /etc/os-release 2>/dev/null
uname -a
cat /proc/cpuinfo | grep -E "Model|model name|Hardware|Revision" | head -5
echo ""
echo "--- Memory ---"
free -h
echo ""
echo "--- Disk ---"
df -h
echo ""
echo "=== RUNNING SERVICES ==="
systemctl list-units --type=service --state=running --no-pager --no-legend
echo ""
echo "=== LISTENING PORTS ==="
sudo ss -tlnp
echo ""
echo "=== DOCKER CONTAINERS ==="
docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}" 2>/dev/null || echo "Docker not running or not installed"
echo ""
echo "=== DOCKER COMPOSE FILES ==="
find /home /opt /srv /root -name "docker-compose*.yml" -o -name "docker-compose*.yaml" 2>/dev/null | while read f; do
  echo "--- $f ---"
  sed -E 's/(password|secret|key|token|api_key|passwd)(\s*[:=]\s*).*/\1\2REDACTED/gi' "$f"
  echo ""
done
echo ""
echo "=== ENV FILES (AUTO-REDACTED) ==="
find /home /opt /srv /root -name ".env" 2>/dev/null | while read f; do
  echo "--- $f ---"
  sed -E 's/(=).+/=REDACTED/' "$f"
  echo ""
done
echo ""
echo "=== CUSTOM SYSTEMD SERVICES ==="
for f in /etc/systemd/system/*.service; do
  [ -f "$f" ] || continue
  echo "--- $f ---"
  cat "$f"
  echo ""
done
echo ""
echo "=== CRON JOBS ==="
echo "-- User cron --"
crontab -l 2>/dev/null || echo "No user crontab"
echo "-- Root cron --"
sudo crontab -l 2>/dev/null || echo "No root crontab"
echo ""
echo "=== NGINX CONFIGS ==="
for f in /etc/nginx/sites-enabled/*; do
  [ -f "$f" ] || continue
  echo "--- $f ---"
  cat "$f"
  echo ""
done 2>/dev/null
echo ""
echo "=== NETWORK ==="
hostname -I
ip route
echo ""
echo "========== END SNAPSHOT =========="
