On Debian 13:
sudo apt update
sudo apt install -y python3 python3-pip python3-venv git nginx sqlite3
On RHEL 10:
sudo dnf install -y python3 python3-pip git nginx sqlite
cd /opt
sudo git clone https://github.com/edmond-ai/edmon.git
sudo chown -R $USER:$USER /opt/edmon
cd /opt/edmon
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
Copy example configuration:
cp config.example.py config.py
nano config.py
Key settings to configure:
# Database configuration
DATABASE_PATH = '/opt/edmon/data/edmon.db'
# Server settings
HOST = '0.0.0.0'
PORT = 5000
DEBUG = False
# Authentication
SECRET_KEY = 'your-secret-key-here'
USERNAME = 'admin'
PASSWORD = 'your-secure-password'
# Monitoring settings
CHECK_INTERVAL = 60 # seconds
Create data directory:
mkdir -p /opt/edmon/data
source venv/bin/activate
python manage.py initdb
sudo tee /etc/systemd/system/edmon.service >/dev/null <<'EOF'
[Unit]
Description=Edmon Monitoring System
After=network.target
[Service]
Type=simple
User=www-data
Group=www-data
WorkingDirectory=/opt/edmon
Environment="PATH=/opt/edmon/venv/bin"
ExecStart=/opt/edmon/venv/bin/python manage.py runserver
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
On RHEL, change www-data to nginx.
Enable and start:
sudo systemctl daemon-reload
sudo systemctl enable --now edmon
Create Nginx configuration:
sudo tee /etc/nginx/sites-available/edmon >/dev/null <<'EOF'
server {
listen 80;
server_name edmon.example.com;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
EOF
On Debian 13:
sudo ln -s /etc/nginx/sites-available/edmon /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
On RHEL 10:
sudo ln -s /etc/nginx/sites-available/edmon /etc/nginx/conf.d/edmon.conf
sudo nginx -t
sudo systemctl restart nginx
Edmon can monitor remote hosts via SSH or agent.
Configure SSH key authentication:
ssh-keygen -t ed25519 -f /opt/edmon/.ssh/edmon_key -N ""
sudo cp /opt/edmon/.ssh/edmon_key.pub /home/remoteuser/.ssh/authorized_keys
Add hosts to Edmon configuration:
HOSTS = [
{
'name': 'server1',
'hostname': '192.168.1.100',
'username': 'monitor',
'key_file': '/opt/edmon/.ssh/edmon_key'
}
]
On remote hosts:
cd /opt
git clone https://github.com/edmond-ai/edmon-agent.git
cd edmon-agent
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
On UFW:
sudo ufw allow 80/tcp
sudo ufw allow 5000/tcp
On firewalld:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-port=5000/tcp
sudo firewall-cmd --reload
Open http://SERVER_IP or http://edmon.example.com to access the Edmon dashboard.
Log in with the credentials configured in config.py.
Edmon collects:
See Edmon Hardening.
Need professional assistance with your monitoring infrastructure? Our team provides:
Get in touch: office@linux-server-admin.com | Contact Page
Prefer automation? See Edmon Ansible Setup for an example playbook.
Prefer containers? See Edmon Docker Setup.
See Edmon Configuration for configuration guidance.
See Edmon Security for hardening guidance.