upserver it is a free monitoring tool with repair option.
You can specify the ip of your server, login and password.
If your server is unavailable, upserver will connect automatically
and execute restore commands.
Example of use:
- server monitoring
- uptime statistic
- log collectors
- server down alerting
Clone repository first:
git clone https://github.com/Sobolev5/upserver
mv .env.example .envChange variables in .env file:
# ADMIN USER
ADMIN_USER=admin
ADMIN_PASSWORD=admin
# INTERFACE [CHANGE SECRET KEY]
SECRET_KEY=django-insecure-@x5%xegdelq=s!fybiup=pktful_+!t%x42y1!hh_=-p71kz9s
DEBUG=0
# DATABASE
POSTGRES_HOST=upserver-postgres
POSTGRES_PORT=5432
POSTGRES_DB=db
POSTGRES_USER=admin
POSTGRES_PASSWORD=admin
# RABBITMQ
RABBITMQ_HOST=upserver-rabbitmq
RABBITMQ_PORT=5672
RABBITMQ_USER=admin
RABBITMQ_PASSWORD=admin
# ALERTS
ALERTS=1
TELEGRAM_BOT_TOKEN=telegram_bot_token
TELEGRAM_CHAT_IDS=chat_id_1, chat_id_2 # For get your own chat ID use https://t.me/myidbotStart upserver:
docker compose -f docker-compose.yml up --build -dRun initial script (Required):
docker exec upserver-interface python manage.py migrate
docker exec upserver-interface python run.py db_tasks "initial()"Add cron scheduler:
echo '* * * * * docker exec upserver-interface python /interface/run.py log_collector.tasks "run_every_minute()" &>/dev/null' >> /var/spool/cron/root
echo '* * * * * docker exec upserver-alerts python /alerts/run.py &>/dev/null' >> /var/spool/cron/root Open UI:
http://YOU_SERVER_IP:12345 # Here you can log in with ADMIN_USER and ADMIN_PASSWORDStart/stop upserver:
docker compose -f docker-compose.prod.yml up --build -dbStart/stop upserver in dev mode:
docker compose -f docker-compose.dev.yml up up --build -dRun tests:
docker compose -f docker-compose.test.yml up up --build -dGet shell:
docker exec -it upserver-interface bash
docker exec -it upserver-alerts bashClear logs:
docker exec upserver-interface python run.py db_tasks "clear_logs()"Watch consoles:
docker logs upserver-postgres --tail 100 --follow
docker logs upserver-rabbitmq --tail 100 --follow
docker logs upserver-interface --tail 100 --follow
docker logs upserver-alerts --tail 100 --follow
docker logs upserver-monitoring --tail 100 --followMigrate database (after pulling upserver updates):
docker exec upserver-interface python /interface/manage.py migrateBackup database:
docker compose exec -T upserver-postgres sh -c 'pg_dump -cU admin db' > upserver.sqlRestore from backup:
cat upserver.sql | docker exec -i upserver-postgres psql -U admin -d dbReinstall all:
docker compose down
docker system prune -a
docker rm -f $(docker ps -a -q)
docker volume rm $(docker volume ls -q)
docker compose -f docker-compose.yml up --build -d
docker exec upserver-interface python manage.py migrate
docker exec upserver-interface python run.py db_tasks "initial()"Upserver integrated with throw-catch from the box:
https://github.com/Sobolev5/throw-catch
So you can easy write your own log collector through RabbitMQ queues.
See log_collectors folder for examples.
