{% extends "pobsync_backend/base.html" %} {% block title %}pobsync dashboard{% endblock %} {% block content %}

Dashboard

New host {% if global_config %}Edit global config{% else %}Create global config{% endif %}
{% if not global_config or not counts.hosts %}

Setup

{% if not global_config %}

No default global config exists yet. Create it first so discovery, backups, and retention know where pobsync stores snapshots.

Create global config
{% elif not counts.hosts %}

Global config is ready. Add the first host to make this dashboard useful.

Add first host
{% endif %}
{% endif %}
Hosts
{{ counts.enabled_hosts }}/{{ counts.hosts }}
Schedules
{{ counts.enabled_schedules }}/{{ counts.schedules }}
Snapshots
{{ counts.snapshots }}
Runs
{{ counts.runs }}
Running
{{ counts.running_runs }}
Failed
{{ counts.failed_runs }}
{% if stats_summary.runs_sampled %}
Backup Root Used
{{ stats_summary.capacity.used_percent|default:"" }}{% if stats_summary.capacity.used_percent is not None %}%{% endif %}
Available
{{ stats_summary.capacity.available_bytes|filesizeformat }}
Avg New Data
{{ stats_summary.avg_literal_data_bytes|filesizeformat }}
Avg Daily New
{{ stats_summary.avg_daily_literal_data_bytes|filesizeformat }}
Avg Duration
{{ stats_summary.avg_duration_seconds|default:"" }}{% if stats_summary.avg_duration_seconds is not None %}s{% endif %}
Link-Dest Savings
{{ stats_summary.link_dest_savings_ratio|default:"" }}
Runs Until Full
{{ stats_summary.estimated_runs_until_full|default:"" }}
Days Until Full
{{ stats_summary.estimated_days_until_full|default:"" }}
{% endif %}

Hosts

{% for host in hosts %}
{{ host.host }} {{ host.address }}
{{ host.enabled|yesno:"enabled,disabled" }}
Latest Snapshot
{% if host.latest_snapshot %} {{ host.latest_snapshot.dirname }}
{{ host.latest_snapshot.kind }} {{ host.latest_snapshot.status }}
{% else %} none {% endif %}
Latest Run
{% if host.stats_summary.latest_run.id %} Run {{ host.stats_summary.latest_run.id }}
{{ host.stats_summary.latest_run.run_type }} {{ host.stats_summary.latest_run.duration_seconds|default:"" }}{% if host.stats_summary.latest_run.duration_seconds is not None %}s{% endif %}
{% else %} none {% endif %}
Next Run
{% if host.next_run_at %} {{ host.next_run_at|date:"Y-m-d H:i T" }}
{{ scheduler_timezone }}
{% else %} none {% endif %}
Snapshots
{{ host.snapshot_count }}
Runs
{{ host.run_count }}
New Data
{{ host.stats_summary.latest_run.rsync.literal_data_bytes|filesizeformat }}
Retention
d{{ host.retention_daily }} w{{ host.retention_weekly }} m{{ host.retention_monthly }} y{{ host.retention_yearly }}
{% empty %}

No hosts configured yet.

{% endfor %}

Latest Runs

{% for run in latest_runs %} {% empty %} {% endfor %}
Host Status Started Ended Snapshot
{{ run.host.host }} {{ run.status }} {{ run.started_at|default:"" }} {{ run.ended_at|default:"" }} {% if run.snapshot %}{{ run.snapshot.dirname }}{% else %}{{ run.snapshot_path }}{% endif %}
No backup runs recorded yet.
{% endblock %}