Status

{% if health.status == "ok" %}

Healthy

{% else %}

Degraded

{% endif %}

App: {{ health.app_name }}

Host: {{ health.hostname }}

Toronto Time: {{ health.server_time_toronto }}

UTC Time: {{ health.server_time_utc }}

Database

{% if health.database.ok %}

Connected

{% else %}

Connection Error

{% endif %}

Error: {{ health.database.error or "None" }}

Uptime

Application: {{ health.app_uptime_human }}

Server: {{ health.server_uptime_human }}

Load Average

1 min: {{ health.load_average["1m"] }}

5 min: {{ health.load_average["5m"] }}

15 min: {{ health.load_average["15m"] }}

Memory

Total: {{ health.memory.total_mb }} MB

Available: {{ health.memory.available_mb }} MB

Used: {{ health.memory.used_mb }} MB

Used %: {{ health.memory.used_percent }}%

Disk /

Total: {{ health.disk_root.total_gb }} GB

Used: {{ health.disk_root.used_gb }} GB

Free: {{ health.disk_root.free_gb }} GB

Used %: {{ health.disk_root.used_percent }}%

Operations Bal

{% if health.operations_balances %} {% for asset in health.operations_balances.assets %}

{% if asset.explorer_url %}{{ asset.coin }}{% else %}{{ asset.coin }}{% endif %}: {% if asset.ok %} {{ asset.balance }} {% else %} error {% endif %}

{% endfor %}

Wallet: {{ health.operations_balances.wallet }}

{% else %}

Not available

{% endif %}

Treasury Bal

{% if health.treasury_balances %} {% for asset in health.treasury_balances.assets %}

{% if asset.explorer_url %}{{ asset.coin }}{% else %}{{ asset.coin }}{% endif %}: {% if asset.ok %} {{ asset.balance }} {% else %} error {% endif %}

{% endfor %}

Wallet: {{ health.treasury_balances.wallet }}

{% else %}

Not available

{% endif %}

Crypto Reconcile

{% if health.crypto_reconcile %}

Timer: {% if health.crypto_reconcile.timer_active == "active" %} {{ health.crypto_reconcile.timer_active }} {% else %} {{ health.crypto_reconcile.timer_active }} {% endif %}

Service: {{ health.crypto_reconcile.service_active }}

Last Run: {{ health.crypto_reconcile.last_run }}

Last Result: {{ health.crypto_reconcile.last_result }}

{% if health.crypto_reconcile.payment_stats and health.crypto_reconcile.payment_stats.available %}

Pending: {{ health.crypto_reconcile.payment_stats.pending }}

Confirmed Today: {{ health.crypto_reconcile.payment_stats.confirmed_today }}

Stale Pending: {% if health.crypto_reconcile.payment_stats.stale_pending and health.crypto_reconcile.payment_stats.stale_pending > 0 %} {{ health.crypto_reconcile.payment_stats.stale_pending }} {% else %} {{ health.crypto_reconcile.payment_stats.stale_pending }} {% endif %}

{% elif health.crypto_reconcile.payment_stats %}

Stats: unavailable

Error: {{ health.crypto_reconcile.payment_stats.error }}

{% endif %}
{% if request.args.get("reconcile") == "started" %}

Manual reconcile started.

{% elif request.args.get("reconcile") == "failed" %}

Manual reconcile failed to start.

{% elif request.args.get("reconcile") == "missing-worker" %}

Worker script missing.

{% endif %} {% else %}

Not available

{% endif %}
{% include "footer.html" %}