{% extends "base.html" %} {% import "macros/ui.html" as m %} {% block title %}{{ ws_name }} · {{ srv_name }}{% endblock %} {% block nav_workspaces %}btn-active{% endblock %} {% block content %} {{ m::ws_tabs(ws_name=ws_name, active=ws_active_tab, ws_envs=ws_envs, ws_has_clusters=ws_has_clusters, ws_has_workflows=ws_has_workflows, current_env=current_env) }} {% if server %}

{{ server.name }}

{{ m::server_status(status=server.status) }} {% if server.server_type %} {{ server.server_type.name }} {% endif %} {% if srv_role == "ControlPlane" %} ControlPlane {% elif srv_role == "Worker" %} Worker {% elif srv_role == "LoadBalancer" %} LoadBalancer {% endif %}
{# ── provider + infra row ─────────────────────────────────────────────── #}
hetzner {% if server.server_type %}{{ server.server_type.name }}{% endif %} {% if server.datacenter %}{{ server.datacenter.location.name }}{% endif %} id={{ server.id }}
Public IPv4
{% if server.public_net and server.public_net.ipv4 %}{{ server.public_net.ipv4.ip }}{% else %}—{% endif %}
Floating IP
{% if srv_cache and srv_cache.floating_ip_address %} {{ srv_cache.floating_ip_address }}
{{ srv_cache.floating_ip }}
{% else %}—{% endif %}
Private IP
{% if server.private_net %}{% set pn = server.private_net | first %}{% if pn %}{{ pn.ip }}{% else %}—{% endif %}{% else %}—{% endif %}
{% if server.server_type %}
vCPU / RAM
{{ server.server_type.cores }}c / {{ server.server_type.memory }}GB
Disk
{{ server.server_type.disk }}GB
{% endif %}
Protection
{% if srv_cache and srv_cache.protection_delete %} del {% elif server.protection and server.protection.delete %} del {% else %}—{% endif %}
{% if server.created %}
Created
{{ server.created | truncate(length=10, end="") }}
{% endif %} {% if server.datacenter %}
Datacenter
{{ server.datacenter.name | default(value="—") }}
{% if server.datacenter.location %}
{{ server.datacenter.location.description | default(value="") }}
{% endif %}
{% endif %}
{# ── cache sync ────────────────────────────────────────────────────────── #}
{% if srv_cache and srv_cache.last_sync %} cache sync: {{ srv_cache.last_sync }} {% endif %}
{% if server.image %}

Image

{{ server.image.name | default(value=server.image.description) }} {{ server.image.os_flavor }} {{ server.image.os_version | default(value="?") }}
{% endif %} {% if server.labels %}

Labels

{% for k, v in server.labels %} {{ k }}={{ v }} {% endfor %}
{% endif %} {% if srv_scale and srv_scale != "" %}
Scale Policy {{ srv_scale.min }}–{{ srv_scale.max }} nodes
role
{{ srv_scale.role }}
min nodes
{{ srv_scale.min }}
max nodes
{{ srv_scale.max }}
{% if srv_scale.template %}
template
{% if srv_scale.template.server_type %}
server_type
{{ srv_scale.template.server_type }}
{% endif %} {% if srv_scale.template.location %}
location
{{ srv_scale.template.location }}
{% endif %} {% if srv_scale.template.hostname_pattern %}
hostname_pattern
{{ srv_scale.template.hostname_pattern }}
{% endif %} {% if srv_scale.template.private_network %}
private_network
{{ srv_scale.template.private_network }}
{% endif %} {% if srv_scale.template.ip_range_prefix %}
ip_range_prefix
{{ srv_scale.template.ip_range_prefix }}.x
{% endif %} {% if srv_scale.template.image_role %}
image_role
{{ srv_scale.template.image_role }}
{% endif %} {% if srv_scale.template.architecture %}
architecture
{{ srv_scale.template.architecture }}
{% endif %}
{% endif %}
{% endif %} {# ── hcloud attached volumes (enriched) ──────────────────────────────── #} {% if hcloud_volumes and hcloud_volumes | length > 0 %}

Attached Volumes

{% for vol in hcloud_volumes %}
{{ vol.name | default(value=vol.id) }} {% if vol.size %}{{ vol.size }}GB{% endif %} {% if vol.location and vol.location.name %}{{ vol.location.name }}{% endif %} {% if vol.status %}{{ vol.status }}{% endif %} {% if vol.linux_device %}{{ vol.linux_device }}{% endif %}
{% endfor %}
{% elif server.volumes and server.volumes | length > 0 %}

Attached Volumes

{% for vol in server.volumes %} vol-{{ vol }} {% endfor %}
{% endif %} {# ── declared volumes (from servers.ncl) ─────────────────────────────── #} {% if srv_volumes_declared and srv_volumes_declared | length > 0 %}

Declared Volumes

{% for vol in srv_volumes_declared %}
{{ vol.name }} {{ vol.size_gb }}GB {{ vol.mount_path }} {{ vol.type }}
{% endfor %}
{% endif %} {% if server.private_net %}

Private Networks

{% for net in server.private_net %}
{{ net.ip }} net-id:{{ net.network }} {% if net.alias_ips and net.alias_ips | length > 0 %} aliases: {{ net.alias_ips | join(sep=", ") }} {% endif %}
{% endfor %}
{% endif %} {# ── DAG taskserv deployment history ──────────────────────────────────── #} {% if dag_taskservs and dag_taskservs | length > 0 %}

DAG

{{ dag_deployed }}/{{ dag_total }} deployed
{% for ts in dag_taskservs %}
{% if ts.state == "completed" %} {% elif ts.state == "failed" %} {% elif ts.state == "running" %} {% else %} {% endif %} {{ ts.name }} {{ ts.state }} {% if ts.ended_at %} {{ ts.ended_at | truncate(length=16, end="") }} {% endif %}
{% endfor %}
{% endif %} {# ── provider live (hcloud describe) ──────────────────────────────────── #} {% if server %}

Provider · Hetzner Cloud live

server {{ server.name }} id {{ server.id }} status {{ m::server_status(status=server.status) }} {% if server.server_type %} type {{ server.server_type.name }} {{ server.server_type.cores }}vCPU · {{ server.server_type.memory }}GB RAM · {{ server.server_type.disk }}GB disk {% endif %} {% if server.datacenter %} datacenter {{ server.datacenter.name }} {% if server.datacenter.location %}{{ server.datacenter.location.description | default(value="") }}{% endif %} {% endif %} {% if server.public_net and server.public_net.ipv4 %} public IPv4 {{ server.public_net.ipv4.ip }} {% endif %} {% if server.public_net and server.public_net.ipv6 %} public IPv6 {{ server.public_net.ipv6.ip }} {% endif %} {% if srv_cache and srv_cache.floating_ip_address %} floating IP {{ srv_cache.floating_ip_address }} {{ srv_cache.floating_ip | default(value="") }} {% endif %} {% if server.private_net %} {% for net in server.private_net %} {% if loop.first %}private IP{% else %} {% endif %} {{ net.ip }} net-id:{{ net.network }} {% if net.alias_ips and net.alias_ips | length > 0 %}aliases: {{ net.alias_ips | join(sep=", ") }}{% endif %} {% endfor %} {% endif %} {% if hcloud_volumes and hcloud_volumes | length > 0 %} {% for vol in hcloud_volumes %} {% if loop.first %}volumes{% else %} {% endif %} {{ vol.name | default(value=vol.id) }} {% if vol.size %}{{ vol.size }}GB{% endif %} {% if vol.linux_device %}{{ vol.linux_device }}{% endif %} {% endfor %} {% endif %} {% if server.image %} image {{ server.image.name | default(value=server.image.description) }} {{ server.image.os_flavor }} {{ server.image.os_version | default(value="") }} {% endif %} {% if server.labels %} labels {% for k, v in server.labels %} {{ k }}={{ v }} {% endfor %} {% endif %} {% if server.created %} created {{ server.created | truncate(length=19, end="") }} {% endif %} protection {% if server.protection and server.protection.delete %} delete {% else %} none {% endif %}
{% endif %}
{% else %}
Server {{ srv_name }} not found or HCLOUD_TOKEN not set.
{% endif %}
← Back to Servers
{% endblock %}