Initial commit for Synology Monitor

This commit is contained in:
2026-06-08 11:34:15 +05:30
commit 95cbc025fe
6 changed files with 553 additions and 0 deletions

56
deploy.sh Normal file
View File

@@ -0,0 +1,56 @@
#!/usr/bin/env bash
# ─────────────────────────────────────────────────────────────────────────────
# deploy.sh Install & start the Synology Monitor on a Linux/VPS server
# Usage: sudo bash deploy.sh
# ─────────────────────────────────────────────────────────────────────────────
set -euo pipefail
INSTALL_DIR="/opt/synology-monitor"
SERVICE_USER="monitor"
SERVICE_FILE="synology-monitor.service"
echo "=== Synology Monitor Deployment ==="
# 1. Create a dedicated system user (no login shell)
if ! id "$SERVICE_USER" &>/dev/null; then
echo "[+] Creating system user: $SERVICE_USER"
sudo useradd --system --no-create-home --shell /usr/sbin/nologin "$SERVICE_USER"
fi
# 2. Copy files to install directory
echo "[+] Installing files to $INSTALL_DIR"
sudo mkdir -p "$INSTALL_DIR"
sudo cp monitor.py requirements.txt "$INSTALL_DIR/"
# 3. Create .env from example (if not already present)
if [ ! -f "$INSTALL_DIR/.env" ]; then
echo "[+] Copying .env.example → $INSTALL_DIR/.env"
sudo cp .env.example "$INSTALL_DIR/.env"
echo " ⚠️ Edit $INSTALL_DIR/.env before starting the service!"
fi
# 4. Set up Python virtual environment
echo "[+] Creating Python virtual environment"
sudo python3 -m venv "$INSTALL_DIR/venv"
sudo "$INSTALL_DIR/venv/bin/pip" install --quiet --upgrade pip
sudo "$INSTALL_DIR/venv/bin/pip" install --quiet -r "$INSTALL_DIR/requirements.txt"
# 5. Fix permissions
sudo chown -R "$SERVICE_USER":"$SERVICE_USER" "$INSTALL_DIR"
sudo chmod 600 "$INSTALL_DIR/.env"
# 6. Install and enable systemd service
echo "[+] Installing systemd service"
sudo cp "$SERVICE_FILE" /etc/systemd/system/
sudo systemd-analyze verify /etc/systemd/system/"$SERVICE_FILE" || true
sudo systemctl daemon-reload
sudo systemctl enable "$SERVICE_FILE"
echo ""
echo "=== Deployment complete ==="
echo ""
echo "NEXT STEPS:"
echo " 1. Edit credentials: sudo nano $INSTALL_DIR/.env"
echo " 2. Start the service: sudo systemctl start synology-monitor"
echo " 3. View logs: sudo journalctl -u synology-monitor -f"
echo ""