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 }}%

Square / Revenue Health

{% if health.revenue_health and health.revenue_health.available %}

Square confirmed payments

Today: {{ health.revenue_health.square.today.count }} payment{% if health.revenue_health.square.today.count != 1 %}s{% endif %} | {{ health.revenue_health.square.today.cad_total_display }}

This Month: {{ health.revenue_health.square.month.count }} payment{% if health.revenue_health.square.month.count != 1 %}s{% endif %} | {{ health.revenue_health.square.month.cad_total_display }}

This Year: {{ health.revenue_health.square.year.count }} payment{% if health.revenue_health.square.year.count != 1 %}s{% endif %} | {{ health.revenue_health.square.year.cad_total_display }}


All confirmed payments

Today: {{ health.revenue_health.all_confirmed.today.count }} payment{% if health.revenue_health.all_confirmed.today.count != 1 %}s{% endif %} | {{ health.revenue_health.all_confirmed.today.cad_total_display }}

This Month: {{ health.revenue_health.all_confirmed.month.count }} payment{% if health.revenue_health.all_confirmed.month.count != 1 %}s{% endif %} | {{ health.revenue_health.all_confirmed.month.cad_total_display }}

This Year: {{ health.revenue_health.all_confirmed.year.count }} payment{% if health.revenue_health.all_confirmed.year.count != 1 %}s{% endif %} | {{ health.revenue_health.all_confirmed.year.cad_total_display }}

{% if health.revenue_health.last_payment %}

Last Payment: {{ health.revenue_health.last_payment.cad_total_display }} {{ health.revenue_health.last_payment.currency }}

When: {{ health.revenue_health.last_payment.payment_time }}

{% endif %} {% elif health.revenue_health %}

Unavailable

Error: {{ health.revenue_health.error }}

{% else %}

Unavailable

{% endif %}

Receivables Aging

{% if health.receivables_aging and health.receivables_aging.available %}

Total Unpaid: {{ health.receivables_aging.total_unpaid_display }}

Open Invoices: {{ health.receivables_aging.invoice_count }}


Current: {{ health.receivables_aging.current.count }} invoice{% if health.receivables_aging.current.count != 1 %}s{% endif %} | {{ health.receivables_aging.current.cad_total_display }}

1-30 Days: {{ health.receivables_aging.d1_30.count }} invoice{% if health.receivables_aging.d1_30.count != 1 %}s{% endif %} | {{ health.receivables_aging.d1_30.cad_total_display }}

31-60 Days: {{ health.receivables_aging.d31_60.count }} invoice{% if health.receivables_aging.d31_60.count != 1 %}s{% endif %} | {{ health.receivables_aging.d31_60.cad_total_display }}

61-90 Days: {{ health.receivables_aging.d61_90.count }} invoice{% if health.receivables_aging.d61_90.count != 1 %}s{% endif %} | {{ health.receivables_aging.d61_90.cad_total_display }}

90+ Days: {{ health.receivables_aging.d90_plus.count }} invoice{% if health.receivables_aging.d90_plus.count != 1 %}s{% endif %} | {{ health.receivables_aging.d90_plus.cad_total_display }}

{% elif health.receivables_aging %}

Unavailable

Error: {{ health.receivables_aging.error }}

{% else %}

Unavailable

{% endif %}

Operations Balance

{% 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 Balance

{% 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 %}
{% else %}

Not available

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