63 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# === CONFIG ===
SERVER="root@chatwithus.live"
MASTODON_INSTANCE="https://chatwithus.live"
ACCESS_TOKEN="rimxBLi-eaJAcwagkmoj6UoW7Lc473tQY0cOM041Euw"
TOOT_TEXT="✅ ChatWithUs.Live services restarted from Krang via OPS script."
TOOT_VISIBILITY="unlisted"
TELEGRAM_BOT_TOKEN="8178867489:AAH0VjN7VnZSCIWasSz_y97iBLLjPJA751k"
TELEGRAM_CHAT_ID="1559582356"
TELEGRAM_TEXT="✅ Mastodon has been restarted by Krang. All services are back online."
LOG_FILE="/home/doc/genesis-tools/masto_restart.log"
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
{
echo "[$TIMESTAMP] === Mastodon Restart Initiated ==="
# === Restart Mastodon Services ===
echo "[*] Connecting to $SERVER to restart Mastodon services..."
ssh "$SERVER" bash << 'EOF'
echo "Restarting mastodon-web..."
systemctl restart mastodon-web
echo "Restarting mastodon-sidekiq..."
systemctl restart mastodon-sidekiq
echo "Restarting mastodon-streaming..."
systemctl restart mastodon-streaming
echo "All services restarted."
EOF
# === Wait Until Mastodon API is Responsive ===
echo "[*] Waiting for Mastodon to come back online..."
until curl -sf "$MASTODON_INSTANCE/api/v1/instance" > /dev/null; do
echo " ... still starting up, retrying in 5s"
sleep 5
done
echo "[+] Mastodon is back online."
# === Post Toot ===
echo "[*] Posting status to Mastodon..."
curl -s -X POST "$MASTODON_INSTANCE/api/v1/statuses" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d "status=$TOOT_TEXT" \
-d "visibility=$TOOT_VISIBILITY" > /dev/null && echo "[✓] Status posted."
# === Telegram Notification ===
echo "[*] Sending Telegram alert..."
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
-d chat_id="$TELEGRAM_CHAT_ID" \
-d text="$TELEGRAM_TEXT" > /dev/null && echo "[✓] Telegram alert sent."
echo "[✓] All tasks complete. Logged out of $SERVER."
echo "[$TIMESTAMP] === Mastodon Restart Complete ==="
echo ""
} >> "$LOG_FILE" 2>&1