Initial commit for Synology Monitor
This commit is contained in:
56
deploy.sh
Normal file
56
deploy.sh
Normal 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 ""
|
||||
Reference in New Issue
Block a user