Installation
Quick Install (Recommended)
One command handles everything: system packages, service user, venv, config, systemd service, network capabilities, and optionally ZeroTier + Tailscale.
bash
bash <(curl -fsSL https://raw.githubusercontent.com/jmobastos/projectmind_314lan/main/scripts/install.sh)Takes ~2 minutes on a fresh host. After install, open:
http://<HOST_IP>:8080Default login: admin / m1nd
Change Default Password
Change the default password immediately in Settings > General.
Manual Installation
1. System Packages
bash
sudo apt-get update
sudo apt-get install -y \
git python3 python3-pip python3-venv python3-dev \
iputils-ping traceroute curl iproute2 net-tools \
libssl-dev libffi-dev build-essential ca-certificates2. Clone Repository
bash
sudo git clone https://github.com/jmobastos/projectmind_314lan.git /opt/m1nd3. Service User & Permissions
bash
sudo useradd --system --no-create-home --shell /usr/sbin/nologin m1nd
sudo chown -R m1nd:m1nd /opt/m1nd
sudo chmod 750 /opt/m1nd4. Python Virtual Environment
bash
sudo -u m1nd python3 -m venv /opt/m1nd/.venv
sudo -u m1nd /opt/m1nd/.venv/bin/pip install --upgrade pip
sudo -u m1nd /opt/m1nd/.venv/bin/pip install -r /opt/m1nd/requirements.txt5. Configuration
bash
sudo -u m1nd cp /opt/m1nd/config.yaml.example /opt/m1nd/config.yamlSee the Configuration page for details on customising config.yaml.
6. Data Directories
bash
sudo mkdir -p /opt/m1nd/data/ssl /opt/m1nd/data/.backups
sudo chown -R m1nd:m1nd /opt/m1nd/data7. systemd Service
The service runs as the unprivileged m1nd user. AmbientCapabilities grants ICMP/raw-socket access for ping and CAP_NET_BIND_SERVICE for ports 80/443 — no root needed.
bash
sudo tee /etc/systemd/system/m1nd.service > /dev/null <<'EOF'
[Unit]
Description=m1nd Network Synthetic Monitor
Documentation=https://github.com/jmobastos/projectmind_314lan
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=m1nd
Group=m1nd
WorkingDirectory=/opt/m1nd
ExecStart=/opt/m1nd/.venv/bin/python3 /opt/m1nd/main.py
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal
# Raw sockets (ping/traceroute) + privileged ports (80/443)
AmbientCapabilities=CAP_NET_RAW CAP_NET_ADMIN CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN CAP_NET_BIND_SERVICE
# Hardening
NoNewPrivileges=yes
PrivateTmp=yes
ProtectSystem=full
ReadWritePaths=/opt/m1nd/data /opt/m1nd/config.yaml
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now m1nd
sudo systemctl status m1ndVerify Installation
bash
sudo systemctl status m1nd
curl -s http://localhost:8080 | head -5Troubleshooting
Next Steps
- Quick Start — get monitoring in 5 minutes
- Configure your monitoring targets and SNMP settings
- Deploy with ZeroTier or Tailscale for OOB access