{% extends "base.html" %} {% block title %}Dashboard - PyRunner{% endblock %} {% block content %}
{% include "cpanel/_sidebar.html" %}
{% if system_health.worker_status == 'stopped' %}
Workers Stopped — Scheduled scripts and queued tasks will not run. Start the worker with python manage.py qcluster
{% endif %} {% if system_health.schedules_paused %}
Schedules Paused — All scheduled script executions are paused. Resume in Settings
{% endif %}

Dashboard

Welcome back, {{ user.email }}

Workers: {{ system_health.worker_status_text }}

System Resources

{{ system_resources.cpu.percent|floatformat:1 }}%
CPU Usage
{{ system_resources.memory.percent|floatformat:1 }}%
RAM Usage
{{ system_resources.memory.used_display }} / {{ system_resources.memory.total_display }}
{{ system_resources.disk.percent|floatformat:1 }}%
Storage Usage
{{ system_resources.disk.used_display }} / {{ system_resources.disk.total_display }}

Recent Failures

View all
{% if recent_failures %}
    {% for run in recent_failures %}
  • {{ run.script.name }}

    {% if run.status == 'failed' %}Failed{% else %}Timeout{% endif %} {% if run.duration_display %} - {{ run.duration_display }}{% endif %}

    {{ run.created_at|timesince }} ago
  • {% endfor %}
{% else %}

No recent failures

{% endif %}

Upcoming Runs

View scripts
{% if upcoming_runs %}
    {% for schedule in upcoming_runs %}
  • {{ schedule.script.name }}

    {{ schedule.schedule_display }}

    in {{ schedule.next_run|timeuntil }}
  • {% endfor %}
{% else %}

No scheduled runs

Schedule a script
{% endif %}

Recent Scripts

View all
{% if recent_scripts %}
    {% for script in recent_scripts %}
  • {{ script.name }}

    {{ script.environment.name }} {% if not script.is_enabled %} (disabled){% endif %}

    {% if script.is_enabled %}
    {% csrf_token %}
    {% endif %}
    {% csrf_token %}
  • {% endfor %}
{% else %}

No scripts yet.

Create your first script
{% endif %}

Recent Runs

View all
{% if recent_runs %}
    {% for run in recent_runs %}
  • {% if run.status == 'success' %} {% elif run.status == 'failed' or run.status == 'timeout' %} {% elif run.status == 'running' %} {% else %} {% endif %}
    {{ run.script.name }}

    {% if run.status == 'success' %}Success{% elif run.status == 'failed' %}Failed{% elif run.status == 'timeout' %}Timeout{% elif run.status == 'running' %}Running{% elif run.status == 'pending' %}Pending{% else %}{{ run.status }}{% endif %} {% if run.duration_display %} - {{ run.duration_display }}{% endif %}

    {{ run.created_at|timesince }} ago
  • {% endfor %}
{% else %}

No runs yet.

Run a script
{% endif %}
{% endblock %} {% block extra_scripts %} {% endblock %}