feat: expand dashboard with storage, network, and package management features while enhancing UI components and remote services

This commit is contained in:
2026-06-24 12:34:14 +02:00
parent 0c63b168a2
commit 82846f21d1
83 changed files with 7718 additions and 487 deletions
+318 -2
View File
@@ -16,6 +16,9 @@
"code": "Code",
"confirm_password": "Confirm password",
"continue_action": "Continue",
"copied": "Copied",
"copy": "Copy",
"copy_failed": "Failed to copy",
"create_account": "Create account",
"dashboard": "Dashboard",
"dashboard_architecture": "Architecture",
@@ -115,6 +118,17 @@
"email_verify_ignore": "If you didn't create an account, you can safely ignore this email.",
"email_verify_subject": "Verify your email address",
"enter_password_to_continue": "Confirm your password to continue",
"error_action_back": "Go back",
"error_action_home": "Go home",
"error_action_retry": "Try again",
"error_code_label": "Error {status}",
"error_details": "Details",
"error_generic_description": "Something went wrong while loading this page.",
"error_generic_title": "Unexpected error",
"error_not_found_description": "The page or resource you are looking for could not be found. It may have been removed, renamed, or never existed.",
"error_not_found_title": "Not found",
"error_unauthorized_description": "You do not have access to this resource. Try signing in again or contact your administrator.",
"error_unauthorized_title": "Access denied",
"errors_address_invalid": "Enter a valid URL, e.g. http://127.0.0.1:9999",
"errors_email_invalid": "Enter a valid email address",
"errors_generic": "An error occurred during this operation, please review Nadir Logs for more information.",
@@ -132,6 +146,7 @@
"forgot_password": "Forgot your password?",
"forgot_password_description": "Enter your email and we'll send you a reset link.",
"forgot_password_title": "Forgot your password?",
"groups": "Groups",
"groups_add": "Add group",
"groups_add_member": "Add member",
"groups_add_member_action": "add",
@@ -139,6 +154,9 @@
"groups_add_member_no_results": "No matching users.",
"groups_add_member_search_placeholder": "Search user…",
"groups_add_member_title": "Add member to {name}",
"groups_col_gid": "GID",
"groups_col_members": "Members",
"groups_gid_optional": "GID (optional)",
"groups_create_description": "Adds a Unix group via groupadd.",
"groups_create_field_system": "System group",
"groups_create_title": "Create group",
@@ -155,6 +173,7 @@
"groups_nav_description": "Unix groups from /etc/group on this machine.",
"groups_nav_title": "Groups",
"groups_no_results": "No groups found.",
"groups_remove_member_aria": "Remove {name}",
"groups_no_supplementary_members": "No supplementary members.",
"groups_not_found": "Group not found: {name}",
"groups_primary_empty": "None.",
@@ -165,6 +184,7 @@
"invalid_reset_link": "This link is invalid or has expired.",
"language": "Language",
"login": "Login",
"more": "More",
"login_social_description": "You have to login to use this platform. Use your favorite social or your credentials",
"login_with": "Login with <span class=capitalize>{social}</span>",
"logout": "Logout",
@@ -180,6 +200,7 @@
"machine_name": "Name",
"machine_name_placeholder": "Production server",
"machine_none": "No servers yet.",
"machine_offline": "Offline",
"machine_offline_code": "Error 502",
"machine_offline_description": "Could not reach the nadir-agent at {address}. The host may be down, the agent stopped, or the address is wrong.",
"machine_offline_details": "Show error details",
@@ -189,6 +210,8 @@
"machine_offline_status_connected": "CONNECTED",
"machine_offline_status_unreachable": "UNREACHABLE",
"machine_offline_title": "{name} is offline",
"machine_online": "Online",
"machine_refresh_health": "Refresh status",
"machine_save": "Add server",
"machine_save_edit": "Save changes",
"machine_search_placeholder": "Search servers…",
@@ -205,6 +228,29 @@
"nav_admin_users_desc": "Manage user accounts, roles and access.",
"nav_dashboard_overview": "Overview",
"nav_dashboard_overview_desc": "System status at a glance.",
"nav_networking": "Networking",
"nav_networking_desc": "Interfaces, routes, hosts, DNS.",
"nav_networking_dns": "DNS",
"nav_networking_dns_desc": "Nameservers from /etc/resolv.conf.",
"nav_networking_hosts": "Hosts",
"nav_networking_hosts_desc": "Static host entries in /etc/hosts.",
"nav_networking_interfaces": "Interfaces",
"nav_networking_interfaces_desc": "Network interfaces and their addresses.",
"nav_networking_routes": "Routes",
"nav_networking_routes_desc": "Kernel routing table.",
"nav_packages": "Packages",
"nav_packages_desc": "Manage installed packages and system updates.",
"nav_packages_installed": "Installed packages",
"nav_packages_installed_desc": "List, search, and remove installed software packages.",
"nav_packages_updates": "Available updates",
"nav_packages_updates_desc": "Check and install updates for existing packages.",
"nav_services": "Services",
"nav_services_desc": "Manage systemd service units.",
"nav_storage": "Storage",
"nav_storage_fstab": "Fstab",
"nav_storage_fstab_desc": "Persistent mount definitions in /etc/fstab.",
"nav_storage_mounts": "Mounts",
"nav_storage_mounts_desc": "Active filesystem mounts on this machine.",
"nav_system": "System",
"nav_system_datetime": "Date & Time",
"nav_system_datetime_desc": "Clock, timezone and time synchronisation.",
@@ -212,20 +258,129 @@
"nav_system_hostname_desc": "Identify this machine on the network.",
"nav_system_localization": "Localization",
"nav_system_localization_desc": "Language, locale and region settings.",
"nav_system_nadir": "Nadir Agent",
"nav_system_nadir_desc": "Active modules and user permissions.",
"nav_system_power": "Power",
"nav_system_power_desc": "Reboot or power off the machine.",
"nav_system_terminal": "Terminal",
"nav_system_terminal_desc": "Open an interactive terminal session on this host.",
"nav_users_groups": "Groups",
"nav_users_groups_desc": "Unix groups from /etc/group.",
"nav_users_system_users": "System users",
"nav_users_system_users_desc": "PAM/Unix accounts on this machine.",
"networking_apply": "Apply",
"networking_apply_confirm_body": "The agent will activate this configuration and auto-revert after {seconds}s unless you confirm. Make sure you can still reach the host after applying.",
"networking_apply_confirm_title": "Apply with rollback?",
"networking_apply_done": "Configuration applied — waiting for confirmation.",
"networking_col_destination": "Destination",
"networking_col_gateway": "Gateway",
"networking_col_hostnames": "Hostnames",
"networking_col_interface": "Interface",
"networking_col_ip": "IP",
"networking_col_ipv4": "IPv4",
"networking_col_ipv6": "IPv6",
"networking_col_mac": "MAC",
"networking_col_metric": "Metric",
"networking_col_mtu": "MTU",
"networking_col_name": "Name",
"networking_col_source": "Source",
"networking_col_state": "State",
"networking_configure": "Configure",
"networking_configure_description": "Apply addressing, gateway, DNS and static routes. Changes auto-rollback after the configured timeout unless confirmed.",
"networking_confirm": "Confirm",
"networking_confirmed": "Change confirmed.",
"networking_details": "Details",
"networking_dns_add": "Add nameserver",
"networking_dns_description": "Read-only view of the system resolver. Configure per interface.",
"networking_dns_per_interface_hint": "DNS is set per interface; there is no standalone write endpoint.",
"networking_dns_placeholder": "1.1.1.1",
"networking_dns_section": "DNS",
"networking_dns_section_hint": "Resolvers for this interface (IPv4 or IPv6).",
"networking_dns_servers": "Nameservers",
"networking_host_add": "Add host",
"networking_host_add_description": "Map an IP to one or more hostnames. Multiple names separated by spaces.",
"networking_host_edit": "Edit host",
"networking_host_remove": "Remove host",
"networking_host_remove_description": "This will delete the entry from /etc/hosts.",
"networking_host_remove_title": "Remove {ip}?",
"networking_host_removed": "Host entry removed.",
"networking_host_saved": "Host entry saved.",
"networking_hosts_description": "Static name-to-address mappings in /etc/hosts.",
"networking_hosts_search_placeholder": "Search by IP or hostname...",
"networking_interfaces_description": "Network interfaces and their current addresses.",
"networking_interfaces_search_placeholder": "Search by name, MAC, address...",
"networking_ipv4_section": "IPv4",
"networking_ipv4_section_hint": "Static address or DHCP.",
"networking_ipv6_section": "IPv6",
"networking_ipv6_section_hint": "Auto (SLAAC), static, or ignore to disable.",
"networking_link_down": "Bring down",
"networking_link_down_done": "Interface {name} brought down.",
"networking_link_up": "Bring up",
"networking_link_up_done": "Interface {name} brought up.",
"networking_method_dhcp": "DHCP",
"networking_method_ignore": "Ignore (disable)",
"networking_method_slaac": "Auto (SLAAC)",
"networking_method_static": "Static",
"networking_no_dns": "No nameservers configured.",
"networking_no_hosts": "No host entries.",
"networking_no_interfaces": "No interfaces.",
"networking_no_routes": "No routes.",
"networking_pending_banner": "Pending change on {iface} — auto-rollback in {seconds}s.",
"networking_rollback": "Rollback",
"networking_rollback_seconds": "Rollback timeout (seconds)",
"networking_rollback_seconds_hint": "Auto-revert after this many seconds unless confirmed. Leave 0 for the agent default (60s).",
"networking_rolled_back": "Change rolled back.",
"networking_route_add": "Add route",
"networking_route_destination": "Destination (CIDR or 'default')",
"networking_route_gateway": "Next-hop gateway",
"networking_routes_description": "Kernel routing table.",
"networking_routes_search_placeholder": "Search by destination, gateway, interface...",
"networking_routes_section": "Static routes",
"networking_routes_section_hint": "Optional routes installed alongside this interface.",
"new_password": "New password",
"no_account": "No account yet?",
"optional": "Optional",
"or": "Or",
"packages_col_name": "Package",
"packages_col_version": "Version",
"packages_install": "Install Package",
"packages_install_button": "Install",
"packages_install_desc": "Enter the name of the package you want to install from the repositories.",
"packages_install_failed": "Installation of package {name} failed.",
"packages_install_started": "Installing package {name}...",
"packages_install_success": "Package {name} installed successfully.",
"packages_installed": "Installed",
"packages_manager_label": "Package Manager",
"packages_no_packages": "No packages found.",
"packages_no_updates": "No updates available.",
"packages_remove_confirm_desc": "This will uninstall {name} from the host. Any dependent packages might also be affected.",
"packages_remove_confirm_title": "Remove {name}?",
"packages_remove_failed": "Removal of package {name} failed.",
"packages_remove_started": "Removing package {name}...",
"packages_remove_success": "Package {name} removed successfully.",
"packages_search_placeholder": "Search packages by name...",
"packages_stream_connection_error": "Connection Error: {message}",
"packages_stream_error": "ERROR: {message}",
"packages_stream_failed": "Operation failed.",
"packages_terminal_desc": "Streaming output from the package manager.",
"packages_terminal_output": "Terminal Output",
"packages_title": "Packages",
"packages_update_available": "Update available {from} > {to}",
"packages_update_single": "Update",
"packages_update_started": "Upgrading package {name}...",
"packages_update_success": "Package {name} upgraded successfully.",
"packages_updates": "Updates",
"packages_upgrade_all": "Upgrade All",
"packages_upgrade_all_desc": "Upgrade all packages to their latest versions.",
"packages_upgrade_failed": "Upgrade failed.",
"packages_upgrade_started": "Starting upgrade of all packages...",
"packages_upgrade_success": "Upgrade completed successfully.",
"pagination_next": "Next",
"pagination_page_of": "Page {page} of {pages}",
"pagination_previous": "Previous",
"password": "Password",
"password_hint": "At least 8 characters, mixing upper- and lower-case letters and a number.",
"prefix": "Prefix",
"privacy_policy": "Privacy Policy",
"remember_me": "Remember me",
"reset_link_sent": "If an account exists for that email, a reset link is on its way.",
@@ -236,12 +391,157 @@
"saved": "Saved",
"scan_qr": "Add this key to your authenticator app, then enter the generated code below.",
"send_reset_link": "Send reset link",
"seo_desc_admin_config": "Application-wide configuration settings.",
"seo_desc_admin_users": "Manage user accounts, roles and access.",
"seo_desc_auth_2fa": "Verify your identity with a two-factor authentication code.",
"seo_desc_auth_forgot_password": "Reset your password via email.",
"seo_desc_auth_reset_password": "Choose a new password for your account.",
"seo_desc_auth_setup_2fa": "Add an extra layer of security with two-factor authentication.",
"seo_desc_auth_sign_in": "Sign in to manage your servers.",
"seo_desc_auth_sign_up": "Create an account to get started.",
"seo_desc_dashboard": "Server overview and health at a glance.",
"seo_desc_machine_detail": "System status, performance metrics and key information for this machine.",
"seo_desc_networking": "Network interfaces, routes, hosts and DNS configuration.",
"seo_desc_networking_dns": "Nameserver configuration from /etc/resolv.conf.",
"seo_desc_networking_hosts": "Static host entries in /etc/hosts.",
"seo_desc_networking_interfaces": "Network interfaces and their addresses.",
"seo_desc_networking_routes": "Kernel routing table.",
"seo_desc_packages": "Manage installed packages and system updates.",
"seo_desc_packages_installed": "List, search, and remove installed software packages.",
"seo_desc_packages_updates": "Check and install available package updates.",
"seo_desc_root": "Web-based server management dashboard.",
"seo_desc_services": "List, filter, and manage systemd service units.",
"seo_desc_services_detail": "Manage and monitor a systemd service unit.",
"seo_desc_storage": "Filesystem mounts and fstab configuration.",
"seo_desc_storage_fstab": "Persistent mount definitions in /etc/fstab.",
"seo_desc_storage_mounts": "Active filesystem mounts on this machine.",
"seo_desc_system": "Date and time, hostname, localization and power controls.",
"seo_desc_system_datetime": "Clock, timezone and time synchronisation settings.",
"seo_desc_system_hostname": "View and change the machine hostname.",
"seo_desc_system_localization": "Language, locale and region settings.",
"seo_desc_system_nadir": "View active modules and permission matrix for the connected Nadir agent.",
"seo_desc_system_power": "Reboot or power off the machine.",
"seo_desc_users": "PAM/Unix user accounts on this machine.",
"seo_desc_users_detail": "View and manage a PAM/Unix user account.",
"seo_desc_users_groups": "Unix groups from /etc/group on this machine.",
"seo_desc_users_groups_detail": "View and manage a Unix group.",
"seo_title_admin_config": "Config",
"seo_title_admin_users": "Users",
"seo_title_auth_2fa": "Two-factor authentication",
"seo_title_auth_forgot_password": "Forgot password",
"seo_title_auth_reset_password": "Reset password",
"seo_title_auth_setup_2fa": "Set up two-factor authentication",
"seo_title_auth_sign_in": "Sign in",
"seo_title_auth_sign_up": "Sign up",
"seo_title_dashboard": "Dashboard",
"seo_title_machine_detail": "Machine overview",
"seo_title_networking": "Networking",
"seo_title_networking_dns": "DNS",
"seo_title_networking_hosts": "Hosts",
"seo_title_networking_interfaces": "Interfaces",
"seo_title_networking_routes": "Routes",
"seo_title_packages": "Packages",
"seo_title_packages_installed": "Installed packages",
"seo_title_packages_updates": "Available updates",
"seo_title_root": "Home",
"seo_title_services": "Services",
"seo_title_services_detail": "Service detail",
"seo_title_storage": "Storage",
"seo_title_storage_fstab": "Fstab",
"seo_title_storage_mounts": "Mounts",
"seo_title_system": "System",
"seo_title_system_datetime": "Date and time",
"seo_title_system_hostname": "Hostname",
"seo_title_system_localization": "Localization",
"seo_title_system_nadir": "Nadir Agent",
"seo_title_system_power": "Power",
"seo_title_users": "System users",
"seo_title_users_detail": "User detail",
"seo_title_users_groups": "Groups",
"seo_title_users_groups_detail": "Group detail",
"services_action_disable": "Disable",
"services_action_disabled": "Service {name} disabled successfully.",
"services_action_enable": "Enable",
"services_action_enabled": "Service {name} enabled successfully.",
"services_action_restart": "Restart",
"services_action_restarted": "Service {name} restarted successfully.",
"services_action_start": "Start",
"services_action_started": "Service {name} started successfully.",
"services_action_stop": "Stop",
"services_action_stopped": "Service {name} stopped successfully.",
"services_active_filter": "Active State",
"services_col_active": "Active State",
"services_col_description": "Description",
"services_col_load": "Load State",
"services_col_sub": "Sub State",
"services_col_unit": "Unit",
"services_description": "List, filter, and manage systemd service units.",
"services_details_active_state": "Active State",
"services_details_load_state": "Load State",
"services_details_sub_state": "Sub State",
"services_details_title": "Service Details",
"services_details_unit_file_state": "Startup Type",
"services_filter_active": "Active",
"services_filter_dead": "Dead",
"services_filter_error": "Error",
"services_filter_exited": "Exited",
"services_filter_failed": "Failed",
"services_filter_inactive": "Inactive",
"services_filter_loaded": "Loaded",
"services_filter_masked": "Masked",
"services_filter_not_found": "Not Found",
"services_filter_other": "Other",
"services_filter_running": "Running",
"services_filter_title": "Filter Services",
"services_load_filter": "Load State",
"services_logs_autoscroll": "Autoscroll",
"services_logs_clear": "Clear",
"services_logs_empty": "No log entries.",
"services_logs_lines": "Lines",
"services_logs_live": "Live",
"services_logs_live_paused": "Paused",
"services_logs_live_streaming": "Streaming",
"services_logs_priority": "Max priority",
"services_logs_search_placeholder": "Filter log lines...",
"services_logs_since": "Since",
"services_logs_since_15m": "Last 15 minutes",
"services_logs_since_1h": "Last hour",
"services_logs_since_6h": "Last 6 hours",
"services_logs_since_all": "All",
"services_logs_since_today": "Today",
"services_logs_since_yesterday": "Since yesterday",
"services_logs_title": "Logs",
"services_no_services": "No services found.",
"services_search_placeholder": "Search service units...",
"services_sub_filter": "Sub State",
"services_title": "Services",
"settings": "Settings",
"setup_2fa_description": "Add an extra layer of security to your account.",
"setup_2fa_title": "Set up two-factor authentication",
"sign_up": "Sign up",
"sign_up_description": "Sign up with your email and a username.",
"sign_up_title": "Create your account",
"storage_badge_fstab": "fstab",
"storage_col_device": "Device",
"storage_col_dump": "Dump",
"storage_col_fstype": "Type",
"storage_col_mountpoint": "Mount point",
"storage_col_options": "Options",
"storage_col_pass": "Pass",
"storage_filter_show_pseudo": "Show pseudo filesystems",
"storage_filter_show_pseudo_hint": "proc, sysfs, tmpfs, cgroup, …",
"storage_fstab_description": "Persistent mount definitions from /etc/fstab.",
"storage_mount_add": "Add mount",
"storage_mount_add_description": "Appends an /etc/fstab entry and mounts it. If the mount fails the entry is rolled back.",
"storage_mount_added": "Filesystem mounted",
"storage_mount_remove": "Unmount",
"storage_mount_remove_description": "Unmounts the filesystem and removes its /etc/fstab entry. This cannot be undone.",
"storage_mount_remove_title": "Unmount {mountpoint}?",
"storage_mount_removed": "Filesystem unmounted",
"storage_mounts_description": "Active mounts from the kernel mount table.",
"storage_mounts_search_placeholder": "Search by device, mount point or type…",
"storage_no_fstab": "No fstab entries.",
"storage_no_mounts": "No mounts found.",
"system_hostname_current": "Current hostname",
"system_hostname_invalid": "Hostname is invalid",
"system_locale_generate": "Generate new locale",
@@ -277,6 +577,14 @@
"system_time_ntp_synced": "Synchronized",
"system_time_search_timezone_placeholder": "Search timezone…",
"system_time_timezone": "Timezone",
"syslog_alert": "1 alert",
"syslog_crit": "2 crit",
"syslog_debug": "7 debug",
"syslog_emerg": "0 emerg",
"syslog_err": "3 err",
"syslog_info": "6 info",
"syslog_notice": "5 notice",
"syslog_warning": "4 warning",
"terms_notice": "By clicking continue, you agree to our <a class='link' href={terms}>Terms of Service</a> and <a class='link' href={privacy}>Privacy Policy</a>.",
"theme": "Theme",
"theme_dark": "Dark",
@@ -300,6 +608,7 @@
"users_col_comment": "Comment",
"users_col_home": "Home",
"users_col_type": "Type",
"users_col_uid": "UID",
"users_create": "Create",
"users_create_description": "Add a new user to the system.",
"users_create_field_comment": "Comment (GECOS)",
@@ -347,7 +656,6 @@
"users_group_primary_badge": "(primary)",
"users_group_sys_badge": "sys",
"users_groups_title": "Groups",
"users_pam_groups_description": "Supplementary groups. Replaces the full set via <code>usermod -G</code>. Primary group is set at user creation and not editable here.",
"users_groups_updated": "Groups updated",
"users_invite": "Invite",
"users_invite_description": "Send an email invitation. The user sets their own password.",
@@ -361,12 +669,14 @@
"users_no_results": "No users found.",
"users_page_of": "Page {page} of {total}",
"users_pam_create_description": "Adds a PAM account via useradd. Password stays locked until you set one.",
"users_pam_groups_description": "Supplementary groups. Replaces the full set via <code>usermod -G</code>. Primary group is set at user creation and not editable here.",
"users_pam_search_placeholder": "Search username, GECOS, uid…",
"users_pending": "Pending",
"users_pending_expires": "Invite expires {date}",
"users_pending_no_invite": "Email not verified",
"users_prev": "Previous",
"users_primary_gid": "Primary GID",
"users_primary_group": "Primary group",
"users_resend_invite": "Resend invite",
"users_role": "Role",
"users_role_admin": "Admin",
@@ -384,5 +694,11 @@
"verification_sent": "We sent a verification link to {email}. Click it to activate your account.",
"verify": "Verify",
"verify_your_email": "You need to first verify your email address",
"welcome_back": "Welcome back"
"welcome_back": "Welcome back",
"system_nadir_username": "Authenticated User",
"system_nadir_permissions": "Resolved Permissions",
"system_nadir_modules": "Registered Modules",
"system_nadir_module_id": "Module ID",
"system_nadir_module_name": "Display Name",
"system_nadir_no_permissions": "No permissions defined"
}