SYSTEMS // DAEMONS

{$t('daemons.title')}.

{$t('daemons.docker')}
{dockerConnected ? $t('daemons.online') : $t('daemons.offline')}
{#if !checked}
{:else if !dockerConnected}
{docker?.error ?? $t('daemons.dockerNotReachable')}

{$t('daemons.dockerHint')}

{:else}
{$t('daemons.containers')} {totalContainers}
{#if totalContainers > 0} {:else} {/if}
{$t('daemons.running')} {docker?.running ?? 0} {$t('daemons.paused')} {docker?.paused ?? 0} {$t('daemons.stopped')} {docker?.stopped ?? 0}
{$t('daemons.version')}
{docker?.version ?? '—'}
{$t('daemons.apiVersion')}
{docker?.api_version ?? '—'}
{$t('daemons.platform')}
{docker?.os ?? '—'}{docker?.arch ? ` · ${docker.arch}` : ''}
{$t('daemons.kernel')}
{docker?.kernel ?? '—'}
{$t('daemons.cpu')}
{docker?.ncpu ? `${docker.ncpu} cores` : '—'}
{$t('daemons.memory')}
{formatBytes(docker?.memory_total)}
{$t('daemons.storage')}
{docker?.storage_driver ?? '—'}
{$t('daemons.images')}
{docker?.images ?? 0}
{$t('daemons.latency')}
{formatMs(docker?.latency_ms)}
{$t('daemons.rootDir')}
{docker?.root_dir ?? '—'}
{/if}
{#if proxyProvider === 'npm'} {:else} {/if} {proxyProvider === 'npm' ? $t('daemons.npm') : proxyProvider === 'traefik' ? $t('daemons.traefik') : $t('daemons.proxy')}
{#if proxyProvider === 'none' || !proxy} {$t('daemons.notConfigured')} {:else} {proxyConnected ? $t('daemons.online') : $t('daemons.offline')} {/if}
{#if !checked}
{:else if proxyProvider === 'none' || !proxy}

{$t('daemons.noProxyDesc')}

{$t('daemons.configureProxy')} →
{:else if !proxyConnected}
{proxy.error ?? $t('daemons.notReachable', { provider: proxyProvider.toUpperCase() })}

{$t('daemons.proxyHint')}

{#if proxy.url}

URL {proxy.url}

{/if}
{:else} {#if proxyProvider === 'npm'} {@const total = proxy.proxy_hosts ?? 0} {@const managed = proxy.proxy_hosts_managed ?? 0} {@const external = Math.max(0, total - managed)} {@const managedPct = total > 0 ? (managed / total) * 100 : 0} {/if}
{$t('daemons.provider')}
{proxyProvider.toUpperCase()}
{$t('daemons.latency')}
{formatMs(proxy.latency_ms)}
{$t('daemons.endpoint')}
{proxy.url ?? '—'}
{/if}