198 lines
7.1 KiB
PHP
198 lines
7.1 KiB
PHP
<?php
|
|
|
|
return [
|
|
'title' => '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.',
|
|
],
|
|
];
|