Skip to content

diegogslomp/django-monitor

Repository files navigation

Django Monitor

gh-actions license gitHub release (latest by date)

Ping devices and check port status from routers/switches through telnet connection. Telnet tested on Enterasys S8, G3 and A4 switch series.

  1. Run docker image:
docker run -d --restart=unless-stopped \
  -e SECRET_KEY='change_this!o)=4*s#n' \
  -e TIME_ZONE='America/Sao_Paulo' \
  -e DJANGO_ALLOW_ASYNC_UNSAFE=True \
  -v monitor:/usr/src/app \
  -p 8000:8000 \
  --name monitor diegogslomp/django-monitor
  1. Create superuser to access admin dashboard:
docker exec -it monitor python manage.py createsuperuser
  1. Populate DB (optional):
docker exec monitor python manage.py loaddata initial_data
  1. Visit http://localhost:8000

  2. Visit http://localhost:8000/admin to create hosts

  3. To send telegram bot messages, add TELEGRAM_CHAT_ID and TELEGRAM_TOKEN to the docker run command

  4. Clean up:

 docker stop monitor; docker rm monitor; docker volume rm monitor
  1. For PostgreSQL as DB, clone, build and run:
git clone --single-branch --recurse-submodules https://github.com/diegogslomp/django-monitor.git
cd django-monitor
docker compose build --pull
docker compose up -d && docker compose logs -f
docker compose exec -it monitor python manage.py createsuperuser
  1. For local deployment:
git clone --single-branch --recurse-submodules https://github.com/diegogslomp/django-monitor.git
cd django-monitor

# Copy/Edit environment variables file
cp .env.example .env

# Create and activate a virtual environment (optional)
python -m pipenv install
python -m pipenv shell

# Install dependencies
pip install -r requirements
python manage.py createsuperuser
python manage.py makemigrations
python manage.py migrate --no-input
python manage.py collectstatic --no-input

# Populate DB (optional)
python manage.py loaddata initial_data

# Start web app
python manage.py runserver 0.0.0.0:8000

# Start monitord in another terminal
python manage.py monitord