'Hosts', 'subtitle' => 'Proxmox hosts and capacity.', 'add' => 'Add host', 'empty' => 'No hosts yet. Add your first server.', 'no_matches' => 'No hosts match these filters.', 'search_placeholder' => 'Search by name or IP …', 'all_datacenters' => 'All datacenters', 'all_statuses' => 'All statuses', 'clear' => 'Clear', 'count' => ':shown of :total', 'col' => [ 'host' => 'Host', 'datacenter' => 'DC', 'health' => 'Health', 'vpn' => 'VPN', 'instances' => 'Instances', 'capacity' => 'Capacity', 'status' => 'Status', ], 'health' => [ 'online' => 'Online', 'stale' => 'Stale', 'offline' => 'Offline', ], 'vpn' => [ 'not_configured' => 'Not configured', 'connected' => 'Connected', 'silent' => 'Silent', 'silent_since' => 'Silent · :time', 'unknown' => 'Unknown', ], 'create_title' => 'Add host', 'create_sub' => 'Onboard a fresh server (Debian, root only) as a Proxmox host automatically.', 'back' => 'Back to hosts', 'cancel' => 'Cancel', 'save' => 'Start onboarding', 'field' => [ 'name' => 'Name', 'name_hint' => 'e.g. pve-fsn-4', 'datacenter' => 'Datacenter', 'public_ip' => 'Public IP', 'root_password' => 'Root password (one-time)', 'root_password_hint' => 'Used for the first login only. Discarded after the SSH key is deployed — never stored permanently.', ], 'datacenter' => [ 'fsn' => 'Falkenstein', 'hel' => 'Helsinki', ], 'capacity' => 'Capacity', 'free' => 'free', 'unknown' => '—', 'meta' => [ 'cores' => 'Cores', 'ram' => 'RAM', 'version' => 'Version', 'wg_ip' => 'Mgmt IP', 'datacenter' => 'DC', ], 'status' => [ 'pending' => 'Pending', 'onboarding' => 'Onboarding', 'active' => 'Active', 'error' => 'Error', 'disabled' => 'Disabled', ], 'detail' => [ 'health' => 'Health', 'storage' => 'Storage', 'compute' => 'Compute', 'node' => 'Node', 'instances' => 'Instances', 'hosted' => 'Hosted instances', 'no_instances' => 'No instances running on this host yet.', 'last_seen' => 'Last seen :time', 'never_seen' => 'Never seen', 'committed' => ':gb GB committed', 'reserve' => ':pct % reserve', 'reserve_label' => 'Reserve', 'reserve_save' => 'Save', 'reserve_saved' => 'Reserve updated.', 'drain' => 'Maintenance', 'activate' => 'Activate', ], 'istatus' => [ 'active' => 'Active', 'provisioning' => 'Provisioning', 'failed' => 'Failed', 'suspended' => 'Suspended', 'cancellation_scheduled' => 'Cancelling', ], 'progress' => 'Progress', 'events' => 'Events', 'no_run' => 'No provisioning run for this host.', 'attempt' => 'Attempt', 'retry' => 'Retry', 'error_title' => 'Onboarding failed', 'remove' => 'Remove host', 'remove_title' => 'Remove host?', 'remove_body' => 'Removes only the CluPilot record for :name. The physical server is NOT deleted or wiped.', 'remove_confirm' => 'Remove', 'outcome' => [ 'advanced' => 'Advanced', 'retry' => 'Retry', 'failed' => 'Failed', 'info' => 'Info', ], 'step' => [ 'validate_host_input' => 'Validate input', 'establish_ssh_trust' => 'Establish SSH trust', 'prepare_base_system' => 'Prepare base system', 'configure_wireguard' => 'Configure WireGuard', 'install_proxmox_ve' => 'Install Proxmox VE', 'reboot_into_pve_kernel' => 'Reboot into Proxmox kernel', 'configure_proxmox' => 'Configure Proxmox', 'create_automation_token' => 'Create automation token', 'verify_proxmox_api' => 'Verify Proxmox API', 'verify_vm_template' => 'Verify VM template', 'register_host_dns' => 'Register internal DNS name', 'register_capacity' => 'Register capacity', 'secure_host_firewall' => 'Secure host firewall', 'complete_host_onboarding' => 'Complete onboarding', ], 'takeover' => [ 'eyebrow' => 'Host takeover', 'how_title' => 'How a host takeover works', 'how_sub' => 'Six steps, roughly 20 to 40 minutes. The first two happen at the provider.', 'rail_title' => 'Procedure', 'badge_before' => 'first', 's1_label' => 'Order server', 's2_label' => 'Rescue system', 's3_label' => 'Add host', 's4_label' => 'Copy line', 's5_label' => 'Paste', 's6_label' => 'Watch', 's1_title' => 'Order the server', 's1_body' => 'Dedicated, not cloud. Without /dev/kvm no guest will start, and the script turns the machine away.', 's2_title' => 'Boot the rescue system', 's2_body' => 'Enable it AND restart. If the server is still in the old system the script refuses — it overwrites disks.', 's3_title' => 'Add the host', 's3_body' => 'The fields below. The one-time code is created after that, and its 24-hour window starts.', 's4_title' => 'Copy the command line', 's4_body' => 'It appears after saving and is shown exactly once.', 's5_title' => 'Paste it into the rescue system', 's5_body' => 'SSH in as root, paste, press enter. Nothing typed out, nothing filled in.', 's5_hint' => 'Fetches the installer from :url and starts it. The server downloads nothing else.', 's6_title' => 'Watch', 's6_body' => 'Progress appears on the host page. Until the tunnel is up the server reports nothing — then everything arrives at once.', 'requirements_title' => 'At the provider, first', 'requirements_sub' => 'Both have to be done before you save below — the code starts expiring the moment you do.', 'form_title' => 'The host', 'form_sub' => 'Four fields. The server works out the rest itself.', 'command_title' => 'The command line', 'command_sub' => 'Paste into the rescue system as root. It carries everything the server needs before the tunnel.', 'after_title' => 'Then', 'missing_title' => 'The tunnel is not set up yet', 'missing_body' => 'Missing: :settings. Without these the line runs and ends in a tunnel that never handshakes — and that only shows up on the machine.', 'title' => ':name is created', 'subtitle' => 'Three steps left, then the server does the rest on its own.', 'once_title' => 'This line exists only now', 'once_body' => 'The database holds only the hash of the code, and not the WireGuard key at all. Reloading does not bring it back — it mints a new code, and the old one becomes worthless.', 'watch' => 'Watch progress', 'copy' => 'Copy', 'copied' => 'Copied', 'footnote' => 'The code is valid for 24 hours and can be redeemed once. If the takeover stops, the machine is reinstalled rather than repaired — see docs/runbooks/host-bootstrap.md.', ], ];