{
  "agents": {
    "activatingStuck": "systemd unit has been activating for more than 5 minutes — treating as failed. Check journal."
  },
  "notFound": "Not found",
  "needPath": "Specify a path",
  "needName": "Enter a name",
  "needHost": "Enter a host",
  "needDomain": "Enter a domain",
  "needProjectName": "Enter a project name",
  "needServerIp": "Specify a server IP",
  "passwordMin8": "Password must be at least 8 characters",
  "invalidPath": "Invalid path",
  "invalidIp": "Invalid IP",
  "invalidIp46": "Invalid IPv4/IPv6",
  "invalidPackageName": "Invalid package name",
  "fileMissing": "File does not exist",
  "notRegularFile": "Not a regular file",
  "readFailed": "Read failed",
  "pathResolveFailed": "Failed to resolve path",
  "fieldInvalid": "Invalid field {{field}}: {{value}}",
  "apt": {
    "updateIndex": "Update package index"
  },
  "state": {
    "closed": "Closed",
    "active": "Active"
  },
  "cat": {
    "security": "Security",
    "mail": "Mail",
    "database": "Database",
    "runtime": "Runtimes"
  },
  "ssh": {
    "identityNotFound": "Identity not found",
    "registrationNotFound": "Registration not found",
    "keyOkNologin": "Key accepted. Account is nologin or SFTP-only (no SSH shell). Treated as PASS.",
    "keyOkSftp": "SFTP pwd succeeded after SSH shell was refused."
  },
  "cdn": {
    "siteNotFound": "CDN site not found",
    "nodeMissing": "Node does not exist",
    "loopbackOriginRemote": "Origin is 127.0.0.1 — that is this host, not a remote edge. Set a reachable origin IP or bind_ip.",
    "originRemoteRewrite": "Remote edges will use reachable origin {{url}} instead of loopback.",
    "originRemoteUnknown": "Origin is loopback and no public/LAN IP or bind_ip is known — apply will refuse remote edges until one is set.",
    "needSshOrFleet": "Remote edge needs an outbound SSH identity (or username) or a /agents fleet session. Health URL alone is not apply transport.",
    "probe": {
      "timeout": "Connect timeout after {{ms}}ms ({{detail}}). Peer may be firewalled.",
      "dns": "DNS lookup failed ({{detail}}).",
      "refused": "Connection refused after {{ms}}ms ({{detail}}). Port closed or one-way block.",
      "tls": "TLS verify failed ({{detail}}).",
      "unreach": "Host unreachable after {{ms}}ms ({{detail}}).",
      "http": "HTTP probe failed after {{ms}}ms ({{detail}})."
    }
  },
  "backup": {
    "testUnsaved": "Testing unsaved form values (not written to settings).",
    "testIdentity": "sftp (identity) to {{spec}} ok",
    "sshAuthFailed": "SSH key or password rejected (publickey). Pick an outbound identity or install sshpass.",
    "remotePathIsFile": "Remote path {{path}} is a file. Use a directory.",
    "remoteMkdirFailed": "Could not create remote directory: {{detail}}",
    "sidecarPushed": "Also pushed SQL sidecar {{name}}",
    "fileNotFound": "Backup file not found",
    "resticNoPassword": "restic is enabled but password is not set",
    "resticNotInPath": "restic not in PATH",
    "dbEnvUnreadable": "Could not read .db.env; skipped SQL dump.",
    "dbEnvNoName": ".db.env has no database name; skipped SQL dump.",
    "targetOutside": "Restore target must be inside the project home or the public files root.",
    "controlPlaneDryRun": "Preview only — nothing written. In the panel, use Restore and confirm the phrase to write.",
    "controlPlaneNeedConfirm": "Full control-plane restore needs the confirm phrase RESTORE-CONTROL-PLANE.",
    "controlPlaneRestartAfter": "Restart the API after a successful restore.",
    "movedToTrash": "Moved {{name}} to the recycle bin. Permanent delete after {{days}} days.",
    "restoreNameExists": "Cannot restore {{name}} — a live archive with that name already exists.",
    "restoredFromTrash": "Restored {{name}} from the recycle bin.",
    "trashEmptied": "Permanently deleted {{n}} archive(s) from the recycle bin.",
    "partialOk": "Partial success — {{n}} project(s) skipped"
  },
  "health": {
    "portListening": "Port {{port}} is listening",
    "portNotListening": "Port {{port}} is not listening",
    "httpOk": "HTTP OK {{status}}",
    "httpFail": "HTTP failed: {{detail}}"
  },
  "redis": {
    "cliMissing": "redis-cli is not installed",
    "requirepassAlreadySet": "Redis already has requirepass — not overwritten.",
    "requirepassApplied": "requirepass applied at runtime",
    "requirepassApplyFailed": "Could not CONFIG SET requirepass (will rely on restart + conf)",
    "generatedRequirepass": "Generated Redis password (shown once): {{password}}"
  },
  "nginx": {
    "reloaded": "nginx reloaded",
    "configOk": "Nginx config check passed",
    "reloadExit": "Nginx reload exit code={{code}}",
    "managedDir": "Managed config dir: {{path}}",
    "includeHint": "In nginx: include {{path}}/*.conf;",
    "removedOrphan": "Removed orphan nginx conf {{path}}",
    "keptLiveSsl": "Kept live HTTPS block in {{path}} (managed template had no listen 443)",
    "orphanCleanupFailed": "Orphan nginx cleanup failed: {{detail}}",
    "settingsWritten": "Nginx global snippet written",
    "settingsNeedExecute": "Apply needs YSK_EXECUTE",
    "reloadFailed": "nginx reload failed"
  },
  "ssl": {
    "requestCert": "Request certificate"
  },
  "ftp": {
    "startVsftpd": "Start vsftpd",
    "writeVsftpd": "Write vsftpd config",
    "vsftpdStarted": "vsftpd started",
    "openPortsStep": "Firewall ports (manual)",
    "openPortsReminder": "Open TCP ports on host firewall and cloud security group: {{ports}}. FTPS apply does not open ports for you.",
    "openPortsPasvHint": "If login works but directory LIST times out, the PASV data range is blocked — open the ful",
    "publicPlaintextBlocked": "Refusing to start public FTP without FTPS. Bind to this host only, enable FTPS with a certificate, or confirm PLAINTEXT to expose cleartext on the public address."
  },
  "deploy": {
    "nodeMissingIsolated": "Node binary missing for isolated deploy: {{path}} — install Node {{version}} toolchain then redeploy. Refusing to write a unit that would 203/EXEC.",
    "nodeMissing": "Node binary missing: {{path}} — install toolchain (Node {{version}}) then redeploy",
    "nodeRejectedPath": "Node binary rejected for project user: {{path}} — use {{planned}}",
    "unitUnhealthy": "systemd unit not healthy ({{detail}}). journalctl -u {{unit}} — 203/EXEC often means binary not executable by project user",
    "skippedPanelNode": "Skipped panel Node at {{path}} (not executable by project user; would cause systemd 203/EXEC)",
    "usingFallback": "Node binary: using {{path}} (planned {{planned}} not found)",
    "usingPanelExec": "Node binary: fallback to panel execPath {{path}}",
    "usingPanelDegraded": "Node binary: degraded deploy using panel {{path}} (not for systemd User=ysks_*)",
    "nodeNotFoundPlanned": "Node {{version}} binary not found on host — unit will use {{planned}}; install toolchain then redeploy"
  },
  "files": {
    "needSrcDst": "Specify source and destination paths",
    "pathOutsideSandbox": "Path outside sandbox: {{target}}",
    "notFoundRel": "Not found: {{relPath}}",
    "fileNotFoundRel": "File not found: {{relPath}}",
    "notFoundFrom": "Not found: {{fromPath}}",
    "alreadyExists": "Already exists: {{name}}"
  },
  "dns": {
    "needZoneServerIp": "Enter zone and server IP",
    "noClusterPeer": "No cluster peer registered",
    "planOnly": "Plan only — set apply=true (root + YSK_EXECUTE) to install into /etc/powerdns and rediscover",
    "needRootNamed": "Need root + EXECUTE to update /etc/powerdns/named.conf and rediscover zones",
    "noManagedZonesClear": "No managed zone files under dataDir/dns/zones — will clear PowerDNS YSK include",
    "bindRegistered": "PowerDNS BIND: registered {{count}} zone(s) (list-zones confirmed)",
    "listZonesIncomplete": "named.conf/runtime zones updated but list-zones did not confirm all zones — not marking loaded (check pdns logs / bind-config)",
    "noLaunchDefaultBind": "no launch= found — defaulting to bind path",
    "writeNotAnswerDig": "Writing zone file alone does not answer dig — load into PowerDNS (bind named.conf + rediscover)",
    "bindDigFailed": "Zone listed but dig SOA failed — not claiming loaded",
    "bindLoadedOk": "Zone {{zone}} registered via PowerDNS BIND named.conf + dig OK",
    "bindSyncFailed": "BIND named.conf sync failed or dig not answering",
    "bindSkipPdnsutil": "Skipping BIND path (backend prefers pdnsutil)",
    "pdnsCtlNoConfirm": "pdns_control present but zone not confirmed; check /etc/powerdns/named.conf or use pdnsutil backend",
    "usingExistingZone": "Using existing zone file: {{path}}",
    "healNeedRoot": "Need root + EXECUTE to rewrite pdns local-address",
    "pdnsUnitActive": "pdns unit: active",
    "pdnsUnitInactive": "pdns unit: not active",
    "udp53Listening": "UDP/53: listening",
    "udp53NotListening": "UDP/53: still not listening",
    "healResyncOk": "Healed listener + re-synced managed zones into PowerDNS BIND",
    "healResyncPartial": "Listener healed but zone re-sync incomplete — click Write & load zone / powerdns load",
    "installAfterLoad": "After install, apply DNS zones (writes named.conf + rediscover) or POST powerdns/load",
    "bindFileNotEnough": "BIND backend: zone files alone do not answer dig until named.conf includes them",
    "zeroDomainsHint": "PowerDNS list-zones: 0 — zone files on disk are not loaded (named",
    "localAFailed": "local A probe failed for www/ftp/@ under {{zone}}",
    "publicNsCloudflare": "public NS is a third-party DNS/CDN (e.g. Cloudflare) — public dig will NOT use this host zone",
    "publicNsOther": "public NS is not this host — worldwide checks ignore local PowerDNS until registrar NS change",
    "publicNsHere": "public NS looks like in-zone nameservers (ns1/ns2.zone) — world may query you",
    "firewall53Hint": "UDP/53 not listening from ss — open firewall 53 both (TCP+UDP) if external dig fails",
    "applyDigOk": "PowerDNS BIND: list-zones + dig OK",
    "applyDigFail": "Zone registered in conf but dig still empty/REFUSED — not marking applied",
    "applySyncIncomplete": "PowerDNS bind sync incomplete — zone file on disk only (not applied). Fix EXECUTE/root or pdns logs.",
    "writeOnlyHint": "Zone file written only — PowerDNS will not answer until load/apply registers named",
    "noActiveUnit": "No active named/bind9/pdns unit",
    "pdnsUnitRestarts": "pdns unit state/restarts: {{detail}}",
    "port53LoopbackOnly": "Port 53 is only on loopback (systemd-resolved 127.0.0.53) — not a product authoritative nameserver",
    "port53Closed": "Port 53 is not listening (UDP/TCP)",
    "udp53NotPublic": "UDP/53 is not listening on a public address",
    "tcp53NotPublic": "TCP/53 is not listening on a public address",
    "noManagedZones": "No managed zone files under dataDir/dns/zones",
    "pdnsListZones": "PowerDNS list-zones: {{n}}",
    "lookupIgnoredAt": "dig is unavailable — @{{server}} was ignored. Not using the system resolver as that server’s answer.",
    "digNotInstalled": "dig is not installed",
    "digEmpty": "dig: no answer",
    "localAOk": "local A {{name}} → {{ip}}"
  },
  "db": {
    "needExecuteCreate": "Host execute is off; cannot create database from the panel",
    "dryRunMysql": "dry-run: database not created. Use --execute with YSK_EXECUTE=1 to provision",
    "remoteNoCreds": "No username/password stored — TCP only (registration is not a login).",
    "remoteReachable": "TCP {{host}}:{{port}} open ({{ms}}ms).",
    "remoteUnreachable": "TCP {{host}}:{{port}} closed or filtered ({{ms}}ms)."
  },
  "net": {
    "invalidIface": "Invalid interface name",
    "invalidDev": "Invalid device name",
    "needNmActive": "Cannot persist: need an active NetworkManager connection"
  },
  "project": {
    "notFound": "Project not found: {{id}}",
    "docRootMustBeRelative": "Document root must be relative to the project home (not an absolute path).",
    "docRootInvalid": "Invalid document root (no .. or illegal characters).",
    "domainInvalid": "Invalid domain name: {{domain}}",
    "domainInUse": "Domain {{domain}} is already used by project “{{other}}”."
  },
  "email": {
    "domainNotFound": "Mail domain not found: {{id}}",
    "wroteNginx": "Wrote Nginx config: {{nginxPath}}",
    "wrotePath": "Wrote {{path}}",
    "domainDeleted": "Deleted domain {{domain}} ({{mailboxes}} mailboxes, {{aliases}} aliases)",
    "domainDataDirRemoved": "Removed local data directory {{path}}",
    "domainDataDirRemoveFailed": "Could not remove data directory {{path}}: {{detail}}",
    "domainDeleteSystemHint": "Control plane removed; re-apply remaining domains or clean system MTA maps if needed",
    "mailboxDeleted": "Deleted mailbox {{address}}",
    "mailboxNotFound": "Mailbox not found",
    "mailboxDataRemoved": "Removed local path {{path}}",
    "domainDeleteConfirmMismatch": "Confirm name does not match domain; delete refused",
    "domainDataKept": "Kept local dataDir mail data (removeData=false)",
    "mailboxPasswordUpdated": "Password updated for {{address}}",
    "mailboxStatusUpdated": "Status for {{address}} set to {{status}}",
    "mailboxUpdateEmpty": "Nothing to update — provide password and/or status",
    "mailboxStatusInvalid": "Invalid mailbox status",
    "mailboxNoChanges": "No changes applied",
    "dovecotApplyNeedRoot": "Dovecot virtual auth apply needs root + YSK_EXECUTE",
    "dovecotNotInstalled": "Dovecot is not installed on this host",
    "dovecotNoPassdbSnippets": "No domain passdb snippets found under dataDir/email",
    "dovecotApplyFailed": "Dovecot virtual auth apply failed: {{detail}}",
    "dovecotApplyOk": "Dovecot virtual auth installed ({{conf}}, {{count}} domain snippet(s))",
    "dovecotPassdbWrittenNeedApply": "Passwd-file written under dataDir — run apply (EXECUTE+root) so Dovecot loads it",
    "postqueueSetgidBroken": "Postfix queue tools failed: setgid_group is empty in main.cf. Set setgid_group=postdrop (panel tries to fix when YSK_EXECUTE is on).",
    "postqueueMailDown": "Postfix is not running (showq unavailable). Panel tried to start it when YSK_EXECUTE is on — check the Software tab / systemctl status postfix.",
    "postqueueSpoolMissing": "Postfix queue directories are missing (e.g. hold/). Panel tried to create the spool tree and start Postfix when YSK_EXECUTE is on.",
    "invalidDomain": "Enter a valid mail domain",
    "invalidServerIp": "Enter a valid server IP",
    "mailboxLocalPartInvalid": "Mailbox local-part may only use letters, digits, . _ + -",
    "passwordTooShort": "Password must be at least 8 characters"
  },
  "agents": {
    "sessionNotFound": "Session not found: {{sessionId}}"
  },
  "software": {
    "startUnit": "Start {{u}}",
    "installedSpec": "Installed {{title}}",
    "installPkg": "Install {{p}}",
    "npmGlobal": "npm install -g {{pkgs}}",
    "needNodeForNpm": "node/npm not found — install Node.js before {{title}}",
    "uninstallNoTargets": "No software selected for uninstall",
    "uninstallNothingInstalled": "Nothing installed for the selected scope",
    "uninstallProtected": "Skipped protected components: {{ids}}",
    "uninstallConfirmMismatch": "Confirmation phrase does not match",
    "uninstallOk": "Uninstalled {{n}} component(s)",
    "uninstallPartial": "Uninstall finished with errors — check steps"
  },
  "php": {
    "aptPackages": "Will install {{count}} packages: {{list}}"
  },
  "runtime": {
    "plugins": "Companion tools: {{list}}",
    "pluginsOk": "Companion tools installed",
    "pluginsFailed": "Some tools failed or were skipped: {{list}}",
    "pluginsUninstall": "Uninstall tools: {{list}}",
    "pluginsUninstallOk": "Companion tools uninstalled",
    "pluginsUninstallFailed": "Some tools failed to uninstall or were skipped: {{list}}",
    "pluginsNoneToUninstall": "No tools to uninstall (already gone or required)"
  },
  "approval": {
    "notFound": "Approval not found: {{id}}"
  },
  "readiness": {
    "core": "Control plane",
    "security": "Permissions & security",
    "binaries": "Binaries / packages",
    "hosting": "Hosting",
    "dns": "DNS",
    "email": "Email",
    "isolation": "Project isolation",
    "ops": "Operations",
    "runtimesNode": "Node.js",
    "runtimesPhp": "PHP",
    "runtimesPython": "Python",
    "runtimesGo": "Go",
    "pm2": "PM2",
    "runtimesNodeFix": "Install Node from /runtimes/node",
    "runtimesPhpFix": "Install PHP from /runtimes/php",
    "runtimesPythonFix": "Install Python from /runtimes/python",
    "runtimesGoFix": "Install Go from /runtimes/go",
    "pm2Fix": "Install PM2 from the Node runtime page"
  },
  "needAdmin": "Administrator permission required",
  "notInstalled": "Not installed",
  "unknown": "Unknown",
  "failed": "Failed",
  "running": "Running",
  "stopped": "Stopped",
  "probe": "Probe",
  "install": "Install",
  "port": "Port",
  "git": {
    "missingBin": "git is not on PATH",
    "auth": "Authentication failed. Add a deploy key or HTTPS token.",
    "hostkey": "SSH host key verification failed. Confirm and pin the host key.",
    "dirty": "Working tree has {{count}} local change(s). Pull is blocked.",
    "diverged": "Cannot fast-forward. Reset to the remote ref if you intend to discard local Git history.",
    "missingRef": "That branch, tag, or commit is not on the remote.",
    "shallow": "This clone is shallow. Fetch full history before pinning an old commit.",
    "notRepo": "app/ is not a Git repository yet.",
    "diffEmpty": "No unstaged diff (protected .env is excluded).",
    "unrelated": "Unrelated histories. Reclone only after confirm — custom files will be lost.",
    "lock": "Git index.lock is present. Remove it only if no git process is running.",
    "disk": "Disk full or quota exceeded.",
    "timeout": "Git timed out.",
    "network": "Network error talking to the remote.",
    "lfs": "This repo uses Git LFS and git-lfs is not available.",
    "submodule": "Submodule update failed.",
    "unknown": "Git failed. See the command output.",
    "fetchOk": "Fetched from origin.",
    "checkoutOk": "Checked out {{ref}}.",
    "resetOk": "Reset hard to {{ref}}.",
    "envRestored": "Restored app/.env from the control plane.",
    "needPinHost": "SSH host key is not pinned. Scan and pin it before clone or fetch.",
    "tokenSaved": "HTTPS token stored (never shown again).",
    "tokenCleared": "HTTPS token removed.",
    "tokenInvalid": "Token must be at least 8 characters.",
    "deployKeyCreated": "Deploy key created. Add the public key on the Git host.",
    "deployKeyCleared": "Deploy key detached from this project.",
    "hostPinned": "Pinned SSH host keys for {{host}}.",
    "hostUnpinned": "Cleared pinned SSH host keys.",
    "hostScanFailed": "ssh-keyscan returned no keys for that host.",
    "hookEnabled": "Inbound Git hook is on. Paste the URL into GitHub, Gitea, or GitLab yourself.",
    "hookDisabled": "Inbound Git hook is off. The URL will not sync.",
    "hookSecretOnce": "Copy this hook secret now. It is not shown again.",
    "refsNeedUrl": "Enter a Git URL first.",
    "refsOk": "Loaded {{branches}} branch(es) and {{tags}} tag(s).",
    "refsEmpty": "Remote advertised no branches or tags."
  },
  "auto": {
    "n0001": "Status: applied",
    "n0002": "User not found",
    "n0003": "blocked: requires YSK_EXECUTE=1",
    "n0004": "Resource not found",
    "n0005": "Cannot apply on host: needs YSK_EXECUTE + root",
    "n0006": "Host execute required",
    "n0007": "Status: written",
    "n0008": "Root privileges are required to complete this",
    "n0009": "createdatabase",
    "n0010": "done",
    "n0011": "Not found",
    "n0012": "Status: failed",
    "n0013": "not running",
    "n0014": "start",
    "n0015": "Not installed mysql",
    "n0016": "Not installed psql",
    "n0017": "UFW firewall",
    "n0018": "Runtimes",
    "n0019": "Not found cron",
    "n0020": "",
    "n0021": "Policy not enforced: 0/1 admin has 2FA enabled",
    "n0022": "Admin two-factor authentication",
    "n0023": "Binary log (replication)",
    "n0024": "Not found",
    "n0025": "System changes disabled",
    "n0026": "Auto-ban circuit breaker tripped",
    "n0027": "Please specify agentId",
    "n0028": "Project not found",
    "n0029": "requires name",
    "n0030": "Emergency",
    "n0031": "ban not enable",
    "n0032": "dry-run: thisnot system",
    "n0033": "dry-run: not system",
    "n0034": "1 replica",
    "n0035": "node probe Success",
    "n0036": "serverHost execute is not enabled, cannot rsync",
    "n0037": "reapply key stepsFailed",
    "n0038": "cannot bootstrap: not enable YSK_EXECUTE",
    "n0039": "bootstrap Requires YSK_EXECUTE=1",
    "n0040": "Max connections",
    "n0041": "Bind address",
    "n0042": "domain",
    "n0043": "draining",
    "n0044": "Not found CDN node",
    "n0045": "(GitHub Releases latest)",
    "n0046": "execute ( YSK_EXECUTE systemdirectory)",
    "n0047": "dry-run: add --execute first to system nginx",
    "n0048": "requiresadmin",
    "n0049": "projectId and name",
    "n0050": "^.*account or password.*$",
    "n0051": "^.*requires verify.*$",
    "n0052": "echo \"pdnsutil Not found: \" >&2",
    "n0053": ": ''}(May not persist across reboot; use Save to persist)",
    "n0054": "# rsa_cert_file= (not certificate)",
    "n0055": "$_GET / $_POST / $_COOKIE",
    "n0056": "--password, or YSK_MIGRATE_SSH_PASSWORD",
    "n0057": "-1 disable; 0",
    "n0058": "/proc/meminfo can",
    "n0059": "/proc/stat can — CPU% cannot",
    "n0060": "0 = limits; can 256mb",
    "n0061": "0 = use all CPUs",
    "n0062": "0 (off)",
    "n0063": "1-minute load exceeds CPU × 2",
    "n0064": "1. panelcreate MySQL database",
    "n0065": "1 = safest; 2 = better performance",
    "n0066": "2. WordPress to app/public",
    "n0067": "3. settings wp-config.php",
    "n0068": "4. PHP + Nginx/SSL",
    "n0069": "A IPv4",
    "n0070": "A IPv4",
    "n0071": "AAAA IPv6",
    "n0072": "AAAA IPv6",
    "n0073": "AOF persist",
    "n0074": "Adminer File does not exist; please download:true",
    "n0075": "Agent cannot write",
    "n0076": "Agent running",
    "n0077": "Allowlist",
    "n0078": "Axum + Tokio; cargo build crates ()",
    "n0079": "Axum: cargo build --release crates.io",
    "n0080": "Skip name resolve",
    "n0081": "Collation server",
    "n0082": "Character set server",
    "n0083": "Bootstrap node ()",
    "n0084": "Bot scan",
    "n0085": "CLI OPcache",
    "n0086": "CONFIG SET databases not Success (can restart)",
    "n0087": "CPU for 1–10000",
    "n0088": "Cloudflare UA not Success",
    "n0089": "Cloudflare Under Attack please",
    "n0090": "Cookie Secure ( HTTPS)",
    "n0091": "DB index for 0–15",
    "n0092": "System user not created for this project",
    "n0093": "DB id User not found — please createsystemuser",
    "n0094": "DB_PASSWORD for — please page create MySQL or WP_DB_*",
    "n0095": "DDoS",
    "n0096": "DKIM",
    "n0097": "DMARC",
    "n0098": "DNS written ≠ resolver ( TTL/)",
    "n0099": "DS registrar, please.",
    "n0100": "Django: pip install django/gunicorn",
    "n0101": "Down confirmName etcinterface",
    "n0102": "EmailService dataDir — database ( dataDir Maildir)",
    "n0103": "FPM reloadFailed",
    "n0104": "FTPS requiresdomain",
    "n0105": "FastAPI + uvicorn; requirements.txt; / and /health",
    "n0106": "Flask app.py; requirements.txt; / and /health",
    "n0107": "GTID: conf gtid_mode=ON",
    "n0108": "Galera Supports mariadb",
    "n0109": "Git URL Invalid",
    "n0110": "GitHub package.json Missing version",
    "n0111": "GitHub release Missing tag",
    "n0112": "Go runtime",
    "n0113": "certbot",
    "n0114": "HTTP conf with ACME webroot (not TLS)",
    "n0115": "HTTP Failed",
    "n0116": "HTTPS enable",
    "n0117": "IMAP/POP Failed",
    "n0118": "IP not (/enrich)",
    "n0119": "IP Invalid",
    "n0120": "IPv4 0–32",
    "n0121": "IPv6 0–128",
    "n0122": "InnoDB flush log at trx commit",
    "n0123": "InnoDB log file size",
    "n0124": "InnoDB buffer pool size",
    "n0125": "Install and publish via admin panel (Webmail install).",
    "n0126": "L7 flood / abnormal traffic",
    "n0127": "LLM Abnormal (Missing)",
    "n0128": "Let’s Encrypt HTTP-01 requires 80 can; DNS-01 API token.",
    "n0129": "LimitNOFILE for 64–10000000",
    "n0130": "MTU 68–65535",
    "n0131": "MX mailhost",
    "n0132": "MX: first host ( 10 mail.example.com.)",
    "n0133": "MariaDB server",
    "n0134": "Require clients to use TLS",
    "n0135": "MySQL server",
    "n0136": "MySQL/MariaDB client",
    "n0137": "NetworkManager unavailable, cannotwrite DNS",
    "n0138": "Nginx tighter rate limit (~8 req/s)",
    "n0139": "Nginx strict rate limit (~3 req/s)",
    "n0140": "Nginx gentle rate limit (~20 req/s)",
    "n0141": "fail2ban",
    "n0142": "Node Install failed",
    "n0143": "Node.js",
    "n0144": "OPcache (MB)",
    "n0145": "PHP docroot + wp-config ()",
    "n0146": "firewall (UFW)",
    "n0147": "PHP processstartnot process",
    "n0148": "PHP degraded — not with project Linux user (Requires root + createsystemuser)",
    "n0149": "PID for",
    "n0150": "PID Invalid",
    "n0151": "PING succeeded",
    "n0152": "PM2 Start failed — pidfile start",
    "n0153": "postfix",
    "n0154": "POST",
    "n0155": "Per-sender: envelope sender domain msgs/hour; DEFER_IF_PERMIT",
    "n0156": "Postfix suspend map Applied (check_recipient_access REJECT)",
    "n0157": "PostgreSQL server",
    "n0158": "PostgreSQL serverNot installed",
    "n0159": "PostgreSQL client",
    "n0160": "PostgreSQL servicenot running",
    "n0161": "PowerDNS tools",
    "n0162": "Primary: create replication user (SQL )",
    "n0163": "Python Django ()",
    "n0164": "redis-server",
    "n0165": "Python behavior",
    "n0166": "RDB rule",
    "n0167": "RDB",
    "n0168": "RUSTFLAGS (build)",
    "n0169": "Redis dbIndex for 0–15",
    "n0170": "Redis dump Requires YSK_EXECUTE=1",
    "n0171": "Redis server",
    "n0172": "Redis serverNot installed or cannotconnection",
    "n0173": "Redis startcannot PING",
    "n0174": "Redis client",
    "n0175": "Redis start",
    "n0176": "Redis restorerequires YSK_EXECUTE",
    "n0177": "Renewal via certbot.timer (dns-01 )",
    "n0178": "Rust build / run",
    "n0179": "S3 bucket/path not settings",
    "n0180": "SFTP.ssh chown Requires root + YSK_EXECUTE",
    "n0181": "SIGKILL confirmKill: true",
    "n0182": "SMTP /",
    "n0183": "SPF",
    "n0184": "SRV: priority weight port target",
    "n0185": "SSH",
    "n0186": "SSH connectionFailed",
    "n0187": "SSH Requires YSK_EXECUTE=1",
    "n0188": "SSO verify ()· password",
    "n0189": "SSO verify ()· password",
    "n0190": "SST=mariabackup: node mariadb-backup",
    "n0191": "Session",
    "n0192": "Session",
    "n0193": "Session",
    "n0194": "TCP (inuse)",
    "n0195": "TOTP Success",
    "n0196": "TasksMax for 1–1000000",
    "n0197": "UFW Not installed",
    "n0198": "UFW StatusRead failed",
    "n0199": "VACUUM",
    "n0200": "WAL etc",
    "n0201": "Web + mail",
    "n0202": "Web UI: Not found: (build apps/web or set YSK_WEB_ROOT)\\n",
    "n0203": "Web host",
    "n0204": "Web interface",
    "n0205": "WebAuthn verifyFailed",
    "n0206": "WebDAV not",
    "n0207": "Webmail Invalid domain",
    "n0208": "Wildcard/dns-01: certbot TXT; panelwillstart DS/TXT DNS done",
    "n0209": "WordPress (PHP )",
    "n0210": "YSK PHP OK — WordPress Not installed\\\\n",
    "n0211": "YSK_EXECUTE is on but the process is not root — some systemctl/nginx reloads will be blocked",
    "n0212": "YSK_EXECUTE enable",
    "n0213": "YSK_EXECUTE is off — written ≠ applied",
    "n0214": "YSK_EXECUTE is off — host mutations stay written/draft until you set YSK_EXECUTE=1",
    "n0215": "access log Failed",
    "n0216": "access=fleet requires fleetAgentId",
    "n0217": "action for reboot | poweroff | cancel",
    "n0218": "apex + www ( edge )+ cdn host",
    "n0219": "apex CNAME server/",
    "n0220": "app.py — skipped",
    "n0221": "applied ≠ healthy — please probe wsrep",
    "n0222": "apply reload sshd; Error Match can — first dry-run",
    "n0223": "applySystem suspend/autoreply change",
    "n0224": "apply_status=written (Success ≠ system MTA; add applySystem:true firstapply)",
    "n0225": "apps/web/dist exists",
    "n0226": "apt list --upgradable: (can update or apt not Ready)",
    "n0227": "apt Install failed",
    "n0228": "apt-get Available",
    "n0229": "auto vacuum disable",
    "n0230": "blocked: requires HostExecutor + YSK_EXECUTE=1",
    "n0231": "bootstrap: Node Failed",
    "n0232": "bootstrap: apt Failed",
    "n0233": "bootstrap key stepsFailed",
    "n0234": "candidateVersion not",
    "n0235": "cargo / rustc",
    "n0236": "certbot exit 0 — check /etc/letsencrypt/live/",
    "n0237": "chown requires YSK_EXECUTE + root",
    "n0238": "clone (YSK scaffold / stub)",
    "n0239": "cluster_size Unknown or 0",
    "n0240": "command ysk-server / ysk-server",
    "n0241": "control plane filecomplete",
    "n0242": "cwd can",
    "n0243": "dataDir",
    "n0244": "dataDir ysk.json — Statuscomplete",
    "n0245": "dataDir/email exists",
    "n0246": "dataDir/web exists",
    "n0247": "database Not found:",
    "n0248": "db-util (FTP user database)",
    "n0249": "deployNode Node project",
    "n0250": "df Available mount ( or )",
    "n0251": "dig unavailable, node dns",
    "n0252": "dig: no answer (NXDOMAIN or empty)",
    "n0253": "dns-01: panel TXT — done\" SSL\"",
    "n0254": "dnssec-dsfromkey not DS",
    "n0255": "dnssec-keygen PATH (apt install bind9-dnsutils)",
    "n0256": "dnssec-keygen failed",
    "n0257": "dnssec-signzone unavailable — keptkey/DS",
    "n0258": "dnssec-signzone not.signed",
    "n0259": "domain",
    "n0260": "domain Not found:",
    "n0261": "dovecot reload failed or servicenot (sieve Wrote; reload Success)",
    "n0262": "dry-run fleet dispatch (not queued)",
    "n0263": "dry-run peer push (not scp)",
    "n0264": "dry-run remote install (not ssh)",
    "n0265": "dry-run transfer done ( full bootstrap)",
    "n0266": "dry-run — pass apply/execute home",
    "n0267": "dry-run — pass apply/execute really ssh",
    "n0268": "dry-run — not write /etc",
    "n0269": "dry-run: add --execute firstapply ufw",
    "n0270": "dry-run: inventory + preflight passed, not package/transfer",
    "n0271": "Dry-run: probe/plan only. Pass --execute with YSK_EXECUTE=1 to actually provision.",
    "n0272": "Dry-run: wrote the managed file (dataDir). Pass --execute with YSK_EXECUTE=1 as root to install the system drop-in.",
    "n0273": "Dry-run: not banned. Pass --execute with YSK_EXECUTE=1 to actually ban.",
    "n0274": "Dry-run: not unbanned. Pass --execute with YSK_EXECUTE=1 to actually unban.",
    "n0275": "dryRun=true — change API",
    "n0276": "dryRun: not write",
    "n0277": "dump Wrote dataDir, not transfer",
    "n0278": "enable failed",
    "n0279": "execute ( YSK_EXECUTE=1 + root)",
    "n0280": "execute requires enqueue",
    "n0281": "export admin",
    "n0282": "fail2ban applyFailed",
    "n0283": "fail2ban service",
    "n0284": "fail2ban not active",
    "n0285": "fail2ban not",
    "n0286": "fail2ban",
    "n0287": "fail2ban StatusRead failed",
    "n0288": "fail2ban: sshd, nginx-http-auth and standard jails",
    "n0289": "fd unavailable",
    "n0290": "files (file)",
    "n0291": "fleet purge blocked — enqueue or SSH",
    "n0292": "fleet please db-cluster fleet --op probe --execute",
    "n0293": "fromPanel admin",
    "n0294": "fromPanel requires step-up: POST /api/v1/auth/totp/step-up",
    "n0295": "fullchain PEM certificate",
    "n0296": "gateway for IP",
    "n0297": "geo apex: EDNS write geo edge multi-A (·user Anycast)",
    "n0298": "geoMap edge — edge",
    "n0299": "geo: not settings geoMap — etc multi_a ( edge). please dns.geoMap region→nodeIds",
    "n0300": "git binary Not found: on PATH",
    "n0301": "git binary",
    "n0302": "go binary",
    "n0303": "healthUrl http(s) URL",
    "n0304": "http-01 webroot — 80 can ACME conf fan-out",
    "n0305": "identity not linuxUser/project — cannot authorized_keys",
    "n0306": "ignoreip: dataDir/fail2ban/ignoreip.txt",
    "n0307": "index.html + CSS, Nginx root or",
    "n0308": "install conf → systemctl restart mariadb (not bootstrap node)",
    "n0309": "ip -j addr interface",
    "n0310": "job manifest",
    "n0311": "journal; can permission",
    "n0312": "journalctl can requires root or user systemd-journal/adm",
    "n0313": "key",
    "n0314": "Key missing or not deleted",
    "n0315": "kill -0 Success: can for zombie or permission",
    "n0316": "kill -0 failed",
    "n0317": "Apply failed on host",
    "n0318": "Apply blocked on host",
    "n0319": "local cache directory/",
    "n0320": "localhost or *",
    "n0321": "logical DB 0... N-1; restart",
    "n0322": "logrotate Installed",
    "n0323": "logrotate Not installed or PATH",
    "n0324": "main.py — skipped",
    "n0325": "manage.py + minimal settings/urls/wsgi; pip install django",
    "n0326": "manifest dumpRelPath — not ？",
    "n0327": "manifest rdbRelPath",
    "n0328": "memoryMax 512M or 1G",
    "n0329": "migrate host --execute + YSK_EXECUTE=1, or --dry-run ( inventory+preflight)",
    "n0330": "migrate post --execute YSK_EXECUTE=1 ( target)",
    "n0331": "migrate post Requires YSK_EXECUTE=1",
    "n0332": "migrate post Requires YSK_EXECUTE=1 ( target)",
    "n0333": "minimal bootstrap failed",
    "n0334": "mysql / mariadb client",
    "n0335": "mysql-replica Supports mysql",
    "n0336": "mysql_databases name",
    "n0337": "named-checkzone PATH — Wrote, not verify",
    "n0338": "nginx -t or reload failed",
    "n0339": "nginx -t not passed, not reload",
    "n0340": "nginx reload ok · Status: applied",
    "n0341": "nginx reload failed",
    "n0342": "nginx binary",
    "n0343": "nginx not found",
    "n0344": "nginx service",
    "n0345": "Binary not on PATH; service cannot become ready",
    "n0346": "node can",
    "n0347": "npm latest Missingversion",
    "n0348": "npm exit 0 Not found binary — packagecan not CLI or PATH not update",
    "n0349": "nullok not user",
    "n0350": "nullok:.google_authenticator userAvailable key",
    "n0351": "open_basedir path",
    "n0352": "openssl unavailable, YSK-SCRYPT hash",
    "n0353": "openssl binary",
    "n0354": "optionalEtc Failed transfer (can targetcertificate)",
    "n0355": "origin shield: thisnode for shield, origin",
    "n0356": "origin.kind project or url",
    "n0357": "origin.project requires projectId",
    "n0358": "origin.url http(s) URL",
    "n0359": "originShieldNodeId edgeNodeIds",
    "n0360": "package dump Incomplete — transfer",
    "n0361": "package Failed — transfer",
    "n0362": "package Requires YSK_EXECUTE=1",
    "n0363": "pam.d/sshd not pam_google_authenticator (not enforce)",
    "n0364": "panel not settings 2FA or secret — please first \"\" TOTP",
    "n0365": "panel TOTP secret — first Web 2FA or --from-panel",
    "n0366": "panel login Failedwritecan fail2ban log (journal or )",
    "n0367": "passkey",
    "n0368": "passkey Failed",
    "n0369": "passkey Success",
    "n0370": "pdnsutil Not found: — install PowerDNS tools or run helper script as root after install",
    "n0371": "peer SSH probe YSK_EXECUTE=1 (local)",
    "n0372": "peer Not probed ( probe local)",
    "n0373": "peer nodeapply conf and join",
    "n0374": "php binary Not found: — install php-cli",
    "n0375": "php binary",
    "n0376": "php not PATH",
    "n0377": "pidfile with userstart(degraded)",
    "n0378": "pidfile startnot pid",
    "n0379": "pm2 PATH (Available pidfile/systemd)",
    "n0380": "pm2 Not found: on PATH — install: npm i -g pm2",
    "n0381": "post-transfer reapply",
    "n0382": "post-transfer restore",
    "n0383": "postconf not message_rate_limit (complete applied)",
    "n0384": "kind postgres-replica needs --engine postgres",
    "n0385": "postgres_databases name",
    "n0386": "postqueue unavailable or mailNot installed",
    "n0387": "Install nginx on the host, or use panel software / runtime install",
    "n0388": "Install nginx on the system, or use panel software / runtime install",
    "n0389": "privkey PEM",
    "n0390": "productionReady not (datacan )",
    "n0391": "ps",
    "n0392": "ps Degraded: --sort/",
    "n0393": "ps Degraded: pri/vsz/stat etc",
    "n0394": "psql client",
    "n0395": "purge Failed or target",
    "n0396": "python3 binary",
    "n0397": "queued ≠ edge purge",
    "n0398": "queued ≠ edge reload — agent and cdn.edge.apply",
    "n0399": "queued ≠ edge — Agents exit/JSON",
    "n0400": "realpath",
    "n0401": "realpath",
    "n0402": "reapply Requires YSK_EXECUTE=1",
    "n0403": "redis clusterSupports redis",
    "n0404": "registry shasum not sha256 (npm sha1)— with npm integrity for",
    "n0405": "reload/restart failed",
    "n0406": "remote post Failed — can target migrate post",
    "n0407": "restic backupdone (written/applied restic exit)",
    "n0408": "restic is enabled but password is not set — denypassword (please backupsettings)",
    "n0409": "restic not",
    "n0410": "restic not — cannot snapshots",
    "n0411": "restic not — please first \"/\"enable and settings password",
    "n0412": "restic disabled (tar only)",
    "n0413": "restic not (skipped)",
    "n0414": "restic Not installed ( PATH), please systeminstall restic",
    "n0415": "restore ok; reapply/verify",
    "n0416": "restore done",
    "n0417": "restore Failed",
    "n0418": "restore not Success",
    "n0419": "restore Requires YSK_EXECUTE=1",
    "n0420": "restore+reapply ok; verify",
    "n0421": "rsync dataDir failed",
    "n0422": "rsync Requires YSK_EXECUTE=1",
    "n0423": "scp Wrotecannot reload: rndc/named/bind9/pdns",
    "n0424": "scp Success ≠ peer restart / join",
    "n0425": "secrets key Available",
    "n0426": "secrets master key",
    "n0427": "sentinel not sentinel",
    "n0428": "sentinel: INFO replication; please sentinel masters",
    "n0429": "server IP IPv4",
    "n0430": "server IPv6 Invalid",
    "n0431": "setquota PATH — (deploy du )",
    "n0432": "shell pathinvalid",
    "n0433": "signal for TERM | KILL | HUP | USR1",
    "n0434": "ssh true succeeded → verified",
    "n0435": "sshd keyboard-interactive / challenge-response enable",
    "n0436": "sshd can not KbdInteractiveAuthentication — TOTP cannot SSH",
    "n0437": "sshpass Available (password)",
    "n0438": "strict Match Wroteuser (password off)",
    "n0439": "symlink path",
    "n0440": "symlink log directory",
    "n0441": "symlink project home",
    "n0442": "systemctl Failed",
    "n0443": "systemd Failed — PM2/pidfile",
    "n0444": "systemd not: Host execute permission required and admin",
    "n0445": "target: user@host or user@host:port",
    "n0446": "token",
    "n0447": "token",
    "n0448": "top -b unavailable ( with ps for )",
    "n0449": "transfer: dataDir rsync Failed",
    "n0450": "transfer: cannotcreatedirectory",
    "n0451": "transfer done ( full bootstrap)",
    "n0452": "transfer Completed, target restore/reapply/verify Failed",
    "n0453": "transfer Failed",
    "n0454": "transfer Failed",
    "n0455": "transfer Requires YSK_EXECUTE=1",
    "n0456": "transfer/bootstrap failed",
    "n0457": "ufw Failed",
    "n0458": "unit and action",
    "n0459": "useradd requires YSK_EXECUTE + root",
    "n0460": "value ( 256KB)",
    "n0461": "verify off",
    "n0462": "verify not passed — for done",
    "n0463": "verify passed — job=done",
    "n0464": "vsftpd Start failed",
    "n0465": "vsftpd not Successstart",
    "n0466": "weighted: edge",
    "n0467": "wp-config.php — skipped",
    "n0468": "written ≠ Dovecot Pigeonhole — ManageSieve or symlink to user sieve",
    "n0469": "written ≠ Roundcube — enableSystem or symlink",
    "n0470": "Written ≠ applied: sync to system conf.d, run nginx -t, then reload",
    "n0471": "written ≠ can — reverse proxy to panel /webdav",
    "n0472": "written ≠ processreload",
    "n0473": "ysk-server CLI Install failed — can npm i -g ysk-server",
    "n0474": "ysk-web Nginx/www-data (not world-readable)",
    "n0475": "ysk-web YSK_EXECUTE + root ( Nginx can cannot 750 home)",
    "n0476": "ysk.json fingerprint (can reapply )local≠source",
    "n0477": "ysk.json fingerprint and",
    "n0478": "ysk.json fingerprint and ( bind_ip )",
    "n0479": "ysk.json",
    "n0480": "ysk.json Failed",
    "n0481": "zone apply blocked ( EXECUTE)— update",
    "n0482": "zone rectify done",
    "n0483": "zone invalid",
    "n0484": "zone Not found:",
    "n0485": "zone Failed",
    "n0486": "Binlog format",
    "n0487": "install",
    "n0488": "createdone (draft please to page \"apply\")",
    "n0489": "and POST",
    "n0490": "Last full backup had failures",
    "n0491": ": write conf → apply edges → DNS ( and can SSL)",
    "n0492": ": PAM /etc/pam.d/sshd (nullok)",
    "n0493": ": systeminstall libpam-google-authenticator + PAM ()",
    "n0494": "can deletedirectory",
    "n0495": "can deletedirectory or path",
    "n0496": "",
    "n0497": "thisoperation",
    "n0498": "Supports (allow TERM / KILL / HUP / USR1)",
    "n0499": "data",
    "n0500": "delete admin",
    "n0501": "portinvalid",
    "n0502": "Applied to system",
    "n0503": "settingsWrote dataDir (apply to systemenablesystemchange)",
    "n0504": "Host memory usage is over 90%",
    "n0505": "Host metrics",
    "n0506": "Main InnoDB data cache",
    "n0507": "Binary is not on PATH; the service cannot become ready",
    "n0508": "Binlog expire (seconds)",
    "n0509": "Interactive timeout",
    "n0510": ": firewall, mail PTR/rDNS, kept",
    "n0511": "vacuum",
    "n0512": "to Cron page \"install to system crontab\"willreally",
    "n0513": "with Nginx root or \"\" public/",
    "n0514": "Start the ysk-server service as root (systemctl / control-plane unit)",
    "n0515": "Start as root and set YSK_EXECUTE=1 (see host settings / deploy docs)",
    "n0516": "with user (degraded — not project Linux user)",
    "n0517": "shell — deny",
    "n0518": "Slow query log",
    "n0519": "serverNot installed (command -v )",
    "n0520": "Long query time (seconds)",
    "n0521": "serverNot installed MySQL",
    "n0522": "serverNot installed PostgreSQL",
    "n0523": "serverNot installed Redis",
    "n0524": "serverNot installed, Cannot complete this from the management panel",
    "n0525": "servernot enable YSK_EXECUTE",
    "n0526": "serverHost execute is not enabled or Missing root, cannot paneldoneinstall",
    "n0527": "serverHost execute is not enabled, cannot Redis",
    "n0528": "serverHost execute is not enabled, cannot panelinstall Webmail",
    "n0529": "serverHost execute is not enabled, cannotdoneapply",
    "n0530": "serverHost execute is not enabled, cannotcreate SSH connection",
    "n0531": "serverHost execute is not enabled, cannot dump",
    "n0532": "Host execute is off; the panel cannot finish system-level operations",
    "n0533": "serverHost execute is not enabled: Wrote managed file, cannot named-checkzone / reload",
    "n0534": "TCP port the server listens on",
    "n0535": "for",
    "n0536": "",
    "n0537": "YSK-SCRYPT hash ( for openssl hash)",
    "n0538": "YSK_SECRETS_KEY",
    "n0539": "baseUrl/.ysk-cdn-health path (C2 can health location)",
    "n0540": "version (latestOverride)",
    "n0541": "YSK_LATEST_VERSION (/)",
    "n0542": "unavailable",
    "n0543": "mysqldump — package cannot MySQL",
    "n0544": "pg_dump — package cannot Postgres",
    "n0545": "redis-cli — package cannot Redis RDB",
    "n0546": "sshpass",
    "n0547": "requires rsync (Not installed)",
    "n0548": "not passed",
    "n0549": "passed",
    "n0550": "128M, 256M, 512M, -1 ()",
    "n0551": "e.g. 512MiB; leave empty to unset",
    "n0552": "900 1 300 10; disable",
    "n0553": "Paste a session UUID from /agents on the cluster form, or CLI --member 10.0.0.3=replica:fleet:SESSION_UUID",
    "n0554": "= ASN (system), not",
    "n0555": "22/80/443; can offnot port",
    "n0556": "kept: 10",
    "n0557": "ysk-server process.pid",
    "n0558": "",
    "n0559": "detect to pam_google_authenticator",
    "n0560": "Backup tar succeeded but remote/restic had issues",
    "n0561": "admin",
    "n0562": "admin impersonate",
    "n0563": "admin can operation",
    "n0564": "apex A",
    "n0565": "Listed managed confs (not written to system)",
    "n0566": "write PM2 settings, not start",
    "n0567": "writemanaged file (not reload)",
    "n0568": "writemanagesettings — Ready and reload",
    "n0569": "write (not enable)",
    "n0570": "(apply:false); password",
    "n0571": "Supports postgres + postgres-replica",
    "n0572": "Supports redis + redis-replica|redis-sentinel",
    "n0573": ", HIT",
    "n0574": "stub resolv (127.0.0.53); DNS please resolvectl",
    "n0575": "Warning, can",
    "n0576": "for; / CDN edge access log cache status",
    "n0577": "willwrite systemd Environment / process env",
    "n0578": "allow URL include",
    "n0579": "allow URL file",
    "n0580": "allowfile",
    "n0581": ": + / + (enrich)+ ASN; city policyoff",
    "n0582": "edge fan-out applied",
    "n0583": "edge fan-out Failed",
    "n0584": "edge purge Success",
    "n0585": "peer nameserver reload",
    "n0586": "peer reload failed — filecan not",
    "n0587": "peer Failed",
    "n0588": "peer: zone and remote reload Success",
    "n0589": "All succeeded",
    "n0590": "All skipped (no backupable home) — not treated as failure",
    "n0591": "",
    "n0592": "RDB, restore",
    "n0593": "Other runtime variables",
    "n0594": "",
    "n0595": "or",
    "n0596": "— manualapply\"\" (Never automatic)",
    "n0597": "Score is very high — emergency preset needs manual confirmation (never automatic)",
    "n0598": "directory",
    "n0599": "process",
    "n0600": "delete default confirmDefault: true",
    "n0601": "deletefile or directory",
    "n0602": "deletesystemuser — deny",
    "n0603": "delete: Host execute is not enabled, path managedata directory",
    "n0604": "to fail2ban apply and enable service",
    "n0605": "to page enable (soft/normal)",
    "n0606": "Hardened",
    "n0607": "or",
    "n0608": "Under attack",
    "n0609": "21 and PASV",
    "n0610": "Write panel file only",
    "n0611": "Can apply to system",
    "n0612": "can dataDir/clusters/<id>/",
    "n0613": "You can view settings; install, restart, and writing system settings need host execute permission",
    "n0614": "can \"\" or \"add\"",
    "n0615": "Install and configure Postfix from Email",
    "n0616": "can: SSL, WP-CLI,",
    "n0617": "",
    "n0618": "allowrestore to.restic-restore-* directory",
    "n0619": "Start, stop, restart, enable on boot",
    "n0620": "startprocessnot process",
    "n0621": "OPcache",
    "n0622": "SSL",
    "n0623": "Active",
    "n0624": "file",
    "n0625": "file",
    "n0626": "node wsrep, HA ≥2 node",
    "n0627": "\"\"create MySQL ( or DB) and WP_DB_*",
    "n0628": "domain — kept domain-level vacation",
    "n0629": "Invalid domain",
    "n0630": "domainStatus: active ()",
    "n0631": "domainStatus: suspended (; etc Postfix )",
    "n0632": "Port, bind address, connection limits",
    "n0633": "portcheckAbnormal",
    "n0634": "Runtime",
    "n0635": "Require secure transport (TLS)",
    "n0636": "(.gz etc)",
    "n0637": "Bot",
    "n0638": "probe",
    "n0639": "Last resort when out of control",
    "n0640": "package",
    "n0641": "packageinstallnot: Host execute permission required",
    "n0642": "packageupdaterequiressystemadminpermission",
    "n0643": "apply to vsftpd",
    "n0644": "apply to system",
    "n0645": "applywillmanaged file; YSK_EXECUTE=1 + root applied",
    "n0646": "",
    "n0647": "intern (MB)",
    "n0648": "password",
    "n0649": "Error, please apply",
    "n0650": "Enable admin 2FA under Security → My security, then add a backup admin on Users.",
    "n0651": "and path",
    "n0652": "install PAM",
    "n0653": "install vsftpd",
    "n0654": "Install failed",
    "n0655": "installpackage",
    "n0656": "installdone",
    "n0657": "install",
    "n0658": "installsystemsettings",
    "n0659": "",
    "n0660": "",
    "n0661": "password",
    "n0662": "password SQL CHANGE_ME",
    "n0663": "Password stored as crypt hash (not plaintext)",
    "n0664": "password for",
    "n0665": "passwordrequires sshpass",
    "n0666": "passwordrequireslocalinstall sshpass",
    "n0667": "passwordrequires 8",
    "n0668": "password ( 8 )— createnot writehash",
    "n0669": "passwordsettings",
    "n0670": "etc",
    "n0671": "and please",
    "n0672": "deny",
    "n0673": "Writes NODE_OPTIONS=--max-old-space-size=N",
    "n0674": "write Nginx drop-in",
    "n0675": "write home ≠ PAM",
    "n0676": "Write failed",
    "n0677": "write",
    "n0678": "writefile",
    "n0679": "",
    "n0680": "Include to sshd_config, or POST /api/v1/sftp/sshd-snippet/apply install",
    "n0681": "Project Linux user isolation",
    "n0682": "project id",
    "n0683": "project id invalid, cannot home",
    "n0684": "project id, cannotsystemuser",
    "n0685": "project internal-sftp Match user interactive shell — TOTP SSH shell/scp",
    "n0686": "project managed log invalid",
    "n0687": "project",
    "n0688": "project or not settings home",
    "n0689": "projectcannotsystemuser",
    "n0690": "project",
    "n0691": "project (503)",
    "n0692": "projectCreate failed,",
    "n0693": "project domain — please firstsettingsdomain",
    "n0694": "project linux_user",
    "n0695": "project purge host nginx cache directory (not per-vhost zone)",
    "n0696": "projectMissing linuxUser — cannotcreate FTP",
    "n0697": "projectMissing linux_user",
    "n0698": "project; ＝",
    "n0699": "Project detail → Resources → create system user / migrate to /home/ysk-server-{id} (needs YSK_EXECUTE + root)",
    "n0700": "jail",
    "n0701": "Home directory missing or not under project isolation layout",
    "n0702": "not GeoIP — please \"IP \"update",
    "n0703": "not port, please firstproject",
    "n0704": "not to system Nginx (managed file)",
    "n0705": "not servercreate Redis, please redis-cli, TCP and YSK_EXECUTE=1",
    "n0706": "Not applied to vsftpd service — please \"apply\" or vsftpd servicepage donestart",
    "n0707": "Not appliedmaildomain",
    "n0708": "not Web interface — API",
    "n0709": "not GeoIP — please update",
    "n0710": "not DNSSEC key",
    "n0711": "not CDN node",
    "n0712": "not passkey",
    "n0713": "not (package will)",
    "n0714": "not settings LLM connection",
    "n0715": "not zone: please panel",
    "n0716": "CDN",
    "n0717": "No managed Nginx conf yet",
    "n0718": "Available HIT/MISS — overall hit-rate Unknown",
    "n0719": "No projects yet",
    "n0720": "— please first plan",
    "n0721": "Ready",
    "n0722": "and cookie",
    "n0723": "enable --now fail2ban",
    "n0724": "galera_new_cluster (bootstrap)",
    "n0725": "Reloaded fail2ban",
    "n0726": "reload nginx",
    "n0727": "Restarted fail2ban",
    "n0728": "scp zone (written on peer ≠ named reloaded)",
    "n0729": "scp to peer /tmp (written on peer ≠ service restarted)",
    "n0730": "systemctl reload nginx",
    "n0731": "and Roundcube",
    "n0732": "Disabled UFW (Warning: hostport)",
    "n0733": "project php.ini; apply FPM/",
    "n0734": "managesettings (Not applied to systemservice)",
    "n0735": "settings (not applysystem)",
    "n0736": "Deleted",
    "n0737": "Deleted key · authorized_keys",
    "n0738": "Deletedcluster; system conf manual (v1 )",
    "n0739": "Deletedlocalkey",
    "n0740": "ip addr add (settingsWrote, reboot )",
    "n0741": "apply databases (restart)",
    "n0742": "off/restart",
    "n0743": "to system and reload",
    "n0744": "start",
    "n0745": "Enabled HSTS",
    "n0746": "NTP synchronization enabled",
    "n0747": "Enabled UFW",
    "n0748": "Enabled WebDAV · Basic user ysk · password for token ()",
    "n0749": "Enabled systemd service",
    "n0750": "stop redis",
    "n0751": "nginx cache directory and reload (hostnot proxy_cache can )",
    "n0752": "serverdonecertificateplease",
    "n0753": "Applied CF-only UFW (origin CF + keptport)",
    "n0754": "Applied fail2ban",
    "n0755": "Appliedsettings to system Postfix",
    "n0756": "Applied to system Nginx",
    "n0757": "Appliedfirewallrule",
    "n0758": "Installed and ysk-server.service",
    "n0759": "Installed to user system crontab",
    "n0760": "Wrote.google_authenticator ( 5 scratch codes)",
    "n0761": "Wrote rspamd multimap + postfix snippet",
    "n0762": "Wroteinstall",
    "n0763": "Wrote; please \"applylimits to OS\" or Deploy write unit",
    "n0764": "Wrote management jail.local (not applied to system)",
    "n0765": "Written to managed files; not yet applied to system conf.d",
    "n0766": "Wrote settings (not package)",
    "n0767": "Wrote; projectwillprocess",
    "n0768": "Wrotemanaged file, Not appliedsystem conf: YSK_EXECUTE=1",
    "n0769": "Wrotemanaged file, Not appliedsystem conf: requires root",
    "n0770": "block: candidateVersion",
    "n0771": "block: update",
    "n0772": "block: Administrator permission required",
    "n0773": "create DNSSEC directory ()",
    "n0774": "from",
    "n0775": "from (disk install not; uninstall --purge)",
    "n0776": "from; systemaccount DROP USER (: not drop)",
    "n0777": "from connection",
    "n0778": "deny",
    "n0779": "deny by allowlist",
    "n0780": "deny: raisetarget",
    "n0781": "scan nginx access log",
    "n0782": "MySQL/MariaDB createuser",
    "n0783": "PostgreSQL create",
    "n0784": "version ()",
    "n0785": "",
    "n0786": "",
    "n0787": "catch-all",
    "n0788": "DS (please registrar — panelwill)",
    "n0789": "addbackup ( dataDir master key can )",
    "n0790": "SHA512-CRYPT hashpassword (Dovecot)",
    "n0791": "skipped Nginx settingscheck (Not installed or not systemchangepermission)",
    "n0792": "certificatepath (file /etc/ysk-server/certs)",
    "n0793": "UA",
    "n0794": "",
    "n0795": "",
    "n0796": "Removed",
    "n0797": "Removed",
    "n0798": ",",
    "n0799": "version = apt Candidate, Availableraise",
    "n0800": "Copied to /etc/fail2ban/jail.local",
    "n0801": "(filenot; can uninstall)",
    "n0802": "restart",
    "n0803": "off",
    "n0804": "restart postgresql",
    "n0805": "restart redis-server",
    "n0806": "restart redis-server with applyrestart",
    "n0807": "restart (reload)",
    "n0808": "Connection re-enabled (persists after reboot)",
    "n0809": "TLS edge conf ()",
    "n0810": "Nginx reloaded (static site live if DNS points here)",
    "n0811": "Nginx reloaded",
    "n0812": "System change permission is on (YSK_EXECUTE)",
    "n0813": "password — Roundcube can login",
    "n0814": "manage; systempermission FTP service",
    "n0815": "account (usermod -U)",
    "n0816": "account (usermod -L)",
    "n0817": "pathscan",
    "n0818": "this IP",
    "n0819": "createsystemuserrequiressystemadminpermission",
    "n0820": "createmaildomain and page apply",
    "n0821": "done",
    "n0822": "\"\"",
    "n0823": "Review SSH and non-essential ports",
    "n0824": "",
    "n0825": "1 replica; can primary conf",
    "n0826": "2 node ( 3); can",
    "n0827": "Consider CDN Under Attack mode",
    "n0828": "enable ban",
    "n0829": "HTTPS (HTTP→301)",
    "n0830": "Default authentication plugin",
    "n0831": "",
    "n0832": ": status=active",
    "n0833": "Error log path",
    "n0834": "(ms)",
    "n0835": "General log",
    "n0836": "certificateplease Failed",
    "n0837": "≥ file",
    "n0838": "settingskeptbackup",
    "n0839": "Success means this target accepts BatchMode SSH (non-interactive). It is not a grant of global access.",
    "n0840": "or 32767",
    "n0841": "softwareInstalled",
    "n0842": "permission/",
    "n0843": "",
    "n0844": "Not found CLI binary — systemd will enable silent placeholder",
    "n0845": "Not found DNS zone — please dns.zoneId, or firstcreatedomain zone",
    "n0846": "Not found PowerDNS — please install pdns-server / pdns-tools",
    "n0847": "Not found Roundcube plugins directory — Wrote; please install Roundcube or roundcubePluginsDir",
    "n0848": "Not found SQL",
    "n0849": "Not found Sieve",
    "n0850": "Not found config.inc.php — please: $config[\\'plugins\\'][] = \\'ysk_sso\\';",
    "n0851": "Not found edge.conf — please first",
    "n0852": "Not found: key",
    "n0853": "Not found: migrate job",
    "n0854": "Not found pm2 — cannot with PM2 stop",
    "n0855": "Not found",
    "n0856": "Cluster not found",
    "n0857": "Not foundcan reload local nameserver (rndc/named/bind9/pdns)",
    "n0858": "Not foundAvailablecertificate — please first SSL page, or LE",
    "n0859": "Not foundAvailable NetworkManager connection",
    "n0860": "Not found",
    "n0861": "Not found",
    "n0862": "Project not found access log — please nginx access_log path or log",
    "n0863": "Not found",
    "n0864": "Not found",
    "n0865": "Not foundversion",
    "n0866": "Not foundnode",
    "n0867": "Not founddatabase",
    "n0868": "deny",
    "n0869": "deny down loopback",
    "n0870": "deny renice",
    "n0871": "deny systemctl enable: Not installed agent CLI ( placeholder running)",
    "n0872": "deny loopback ()",
    "n0873": "denydelete loopback",
    "n0874": "deny homeDir — please overwriteHome + confirmPhrase or targetdirectory",
    "n0875": "deny PID 1 (init/systemd )",
    "n0876": "deny ysk; can forceControlPlane",
    "n0877": "deny (ysk-server); requiresplease forceSelf",
    "n0878": "denyreadpath",
    "n0879": "denypath or not",
    "n0880": "persist default requires Gateway",
    "n0881": "Persistence",
    "n0882": "for",
    "n0883": "Command blocked: host change requires system-change permission (YSK_EXECUTE)",
    "n0884": "scan",
    "n0885": "scanpath",
    "n0886": "probe INFO replication",
    "n0887": "probe SHOW MASTER / REPLICA STATUS",
    "n0888": "probe pg_is_in_recovery / pg_stat_replication",
    "n0889": "probe wsrep (SHOW STATUS LIKE 'wsrep%')",
    "n0890": "Control plane wrote config but it is not applied on the host — use Apply on each feature page",
    "n0891": "Control plane stays in normal mode",
    "n0892": "Control-plane emergency degrade (local ops)",
    "n0893": "Control-plane data directory",
    "n0894": "Control plane enters ddos-protection hint",
    "n0895": "complete (partial/failed)",
    "n0896": "Faster auth when clients use IPs only",
    "n0897": ": Cloudflare zones + CF_API_TOKEN firstcan Under Attack API",
    "n0898": "cannotdone",
    "n0899": "Nginx and fail2ban",
    "n0900": "Performance & resources",
    "n0901": "IP/domain. please check Spamhaus etc, and.",
    "n0902": "A/AAAA (apex and www)",
    "n0903": "DMARC TXT",
    "n0904": "MX/SPF/DKIM DNS",
    "n0905": "_dmarc TXT with and.",
    "n0906": "Method + thresholds",
    "n0907": "DNS MX, SPF (TXT) and DKIM (TXT). Cloudflare: mailoffplease DNS ().",
    "n0908": "Install PowerDNS tools from DNS page",
    "n0909": "Install certbot from SSL page",
    "n0910": "Install fail2ban from Defense Center or the software banner",
    "n0911": "Install and enable UFW from Defense Center",
    "n0912": "Install Redis from the Redis page",
    "n0913": "Install required packages for this check",
    "n0914": "Daily",
    "n0915": "Logs",
    "n0916": "logwriteproject logs directory",
    "n0917": "log",
    "n0918": "log",
    "n0919": "logpathallow",
    "n0920": "log etc",
    "n0921": "logpathinvalid",
    "n0922": "",
    "n0923": "and",
    "n0924": "Table open cache",
    "n0925": "PHP version",
    "n0926": "More fail2ban jails, faster bans",
    "n0927": "please Redis",
    "n0928": "update fail2ban jail (managed file)",
    "n0929": "updateIncomplete",
    "n0930": "Strictest Nginx limits (~1 req/s)",
    "n0931": "12 directory",
    "n0932": "8 nameserver",
    "n0933": "file",
    "n0934": "",
    "n0935": "WAL",
    "n0936": "",
    "n0937": "",
    "n0938": "Max connect errors",
    "n0939": "",
    "n0940": "HTTP server (/health)+ public directory",
    "n0941": "",
    "n0942": "",
    "n0943": "Availableraise",
    "n0944": "When scans / brute-force appear",
    "n0945": "",
    "n0946": "database/Redis dump Failed, (will transfer)",
    "n0947": "serviceinvalid",
    "n0948": "not WordPress (/)— WORDPRESS_INSTALL.txt",
    "n0949": "not with system unit start (Requires root + )— pidfile",
    "n0950": "not to pam_google_authenticator — apt install libpam-google-authenticator",
    "n0951": "not 2FA",
    "n0952": "Control-plane summary exported only (Nginx not synced)",
    "n0953": "Not applied to system nginx ( YSK_EXECUTE + root)— Status: written",
    "n0954": "Not applied to system: YSK_EXECUTE + root",
    "n0955": "redis-cli is not installed",
    "n0956": "not writefile",
    "n0957": "not systemcan verifychange — will ok",
    "n0958": "not to postgresql conf.d — conf dataDir; willAppliedsystem",
    "n0959": "not to secrets/ssh/.master.key YSK_SECRETS_KEY — targetcan cannot vault/2FA",
    "n0960": "not",
    "n0961": "Not probed",
    "n0962": "not certbot/LE cron (Availablesystem certbot.timer)",
    "n0963": "not nginx conf",
    "n0964": "Unknown passkey",
    "n0965": "Unknown source (journal:... / file:... / project:...)",
    "n0966": "Unknown",
    "n0967": "Unknownsoftware",
    "n0968": "Unknownsoftware ID",
    "n0969": "Unknownsoftware",
    "n0970": "Unknown",
    "n0971": "not, deny ( dump )",
    "n0972": "not project home — write ftps/ssh; sshd Match",
    "n0973": "not applyupdate: please YSK_SOURCE_ROOT git directory, or publish npm package YSK_NPM_PACKAGE",
    "n0974": "not — will\"\"",
    "n0975": "not — will",
    "n0976": "not City Lite — /ASN; updatecan DB-IP ( CC BY)",
    "n0977": "not City Lite — /; please update ( DB-IP)",
    "n0978": "not to /etc/nginx (not root or not EXECUTE)— managed conf dataDir",
    "n0979": "not settings CF_API_TOKEN — cannot Cloudflare API",
    "n0980": "not settings Cloudflare API Token — dry-run",
    "n0981": "not settings (disable)",
    "n0982": "Done",
    "n0983": "not please install to system (installSystem=false)",
    "n0984": "YSK_EXECUTE is not enabled",
    "n0985": "System change is off (control plane can write settings only)",
    "n0986": "not enablesystemchange: cannot dnssec-keygen",
    "n0987": "not password — verify email ()",
    "n0988": "not verify/reload: serverHost execute is not enabled (writemanaged file)",
    "n0989": "conf, please first plan",
    "n0990": "backup",
    "n0991": "zone",
    "n0992": "certificate ( or from not )",
    "n0993": "invalid",
    "n0994": "Ban rate limit reached this hour — check Defense Center",
    "n0995": "local ip can Supports -j; please raise iproute2 ( notes)",
    "n0996": "local nginx -t OK ( managed conf, ≠ edge applied)",
    "n0997": "local wsrep can, size not node",
    "n0998": "local ysk.json cannotread / fingerprint",
    "n0999": "Local node is OK; a complete healthy status needs a peer probe (not done).",
    "n1000": "local nginx — conf Wrote, not reload",
    "n1001": "localAvailable NM connection; willSuccess. can \"\" or NetworkManager.",
    "n1002": "localAvailable ps — cannot ()",
    "n1003": "local NM connection; willSuccess. can \"\" or NetworkManager.",
    "n1004": "can ban",
    "n1005": "invalid",
    "n1006": "serviceStatus",
    "n1007": "Root filesystem usage is over 90%",
    "n1008": "directoryinvalid",
    "n1009": "Root disk space",
    "n1010": "Overview",
    "n1011": "TcpListener ( crate); Cargo.toml",
    "n1012": "net/http; go.mod; / and /health",
    "n1013": "Mode: production ready",
    "modeProductionCapable": "production ready",
    "modeDegraded": "degraded",
    "n1014": ": not",
    "n1015": "Dry-run finished — nothing copied or reloaded (turn off dry-run for real sync)",
    "n1016": "Dry-run finished — real sync needs root and YSK_EXECUTE",
    "n1017": "with.conf",
    "n1018": "with.sieve",
    "n1019": "Files",
    "n1020": "file and POST",
    "n1021": "File does not exist or can",
    "n1022": "File does not exist or Deleted",
    "n1023": "checkprocess; host",
    "n1024": "checkfile",
    "n1025": "check ()",
    "n1026": "check",
    "n1027": "for, cannotwrite",
    "n1028": "permission for 3–4",
    "n1029": "permission and",
    "n1030": "OK",
    "n1031": "Day-to-day operations",
    "n1032": "please SECRET_KEY/DEBUG and configdatabase",
    "n1033": "planner Supports mariadb + mariadb-galera",
    "n1034": "planner Supports mysql + mysql-replica",
    "n1035": "thishost systemd servicemanage",
    "n1036": "thisproject Node runtime, please Node",
    "n1037": "thisproject Node runtime, please Node ( or runtime for static)",
    "n1038": "thisupdate (/). please apply.",
    "n1039": "this for (DNS /IP ); cannot PTR/ 25",
    "n1040": "thisapply to system",
    "n1041": "thissoftware apt package",
    "n1042": "settings;,, limits",
    "n1043": "project with Linux user/active",
    "n1044": "Hourly auto-ban cap",
    "n1045": "(IPinfo Lite)",
    "n1046": "Permanent ban",
    "n1047": "edge node — please first CDN page edge",
    "n1048": "can apply raise ( candidate or and version)",
    "n1049": "projectcan restic",
    "n1050": "projectcan backup (0 )— for Failed",
    "n1051": "can for",
    "n1052": "log/backup; hostsettings",
    "n1053": "firewallrule — deny",
    "n1054": "requires and",
    "n1055": "createsystemuser...",
    "n1056": "browserenabledone WP install",
    "n1057": ".zone can",
    "n1058": "HostExecutor — please chown file",
    "n1059": "HostExecutor — chown (please chown)",
    "n1060": "IP write DNS",
    "n1061": "NM connectioncan;",
    "n1062": "NM connectioncan;",
    "n1063": "Redis dump",
    "n1064": "SQL database dump",
    "n1065": "SSH target",
    "n1066": "SSH/fleet target",
    "n1067": "access log cache status, cache directory — hit-rate Unknown (please log_format or first apply edge)",
    "n1068": "access=fleet fleetAgentId",
    "n1069": "access=ssh — please create:ssh or members",
    "n1070": "Written on control plane; not applied on host",
    "n1071": "apt-get",
    "n1072": "authentication challenge",
    "n1073": "bind_ip",
    "n1074": "dataDir — updatedatabase",
    "n1075": "domain vacation.sieve — skipped per-mailbox",
    "n1076": "edge can apply ( skip/drain)— conf written",
    "n1077": "galera_new_cluster; restart mariadb",
    "n1078": "home_dir",
    "n1079": "install — Status for stored",
    "n1080": "linuxUser",
    "n1081": "master key / YSK_SECRETS_KEY",
    "n1082": "nameserver (can not config)",
    "n1083": "rdbRelPath",
    "n1084": "registration challenge",
    "n1085": "ssh peer",
    "n1086": "ssh peer can",
    "n1087": "sshpass ( key/agent )",
    "n1088": "vacation.sieve can",
    "n1089": "vhost requiresupdate ( or conf server )",
    "n1090": "wsrep Status (can not Galera or servicenot )",
    "n1091": "active jail or fail2ban not running",
    "n1092": "log",
    "n1093": "can system ( written)",
    "n1094": "can target ( healthUrl / baseUrl / publicIpv4)",
    "n1095": "Available access log ( or )",
    "n1096": "Available access log (Available / ban)",
    "n1097": "Available access/auth log",
    "n1098": "Available edge IP — DNS (kept managed )",
    "n1099": "Available strict user ( or not )",
    "n1100": "invalid conf",
    "n1101": "Invalid export id",
    "n1102": "invalid export",
    "n1103": "Invalid linux_user",
    "n1104": "Invalid public key",
    "n1105": "Invalid snapshot id",
    "n1106": "Invalid token",
    "n1107": "Invalid unit",
    "n1108": "invalid unit",
    "n1109": "invalid vacuum-size (: 500M)",
    "n1110": "invalid vacuum-time (: 7d)",
    "n1111": "invalidbackup",
    "n1112": "invalidbackup",
    "n1113": "invalidport",
    "n1114": "invalid key",
    "n1115": "invalid projectId",
    "n1116": "invalid backup",
    "n1117": "invalid pattern",
    "n1118": "invalidrule",
    "n1119": "invaliddatabase",
    "n1120": "domain — map for (systemapplywill postmap )",
    "n1121": "IP",
    "n1122": "Available auto-ban enrich",
    "n1123": "Cannot ban on the host: YSK_EXECUTE is off. The panel list was not changed.",
    "n1124": "cannot dump Redis: redis-cli",
    "n1125": "cannot dump: serverHost execute is not enabled",
    "n1126": "cannot fan-out: Host execute is not enabled",
    "n1127": "cannot import: serverHost execute is not enabled",
    "n1128": "cannot list: Host execute is not enabled",
    "n1129": "cannot probe DNS cluster: Host execute is not enabled",
    "n1130": "cannot probe: Host execute is not enabled (SSH EXECUTE)",
    "n1131": "cannot purge cache: Host execute is not enabled (YSK_EXECUTE)",
    "n1132": "cannot purge: Host execute is not enabled",
    "n1133": "cannot remote reload: Host execute is not enabled",
    "n1134": "cannot restic: Host execute is not enabled",
    "n1135": "cannot restore: Host execute is not enabled",
    "n1136": "cannot scp: YSK_EXECUTE=1",
    "n1137": "cannot stat home",
    "n1138": "cannot symlink: Host execute is not enabled",
    "n1139": "cannot unban: Host execute is not enabled",
    "n1140": "cannot unban: YSK_EXECUTE",
    "n1141": "cannot Adminer: Host execute is not enabled",
    "n1142": "cannot WordPress: serverHost execute is not enabled",
    "n1143": "cannot PM2, localprocessmanage",
    "n1144": "cannot: not enable YSK_EXECUTE",
    "n1145": "cannotstop PM2: serverHost execute is not enabled",
    "n1146": "cannot SSL: Host execute is not enabled",
    "n1147": "Sync blocked: needs YSK_EXECUTE",
    "n1148": "cannot to system Nginx: Host execute permission required",
    "n1149": "cannotstart PM2: serverHost execute is not enabled",
    "n1150": "cannot Apache: Host execute permission required",
    "n1151": "cannot NTP: Host execute permission required and root",
    "n1152": "cannot PHP-FPM: requiressystemadminpermission",
    "n1153": "cannot systemd service (please permission)",
    "n1154": "cannot systemd service: requiressystemadminpermission",
    "n1155": "cannotservice: requiressystemadminpermission",
    "n1156": "cannot targetinstall rsync, target rsync",
    "n1157": "cannot systemcreateaccount: requires YSK_EXECUTE + root; (written/blocked)",
    "n1158": "cannot certbot: Host execute is not enabled",
    "n1159": "cannotoperation: Host execute permission required (YSK_EXECUTE) and root",
    "n1160": "cannotapply to system: requires YSK_EXECUTE + root",
    "n1161": "cannotapplysystemsettings: Host execute permission required",
    "n1162": "cannotapply: Failed",
    "n1163": "cannotinstall PowerDNS: requiressystemadminpermission",
    "n1164": "cannotinstall to /etc/ssh: requires YSK_EXECUTE + root",
    "n1165": "cannotinstall to system: serverHost execute is not enabled (writemanaged file)",
    "n1166": "cannot: serverHost execute is not enabled or Not installedmailservice",
    "n1167": "cannotcreate virtual user database ( db_load)",
    "n1168": "cannotcreatedatabase, can Failed",
    "n1169": "cannotcreatesystemmailuser: requiressystemadminpermission",
    "n1170": "cannot from npm or GitHub version (not )",
    "n1171": "cannotprobe systemctl",
    "n1172": "cannot DNS cluster: Host execute is not enabled",
    "n1173": "Host execute is off. Live SFTP/S3/local probe needs YSK_EXECUTE=1.",
    "n1174": "cannot metrics",
    "n1175": "cannot: serverHost execute is not enabled",
    "n1176": "cannot ACME: Host execute is not enabled",
    "n1177": "cannot crypt passwordhash (requires openssl passwd)",
    "n1178": "cannot: serverHost execute is not enabled",
    "n1179": "cannot Tasks (ps state Failed)",
    "n1180": "cannot zone to dnssec directory",
    "n1181": "cannot ysk.json fingerprint",
    "n1182": "cannot /etc/resolv.conf",
    "n1183": "cannotread cmdline (can or permission)",
    "n1184": "cannotread numbered rule",
    "n1185": "cannotread statfs",
    "n1186": "cannotread: serverHost execute is not enabled",
    "n1187": "cannotreaduser with check 2FA",
    "n1188": "cannotreadtarget",
    "n1189": "cannotchange UFW: YSK_EXECUTE=1",
    "n1190": "cannotchangehost/: Host execute permission required and root",
    "n1191": "cannotchange: Host execute permission required (YSK_EXECUTE) and root",
    "n1192": "cannot PowerDNS zone: serverHost execute is not enabled",
    "n1193": "cannot IPv4/IPv6",
    "n1194": "cannotconnection 127.0.0.1:6379",
    "n1195": "cannotconnectiontarget",
    "n1196": "",
    "n1197": "No hard blockers in this probe",
    "n1198": "keydirectory",
    "n1199": "user",
    "n1200": "— system sieve",
    "n1201": "createdirectory",
    "n1202": "Circuit breaker",
    "n1203": "Wrote dataDir/security/fail2ban (not to /etc)",
    "n1204": "; please reload",
    "n1205": "Status draft — please to FTP servicepage \"apply\"willwrite vsftpd",
    "n1206": "Status and version",
    "n1207": "Status:",
    "n1208": "Status: applied (anvil + per-sender policy + maps)",
    "n1209": "Status: applied (symlink + config plugins[] Enabled)",
    "n1210": "Status: applied (directory)",
    "n1211": "Status: applied ( homeDir)",
    "n1212": "Status: applied (systemSuccess)",
    "n1213": "Status: applied (key+ zone; not registrar )",
    "n1214": "Status: blocked — managed fileWrote; not Postfix/Dovecot",
    "n1215": "Status: blocked (placeholder written)",
    "n1216": "Status: blocked (policy daemon; systemapply EXECUTE+root)",
    "n1217": "Status: executed ≠, to certbot done reload",
    "n1218": "Status: failed (nginx -t or reload failed)",
    "n1219": "Status: partial — will applied (Success)",
    "n1220": "Status: partial — systemFailed",
    "n1221": "Status: partial (symlink Success; config add plugins)— willcomplete applied",
    "n1222": "Status: preview only",
    "n1223": "Status: written/partial (system/reload/verifynot Success)",
    "n1224": "Status: written/partial (key stepsFailed — applied)",
    "n1225": "Status: written (apply=false; Not applied to system)",
    "n1226": "Status: written (blocked system apply)",
    "n1227": "Status: written (conf Wrote; reload blocked)",
    "n1228": "Status: written ()— edge Not applied; PR-C3 fan-out + nginx -t/reload",
    "n1229": "Status: written (Not applied to system Postfix/Rspamd)",
    "n1230": "Status: written (not to system Nginx; applySystem will try reload)",
    "n1231": "Status: written (manage; live fail2ban-client YSK_EXECUTE, or \"→apply to system\" jail.local)",
    "n1232": "Status: written (key/DS; zone not or not zone )",
    "n1233": "Status: written (not SSO)",
    "n1234": "Status: written (not /not )— Success",
    "n1235": "Status: written (/managed file)",
    "n1236": "Status: Wrote and Success reload nameserver",
    "n1237": "Status: Wrotemanage zone (not for DNS, not reload nameserver)",
    "n1238": "Status: Wrote managed file (Not applied to system)",
    "n1239": "Status: data (not )",
    "n1240": "TOTP ( and panel operator 2FA )",
    "n1241": "panel operator 2FA",
    "n1242": "Lifecycle",
    "n1243": "can off and reload",
    "n1244": "please disable",
    "n1245": "Production gate: not fully met — review the items below",
    "n1246": "Production gate: passed (permissions, Nginx, Node ready)",
    "n1247": "Production isolation: open the project Resources tab to create a Linux user and home",
    "n1248": "user 2–32 [a-z0-9._-]",
    "n1249": "please SSL requiresdomain and",
    "n1250": "limits; path:",
    "n1251": "system; can path",
    "n1252": "",
    "n1253": "Skip DNS name resolve",
    "n1254": "skipped chown (not with root )",
    "n1255": "skipped chown ( YSK_EXECUTE + root)— filecan for user",
    "n1256": "draining node",
    "n1257": "skipped reload: zone verifyFailed",
    "n1258": "remote reload (reload=false)— written ≠ applied",
    "n1259": "usermod (not os_provisioned)",
    "n1260": "skipped zone apply (applyZone=false)— update records",
    "n1261": "Skipped invalid username",
    "n1262": "DDoS — Degradedactive",
    "n1263": "IP: deny",
    "n1264": ": skipped",
    "n1265": "IP/domain and",
    "n1266": "Addresses to bind (0.0.0.0 = all)",
    "n1267": "",
    "n1268": "with localprocess",
    "n1269": "with PHP",
    "n1270": "permission to firewallStatus (not )",
    "n1271": "Not running as root; some system settings cannot be applied",
    "n1272": "target ysk.json Failed",
    "n1273": "target ysk-server CLI — please bootstrap or npm i -g ysk-server",
    "n1274": "target YSK data, forceWipeTarget",
    "n1275": "target rsync",
    "n1276": "for root",
    "n1277": "targetuser",
    "n1278": "target rsync ( bootstrap install)",
    "n1279": "targetrequires sshpass (Not installed)",
    "n1280": "targetFailed",
    "n1281": "targetnot passed",
    "n1282": "targetpassed",
    "n1283": "with.zip",
    "n1284": "really execute + YSK_EXECUTE=1",
    "n1285": "<?",
    "n1286": "skipped: not os_provisioned",
    "n1287": "guest user",
    "n1288": "80/443 can from to (LE HTTP-01)",
    "n1289": "PHP runtime and FPM Ready",
    "n1290": "Port 25",
    "n1291": "Disk, backups, AOF/WAL",
    "n1292": "Low disk space",
    "n1293": "",
    "n1294": "/local, apply geo",
    "n1295": "",
    "n1296": "; 0 = (CLI)",
    "n1297": "; please",
    "n1298": "package",
    "n1299": "How long to keep binary logs",
    "n1300": "invalid",
    "n1301": "edge node",
    "n1302": "hostversion",
    "n1303": "node host invalid",
    "n1304": "nodeinvalid",
    "n1305": "node draining —, Status draining",
    "n1306": "systemapply YSK_EXECUTE + root",
    "n1307": "systemuser (not provision or )",
    "n1308": "System administrator (root)",
    "n1309": "Not root — useradd / systemd / nginx system paths are restricted",
    "n1310": "System change permission",
    "n1311": "System load",
    "n1312": "System software",
    "n1313": "",
    "n1314": "",
    "n1315": "",
    "n1316": "(verifyportcannot)",
    "n1317": "cannotconnection",
    "n1318": "Web",
    "n1319": "rsync",
    "n1320": "ssh",
    "n1321": "ysk.json",
    "n1322": "Missing conf, please first plan",
    "n1323": "Missing dataDir, cannotinstall runtime",
    "n1324": "Missing linuxUser/homeDir",
    "n1325": "Temporary ban",
    "n1326": "keyFailed",
    "n1327": "keyInstall failed",
    "n1328": "VACUUM",
    "n1329": "ban → off ()",
    "n1330": "ban: not enablesystemchange (YSK_EXECUTE)",
    "n1331": "ban",
    "n1332": "Auto switch or manual",
    "n1333": "offdisable",
    "n1334": "IP: deny",
    "n1335": "",
    "n1336": ": Status written — not Dovecot/Pigeonhole ( ManageSieve or symlink)",
    "n1337": "auto-escalated",
    "n1338": "allow path",
    "n1339": "target",
    "n1340": "edge node",
    "n1341": "requiresdomain",
    "n1342": "requiresnode",
    "n1343": "requires (control/origin/edge/dns)",
    "n1344": "and panel operator 2FA",
    "n1345": "remote authorized_keys, update or authorize-self",
    "n1346": "Invalid domain",
    "n1347": "Tmp table size",
    "n1348": "filter/jail systemctl reload fail2ban",
    "n1349": "jail.local Failed",
    "n1350": "See audit log",
    "n1351": "Success (secret )",
    "n1352": "limit_req",
    "n1353": "invalid",
    "n1354": "Sum signals 0–100 → threat level",
    "n1355": "Memory, buffers, concurrency",
    "n1356": "",
    "n1357": "High memory use",
    "n1358": "Memory pressure",
    "n1359": "",
    "n1360": "Memory & V8",
    "n1361": "Max heap table size",
    "n1362": "can for",
    "n1363": "",
    "n1364": "Error to log",
    "n1365": "",
    "n1366": "settings DNS (PTR)",
    "n1367": "settingsmanage; system conf/restartpermission",
    "n1368": "settingsWroteApply failed",
    "n1369": "settingsWroteconnectionRestart failed; please nmcli connection up",
    "n1370": "settingsWroteconnectionFailed, please nmcli connection up",
    "n1371": "settings product ysk-server",
    "n1372": "settingsError ( for )",
    "n1373": "settingsMissing dataDir",
    "n1374": "block TCP 25. please, or SMTP.",
    "n1375": "Score",
    "n1376": ": create, etc CDN",
    "n1377": ": resolver will A —; edge IP or Anycast",
    "n1378": "please CIDR, 192.168.1.10/24",
    "n1379": "please POST /api/v1/ssl/upload or POST /api/v1/ssl/letsencrypt",
    "n1380": "please first CDN node (PR-C1)",
    "n1381": "please first maintenanceAccepted",
    "n1382": "Open Backup ops and check sideResults",
    "n1383": "Open the Backups page for details",
    "n1384": "Open Alerts → apply-status audit",
    "n1385": "Open Defense Center to review signals and switch the protection preset",
    "n1386": "please peer install conf and restart / join",
    "n1387": "Please enter serverName",
    "n1388": "please serverName and upstream",
    "n1389": "please serverName and directory",
    "n1390": "please serverName, directory and FPM socket",
    "n1391": "Please enter zone",
    "n1392": "please zone",
    "n1393": "please host",
    "n1394": "please cluster (≤64)",
    "n1395": "please",
    "n1396": "please user, and",
    "n1397": "please node (unavailable IP)",
    "n1398": "please DNS A/AAAA IP; checkfirewall and mail PTR",
    "n1399": "please XML to hostname, or to DNS host",
    "n1400": "Please specify IP",
    "n1401": "please action or mtu",
    "n1402": "Please specify dataDir",
    "n1403": "Please specify listenHost",
    "n1404": "please zip path",
    "n1405": "please backup",
    "n1406": "please Status (/)",
    "n1407": "please",
    "n1408": "please",
    "n1409": "please settingspath",
    "n1410": "Specify a path and permission",
    "n1411": "Specify a path and version",
    "n1412": "Specify a path and",
    "n1413": "please DKIM",
    "n1414": "please Git URL ( or first projectsettings)",
    "n1415": "please IP",
    "n1416": "please package",
    "n1417": "please package and version",
    "n1418": "please password ( 8 )",
    "n1419": "please",
    "n1420": "please",
    "n1421": "please — Enabled",
    "n1422": "please \"apply to system\" or PHP project (pool php_admin_*)",
    "n1423": "please /etc/default/ufw IPV6=yes",
    "n1424": "Ensure dataDir exists and the process can write to it",
    "n1425": "please nameserver, or \"restore DHCP DNS\"",
    "n1426": "please publicIpv4 / publicIpv6 / healthUrl / baseUrl",
    "n1427": "please",
    "n1428": "please file",
    "n1429": "please limits IP or HTTP auth",
    "n1430": "Warning: manifest packagedAt — DB please first package",
    "n1431": "Warning: unit for active Not found CLI binary (can placeholder unit)",
    "n1432": "Warning: target YSK data",
    "n1433": "Warning: thisinterface for, down can panel",
    "n1434": "Warning: secrets/ssh/.master.key YSK_SECRETS_KEY (vault/2FA can cannot)",
    "n1435": "Warning: config.json (can setup )",
    "n1436": "read banned Failed",
    "n1437": "read banned can permission; unban/ban YSK_EXECUTE",
    "n1438": "read banned Failed (permission or service)",
    "n1439": "read fail2ban bans Failed",
    "n1440": "readFailed",
    "n1441": "readlogFailed",
    "n1442": "readfile",
    "n1443": "readsystem",
    "n1444": "change default confirmDefault: true",
    "n1445": "changewillwritemanaged file; \"apply to system\"will /etc/php/.../conf.d and reload FPM",
    "n1446": "High load",
    "n1447": "datacan; install/restartserviceHost execute permission required",
    "n1448": "databasecan (>7 )— update",
    "n1449": "databasenot create. please mysql and YSK_EXECUTE=1.",
    "n1450": "databasenot create. please psql, TCP and YSK_EXECUTE=1.",
    "n1451": "database",
    "n1452": "database name",
    "n1453": "database",
    "n1454": "data directory",
    "n1455": "Open the project Resources tab to create the system user",
    "n1456": "limits",
    "n1457": "",
    "n1458": "pathallow",
    "n1459": "path allow log directory",
    "n1460": "pathdeny",
    "n1461": "",
    "n1462": "home: target canonical complete",
    "n1463": "; setquota please \"applylimits to OS\"",
    "n1464": "",
    "n1465": "datainvalid",
    "n1466": "; can package",
    "n1467": "for RAM 25%",
    "n1468": "Connections & network",
    "n1469": "(can KILL)",
    "n1470": "(kill -0 Failed)",
    "n1471": "Advanced",
    "n1472": ": secret panel ( and operator 2FA — )",
    "n1473": "Operations",
    "n1474": "SFTP settingscomplete (host/username/path)",
    "n1475": "applied ≠ cluster healthy — please probe --peers",
    "n1476": "migrate post Failed",
    "n1477": "mkdir Failed",
    "n1478": "post ok=false",
    "n1479": "backupnot (skipped)",
    "n1480": "install YSK_EXECUTE=1",
    "n1481": "Not found rndc / active named|bind9|pdns",
    "n1482": "Remote push or restic failed — local tar may have succeeded; see sideResults",
    "n1483": "file,,",
    "n1484": "active named/bind9/pdns (can scp file)",
    "n1485": "nginx — conf scp (written on peer)",
    "n1486": "Remote / restic steps processed",
    "n1487": "requires YSK_EXECUTE + root",
    "n1488": "restorenot chown (Requires root + YSK_EXECUTE)",
    "n1489": "DNSBL not completeSupports IPv6;",
    "n1490": "peer applied; written or Failed — cluster reload",
    "n1491": "peer reload Success (partial)",
    "n1492": "Some or all backups failed — see results",
    "n1493": "or Not applied to system ( YSK_EXECUTE)",
    "n1494": "Failed — check SSH key / firewall",
    "n1495": "Failed — steps",
    "n1496": "systemFailed",
    "n1497": "",
    "n1498": "PHP + Nginx ( app/public)",
    "n1499": "Can be overridden at deploy time",
    "n1500": "will go build -o app.; hostInstalled Go toolchain",
    "n1501": "will venv + pip; ExecStart uvicorn main:app",
    "n1502": "will venv + pip; entry app.py (not ASGI)",
    "n1503": "/apply FPM pool write php_admin_value",
    "n1504": ": panel\"\"willstart server.js; written ≠",
    "n1505": "mailhost A",
    "n1506": "mailhost AAAA (IPv6)",
    "n1507": "Mail management settings directory",
    "n1508": "ID invalid",
    "n1509": "invalid",
    "n1510": "for 1–1000000 MiB",
    "n1511": "1 MiB",
    "n1512": "restartsystemservice",
    "n1513": "ban add",
    "n1514": "reload vsftpd",
    "n1515": "reloadservice",
    "n1516": "Error etc",
    "n1517": "Error log, slow query log",
    "n1518": "Error and log",
    "n1519": "Threshold numbers",
    "n1520": "ROW recommended for replication",
    "n1521": "Wait timeout",
    "n1522": "Off",
    "n1523": "firewall ( UFW not applysystem)",
    "n1524": "firewall (): TCP 3306, 4567, 4444, 4568",
    "n1525": "Preset writes nginx limit_req",
    "n1526": "(hold), lower",
    "n1527": "Defense: critical",
    "n1528": "Defense: emergency preset suggested",
    "n1529": "Defense: possible attack",
    "n1530": "limitsWrote; apply to OS YSK_EXECUTE + root",
    "n1531": "Rate limit",
    "n1532": "",
    "n1533": "/ DB; Postfix/Rspamd please \"apply/ to system\"",
    "n1534": ": degraded — build/processcan with user; please createsystemuser",
    "n1535": ": degraded — processcan with user; please root + YSK_EXECUTE and createsystemuser",
    "n1536": "save; TOTP secret. Authenticator can.",
    "n1537": "EXECUTE + root firstcan vacuum",
    "n1538": "NetworkManager active persist DNS (will /etc/resolv.conf)",
    "n1539": "YSK_EXECUTE firstcan ufw apply",
    "n1540": "YSK_EXECUTE willreally auto-ban",
    "n1541": "YSK_EXECUTE banip",
    "n1542": "YSK_EXECUTE fail2ban service",
    "n1543": "YSK_EXECUTE=1 firstcan vacuum journal",
    "n1544": "execute:true or dryRun:true",
    "n1545": "nginx log_format $upstream_cache_status ( or X-YSK-Cache)first HIT/MISS",
    "n1546": "Requires root + YSK_EXECUTE willreally useradd; willSuccess",
    "n1547": "Requires root journalctl --vacuum",
    "n1548": "Requires root firstcan UFW",
    "n1549": "hostInstalled cargo/rustc",
    "n1550": "host Python and pip",
    "n1551": "host Python and pip (installwillFailed)",
    "n1552": "install bind9-dnsutils and enablesystemchangepermission, can really dnssec-keygen.",
    "n1553": "Requires confirm string EMERGENCY; avoid locking yourself out",
    "n1554": "system sshd Match/User settingswillreally",
    "n1555": "requires --target or resume --job",
    "n1556": "requires MySQL/MariaDB adminpermission",
    "n1557": "requires YSK_EXECUTE",
    "n1558": "requires YSK_EXECUTE Adminer",
    "n1559": "requires admin",
    "n1560": "requires aws CLI ( or restic s3 repo)",
    "n1561": "requires id or all",
    "n1562": "requires ip",
    "n1563": "requires jobId",
    "n1564": "requires linuxUser or projectId",
    "n1565": "requires master node",
    "n1566": "requires nginx geoip2 (libnginx-mod-http-geoip2)firstwill HTTP",
    "n1567": "requires primary node",
    "n1568": "requires privateKey",
    "n1569": "requires projectId",
    "n1570": "requires root",
    "n1571": "requires source",
    "n1572": "requires sshpass, YSK key (identityId), or local SSH key",
    "n1573": "requires target (root@host) or jobId with resume",
    "n1574": "requires target, or target jobId",
    "n1575": "requires username and ssh-",
    "n1576": "requires zone domain",
    "n1577": "requirespassword",
    "n1578": "requires email",
    "n1579": "requires email and domain",
    "n1580": "requiresversion and version",
    "n1581": "requires candidateVersion (can etc current or )",
    "n1582": "requiressystemadminpermissiondoneinstall",
    "n1583": "Root is required for lifecycle and system writes",
    "n1584": "Host execute permission required/reload",
    "n1585": "Host execute permission required to system and reload Nginx",
    "n1586": "Host execute permission required check_policy_service",
    "n1587": "Host execute permission required nginx conf and reload",
    "n1588": "Sync blocked: needs root",
    "n1589": "requires primary node",
    "n1590": "",
    "n1591": "Not root — useradd / systemd / nginx system paths are restricted",
    "n1592": "not seccomp requires runAsUser",
    "n1593": "Public requests / min",
    "n1594": "panelconnection; Available\"\" ( )",
    "n1595": "Panel is not running as root",
    "n1596": "Available apply:false",
    "n1597": "— not writefile",
    "n1598": "Default uvicorn workers",
    "n1599": "with Redis DB",
    "n1600": "",
    "n1601": "Local infile",
    "n1602": "logpathinvalid",
    "n1603": "startError",
    "n1604": "Error, and etc",
    "n1605": "Error ()",
    "n1606": "build can; Failed notes/log",
    "n1607": "",
    "n1608": "verifyinvalid",
    "n1609": "passed",
    "n1610": "Package index not refreshed (YSK_EXECUTE off) — showing apt list only; enable execute to run apt-get update",
    "n1611": "UFW is inactive: {{n}} permanent deny rule(s) are stored in user.rules but the kernel is not enforcing them.",
    "n1612": "UFW is inactive. A deny rule would be written to user.rules only — the kernel would not drop packets. Enable UFW first. Not enabling automatically.",
    "t0001": "listenPort invalid: {{v0}}",
    "t0002": "restoreversion {{v0}}",
    "t0003": "file (>{{v0}} bytes)",
    "t0004": ": {{v0}}",
    "t0005": "target: {{v0}}",
    "t0006": "not found: {{v0}}",
    "t0007": "Failed: {{v0}}",
    "t0008": "{{v0}} → {{v1}}",
    "t0009": "not found: {{v0}}",
    "t0010": "Failed: {{v0}}",
    "t0011": "{{v0}} → {{v1}}",
    "t0012": "cannot from Status {{v0}} for",
    "t0013": "thisoperationrequires: {{v0}}",
    "t0014": "Statusinvalid: {{v0}}",
    "t0015": "{{v0}}",
    "t0016": "Unknown: {{v0}}",
    "t0017": "{{v0}} cannot {{v1}} ( {{v2}})",
    "t0018": "{{v0}} not readoperationrequires id",
    "t0019": "host: {{v0}}",
    "t0020": "allow: {{v0}}",
    "t0021": "deny: {{v0}}",
    "t0022": "not found Playbook: {{v0}}",
    "t0023": "ip -j addr failed: {{v0}}",
    "t0024": "ip -j route failed: {{v0}}",
    "t0025": "nmcli writeFailed: {{v0}}",
    "t0026": "{{v0}} → connection\"{{v1}}\"",
    "t0027": "connection up warning: {{v0}}",
    "t0028": "Connection re-enabled (persists after reboot)",
    "t0029": "{{v0}} → {{v1}} (; rebootcan disappear)",
    "t0030": "from connection\"{{v0}}\" {{v1}}",
    "t0031": "NM: {{v0}}",
    "t0032": "Deleted {{v0}} ← {{v1}}",
    "t0033": "link down failed: {{v0}}",
    "t0034": "did down {{v0}}",
    "t0035": "link up failed: {{v0}}",
    "t0036": "did up {{v0}}",
    "t0037": "MTU Failed: {{v0}}",
    "t0038": "nmcli write gateway Failed: {{v0}}",
    "t0039": "save default gateway {{v0}} → connection\"{{v1}}\" (reboot )",
    "t0040": "nmcli write routes Failed: {{v0}}",
    "t0041": "save {{v0}} →\"{{v1}}\" (reboot )",
    "t0042": "ip route add failed: {{v0}}",
    "t0043": "add {{v0}}${gw?",
    "t0044": ": ''}(May not persist across reboot; use Save to persist)",
    "t0045": "from connection\"{{v0}}\" ipv4.gateway",
    "t0046": "NM gateway: {{v0}}",
    "t0047": "from \"{{v0}}\" {{v1}}",
    "t0048": "NM routes: {{v0}}",
    "t0049": "ip route del failed: {{v0}}",
    "t0050": "{{v0}}",
    "t0051": "{{v0}}",
    "t0052": "DNS invalid: {{v0}}",
    "t0053": "DNS IP: {{v0}}",
    "t0054": "nmcli modify failed: {{v0}}",
    "t0055": "restore {{v0}} DHCP DNS (ignore-auto-dns=no)",
    "t0056": "nmcli modify failed: {{v0}}",
    "t0057": "Wrote {{v0}}: DNS {{v1}}${search.length?",
    "t0058": "Failed: {{v0}}",
    "t0059": "{{v0}} → {{v1}}",
    "t0060": "{{v0}}",
    "t0061": "SSO token ({{v0}} )",
    "t0062": "Webmail Install failed: {{v0}}",
    "t0063": "{{v0}}",
    "t0064": "systemFailed: {{v0}}",
    "t0065": "vacation to {{v0}} sieve directory (written)",
    "t0066": "sieve +.dovecot.sieve → {{v0}}@{{v1}}",
    "t0067": "Disabled active sieve link → {{v0}}@{{v1}}",
    "t0068": "{{v0}}@{{v1}} sieve Failed: {{v2}}",
    "t0069": "Wrote per-sender policy daemon ({{v0}} domains)",
    "t0070": "{{v0}} failed (exit {{v1}}): {{v2}}",
    "t0071": "Wrote plugin {{v0}}",
    "t0072": "symlink failed: {{v0}}",
    "t0073": "did symlink {{v0}} → {{v1}}",
    "t0074": "config Failed: {{v0}}",
    "t0075": "config plugin {{v0}}: {{v1}}",
    "t0076": "Wrote {{v0}}: {{v1}}",
    "t0077": "{{v0}} and www.{{v1}} to server IP. CDN (Cloudflare)can or.",
    "t0078": "PTR VPS/ IP settings, and and HELO/EHLO ({{v0}}). please (AWS/GCP ).",
    "t0079": "{{v0}}",
    "t0080": "postsuper failed: {{v0}}",
    "t0081": "domain: {{v0}}",
    "t0082": ": {{v0}}",
    "t0083": "create Maildir: {{v0}}",
    "t0084": "createsystemuser {{v0}}",
    "t0085": "createsystemuserFailed: {{v0}}",
    "t0086": ": {{v0}}",
    "t0087": "write passdb Failed: {{v0}}",
    "t0088": ": {{v0}}",
    "t0089": "create {{v0}}: {{v1}} → {{v2}}",
    "t0090": "Mail domain not found: {{v0}}",
    "t0091": "Wrote vacation {{v0}}",
    "t0092": "Wrote {{v0}}",
    "t0093": "virtual_alias: {{v0}} ({{v1}} )",
    "t0094": "Postfix anvil: smtpd_client_message_rate_limit={{v0}} / 3600s (; domain rate )",
    "t0095": "postconf: {{v0}}",
    "t0096": "Wrote rspamd ratelimit.conf (~{{v0}}/h)",
    "t0097": "map ({{v0}} domains)",
    "t0098": "{{v0}}: block (allowlocal LLM)",
    "t0099": "LLM please Failed: {{v0}}",
    "t0100": "{{v0}}–{{v1}} Not foundAvailableport",
    "t0101": "please confirm: {{v0}}",
    "t0102": "{{v0}}s will with 1 (shutdown +N with )",
    "t0103": "restart ( {{v0}} )",
    "t0104": "off ( {{v0}} )",
    "t0105": "Read failed: {{v0}}",
    "t0106": "Failed: {{v0}}",
    "t0107": "serviceinvalid: {{v0}}",
    "t0108": "path allowwrite: {{v0}}",
    "t0109": "purge/reload failed: {{v0}}",
    "t0110": "DB {{v0}}: {{v1}} key",
    "t0111": "(type {{v0}} — )",
    "t0112": "Wrote {{v0}}",
    "t0113": "Write failed: {{v0}}",
    "t0114": "Key missing or not deleted",
    "t0115": "home: {{v0}}",
    "t0116": "cannot snapshots JSON: {{v0}}",
    "t0117": "{{v0}} restic",
    "t0118": "home confirmPhrase=\"{{v0}}\" ()",
    "t0119": "dry-run: snapshot {{v0}} {{v1}} path ( 100)",
    "t0120": "dry-run failed: {{v0}}",
    "t0121": "restore snapshot {{v0}} → {{v1}}",
    "t0122": "restore failed exit={{v0}}",
    "t0123": "Wrotemanage: {{v0}}",
    "t0124": "project Linux user {{v0}} (Match User ysks_*,ysk_*)",
    "t0125": "please: cp {{v0}} /etc/ssh/sshd_config.d/ && systemctl reload sshd",
    "t0126": "sshd -t Failed, not reload: {{v0}}",
    "t0127": "Installed {{v0}} and reload sshd",
    "t0128": "Installed reload failed: {{v0}}",
    "t0129": "Wrote {{v0}} ({{v1}} bytes)",
    "t0130": "Managed Nginx confs: {{v0}} (panel dataDir nginx/conf.d)",
    "t0131": "Unknown: {{v0}}",
    "t0132": "{{v0}}: {{v1}}",
    "t0133": "{{v0}} — skipped (force can )",
    "t0134": "WordPress install — {{v0}}",
    "t0135": "domain: {{v0}}",
    "t0136": "entry {{v0}}.wsgi:application (gunicorn)",
    "t0137": "will cargo build --release;./target/release/{{v0}}",
    "t0138": "Axum: cargo build --release crates.io",
    "t0139": "./target/release/{{v0}}",
    "t0140": "create {{v0}}, {{v1}}, Error {{v2}}",
    "t0141": "{{v0}}doneproject Linux user (page → createsystemuser).",
    "t0142": "home: /home/ysk-server-{{v0}} · user: {{v1}}",
    "t0143": "did chown {{v0}}:{{v1}} → {{v2}}",
    "t0144": "with projectuser {{v0}}",
    "t0145": "pidfile with runuser -u {{v0}} start",
    "t0146": "Wrote FPM pool: {{v0}}",
    "t0147": "Enabled pool: {{v0}}",
    "t0148": "/etc/php/{{v0}}/fpm not found — install php{{v1}}-fpm",
    "t0149": "{{v0}} Installed",
    "t0150": "install {{v0}}",
    "t0151": "not install {{v0}}",
    "t0152": "SSH probe failed: {{v0}}",
    "t0153": "nameserver: {{v0}}",
    "t0154": "zone directory ({{v0}}.zone)",
    "t0155": "zone directory: {{v0}}",
    "t0156": "remote reload failed: {{v0}}",
    "t0157": "{{v0}}: scp failed {{v1}}",
    "t0158": "scp {{v0}} OK → {{v1}}",
    "t0159": "scp /Failed (ok={{v0}} fail={{v1}})",
    "t0160": "enable failed: {{v0}}",
    "t0161": "disable failed: {{v0}}",
    "t0162": "UFW DENY from {{v0}} (rule, )",
    "t0163": "deny failed: {{v0}}",
    "t0164": "UFW DENY {{v0}}",
    "t0165": "delete failed: {{v0}}",
    "t0166": "rule #{{v0}}",
    "t0167": "#{{v0}} Failed: {{v1}}",
    "t0168": "allow {{v0}}/{{v1}}",
    "t0169": "allow failed: {{v0}}",
    "t0170": "reload Failed ({{v0}}): {{v1}}",
    "t0171": ": with projectuser {{v0}} active",
    "t0172": "Node: {{v0}}",
    "t0173": "port: {{v0}}",
    "t0174": "Appliedpanel Node ({{v0}})",
    "t0175": "applyNot found: {{v0}}",
    "t0176": "with systemd unit: {{v0}}",
    "t0177": "with PM2: {{v0}}",
    "t0178": "startprocessFailed: {{v0}}",
    "t0179": "start pid={{v0}}, pidfile={{v1}}",
    "t0180": "Nginx settings (managed file): {{v0}}",
    "t0181": "createpage: {{v0}}",
    "t0182": ": {{v0}}",
    "t0183": "Nginx settings: {{v0}}",
    "t0184": "directory: {{v0}}",
    "t0185": "HTTP: {{v0}} ({{v1}})",
    "t0186": ": {{v0}}",
    "t0187": "→ {{v0}}",
    "t0188": "certificate: {{v0}}",
    "t0189": "Enabled SSL ( Let’s Encrypt path; or SSL page {{v0}} certificate)",
    "t0190": "reload Nginx Failed: {{v0}}",
    "t0191": "Wrotehost: {{v0}}",
    "t0192": "Runtime {{v0}} — Git, restartprocess",
    "t0193": "Wrote {{v0}} ({{v1}} )",
    "t0194": "PHP-FPM pool user: {{v0}} (project)",
    "t0195": "runtime version → {{v0}}",
    "t0196": "panel php.ini ({{v0}} php_admin_*)",
    "t0197": "PHP-FPM Nginx settings: {{v0}}",
    "t0198": "Nginx reload ={{v0}}: {{v1}}",
    "t0199": "PHP server pid={{v0}} @ 127.0.0.1:{{v1}}",
    "t0200": "SIGTERM {{v0}}",
    "t0201": "SIGKILL {{v0}}",
    "t0202": "pid {{v0}}",
    "t0203": "deployProcess runtime\"{{v0}}\"",
    "t0204": ": with projectuser {{v0}} and start",
    "t0205": "Runtime: {{v0}} · port {{v1}} · entry {{v2}}",
    "t0206": ": {{v0}}",
    "t0207": "Failed: {{v0}}",
    "t0208": "Appliedpanel {{v0}} ({{v1}})",
    "t0209": "Wrote systemd: {{v0}}",
    "t0210": "enable --now project unit (User={{v0}})",
    "t0211": "systemctl Start failed: {{v0}}",
    "t0212": "writesystem unit Failed: {{v0}}",
    "t0213": "pidfile start pid={{v0}}${mode === 'isolated'?",
    "t0214": "pidfile Start failed: {{v0}}",
    "t0215": "checknot passed ({{v0}}ms): {{v1}}",
    "t0216": "checkpassed ({{v0}}ms)",
    "t0217": "Wrote Nginx: {{v0}}",
    "t0218": "{{v0}} banned IP",
    "t0219": "did unban {{v0}} @ {{v1}}",
    "t0220": "unban failed: {{v0}}",
    "t0221": "manage: {{v0}} ({{v1}} )",
    "t0222": "sshd ignoreip {{v0}} {{v1}} · Status: applied",
    "t0223": "fail2ban-client ignoreip Failed: {{v0}} (managed fileWrote; applied)",
    "t0224": "fail2ban jails: {{v0}}",
    "t0225": "Wrote unit {{v0}}",
    "t0226": "Status is still {{v0}} (not applied)",
    "t0227": "Unexpected apply_status: {{v0}}",
    "t0228": "database: {{v0}} ( 0–{{v1}})",
    "t0229": "to {{v0}}",
    "t0230": "cannot to system conf directory: {{v0}}",
    "t0231": "conf Failed: {{v0}}",
    "t0232": "restart {{v0}}",
    "t0233": "to {{v0}} Failed: {{v1}}",
    "t0234": "denydirectory: {{v0}}",
    "t0235": "directory: {{v0}}",
    "t0236": "skippeddirectory (scan): {{v0}}",
    "t0237": "{{v0}} (not )",
    "t0238": "journal php{{v0}}-fpm (pool log not )",
    "t0239": "grep\"{{v0}}\": {{v1}} (scan {{v2}} bytes)",
    "t0240": "{{v0}} (file {{v1}} bytes, )",
    "t0241": "{{v0}} (file {{v1}} bytes)",
    "t0242": "to {{v0}} log (not off)",
    "t0243": "cannotread: {{v0}}",
    "t0244": "\"{{v0}}\": {{v1}}, {{v2}} ()",
    "t0245": "{{v0}} serverNot installed",
    "t0246": "{{v0}} servicenot running",
    "t0247": "{{v0}} Not installed",
    "t0248": ": {{v0}}",
    "t0249": "server: {{v0}}",
    "t0250": "{{v0}} Ready",
    "t0251": "{{v0}} Install incomplete",
    "t0252": "{{v0}} servicestart",
    "t0253": "Start failed: {{v0}}",
    "t0254": "Supports Node.js version {{v0}}; available versions: {{v1}}",
    "t0255": "Supports PHP version {{v0}}; Available: {{v1}}",
    "t0256": "Supports Python version {{v0}}; Available: {{v1}}",
    "t0257": "Supports Go version {{v0}}; Available: {{v1}}",
    "t0258": "Unknown runtime: {{v0}}",
    "t0259": "dig: no answer (NXDOMAIN or empty)",
    "t0260": "{{v0}}",
    "t0261": "PostgreSQL failed: {{v0}}",
    "t0262": "MySQL failed: {{v0}}",
    "t0263": "{{v0}}: cannot DROP — EXECUTE+root ( expired)",
    "t0264": "{{v0}}: DROP failed {{v1}}",
    "t0265": "{{v0}}: DROP failed {{v1}}",
    "t0266": "{{v0}}: expired (not DROP systemaccount)",
    "t0267": "FTP user: {{v0}}",
    "t0268": "create FTP {{v0}}",
    "t0269": "Jail path: {{v0}}",
    "t0270": "Password stored as crypt hash (not plaintext)",
    "t0271": "with project Linux user: {{v0}} (apply vsftpd )",
    "t0272": "Skipped invalid username",
    "t0273": "{{v0}}: password → crypt hash",
    "t0274": "{{v0}} hashnot crypt (openssl unavailable)— can Failed",
    "t0275": "{{v0}} passwordhash, cannot",
    "t0276": "{{v0}} project linuxUser — guest\"{{v1}}\" (please FTP )",
    "t0277": "Wrote {{v0}} settings",
    "t0278": "{{v0}}",
    "t0279": "{{v0}} Applied, vsftpd Running",
    "t0280": "skipped chown {{v0}}: systemuser\"{{v1}}\" (please firstcreateprojectsystemuser)",
    "t0281": "chown failed {{v0}}: {{v1}}",
    "t0282": "FTP directory ({{v0}})",
    "t0283": "project {{v0}} directory",
    "t0284": "project {{v0}} public",
    "t0285": "mail {{v0}}",
    "t0286": "not createsystemuser (requiressystemadminpermission). home: {{v0}}; directory.",
    "t0287": "{{v0}}; home {{v1}}",
    "t0288": "stop {{v0}}",
    "t0289": "Removed home: {{v0}}",
    "t0290": "home not (can ): {{v0}} — {{v1}}",
    "t0291": "denydelete home path: {{v0}}",
    "t0292": "not OS home (Requires root): {{v0}}; systemuser {{v1}} can",
    "t0293": "pdnsutil load-zone failed: {{v0}}",
    "t0294": "pdnsutil zone {{v0}}",
    "t0295": "systemctl {{v0}} fail2ban ok",
    "t0296": "{{v0}} failed: {{v1}}",
    "t0297": "fail2ban ban {{v0}} @ {{v1}} (, bantime limits)",
    "t0298": "banip failed: {{v0}}",
    "t0299": "jails: {{v0}}",
    "t0300": "ignoreip: dataDir/fail2ban/ignoreip.txt",
    "t0301": "installcheck: {{v0}}",
    "t0302": "project {{v0}} (package: {{v1}})",
    "t0303": "{{v0}} (package: {{v1}})",
    "t0304": "database {{v0}} (package: {{v1}})",
    "t0305": "Wrote {{v0}} (DB {{v1}}@{{v2}}; Available)",
    "t0306": "pm2 start failed: {{v0}}",
    "t0307": "pm2 start {{v0}}",
    "t0308": "{{v0}} is not installed",
    "t0309": "{{v0}}",
    "t0310": "Applied {{v0}}",
    "t0311": "with can restart: {{v0}}",
    "t0312": "apply {{v0}}",
    "t0313": "restart (please restart): {{v0}}",
    "t0314": "ALTER SYSTEM {{v0}} and reload",
    "t0315": "restart: {{v0}}",
    "t0316": "did {{v0}} {{v1}}",
    "t0317": "ini: {{v0}}",
    "t0318": "/etc/php/{{v0}}/fpm — please firstinstall php{{v1}}-fpm",
    "t0319": "Applied {{v0}} and reload php{{v1}}-fpm",
    "t0320": "ini; reload failed: {{v0}}",
    "t0321": "DNS zone draft {{v0}} ( to DNS write/apply)",
    "t0322": "IPv6 {{v0}}",
    "t0323": "maildomain {{v0}}",
    "t0324": "MySQL DB draft {{v0}} ( to databaseapply)",
    "t0325": "skipped: directory {{v0}}",
    "t0326": "Backed up {{v0}}/{{v1}} project(s)",
    "t0327": " (skipped {{v0}} without a home dir)",
    "t0328": "projectdirectory: {{v0}}",
    "t0329": "tar failed: {{v0}}",
    "t0330": "Wrote backup {{v0}}",
    "t0331": "Preview: {{v0}} files in the archive (showing {{v1}})",
    "t0332": "cannot: {{v0}}",
    "t0333": "restore (web) to {{v0}}",
    "t0334": "web restoreFailed: {{v0}}",
    "t0335": "restoreFailed: {{v0}}",
    "t0336": "from {{v0}} restore to projectdirectory",
    "t0337": "did chown {{v0}}:{{v1}} → {{v2}}",
    "t0338": ": {{v0}}",
    "t0339": "manage crontab: {{v0}}",
    "t0340": "crontab failed: {{v0}}",
    "t0341": "pg_dump failed: {{v0}}",
    "t0342": "dump failed: {{v0}}",
    "t0343": "psql failed: {{v0}}",
    "t0344": "import failed: {{v0}}",
    "t0345": "target {{v0}} not git — deny clone with data (.ysk-scaffold )",
    "t0346": "did clone {{v0}} → {{v1}}",
    "t0347": "pull update: {{v0}}",
    "t0348": "linuxUser invalid: {{v0}}",
    "t0349": "Applied {{v0}}: {{v1}} + www-data/nginx; home 750, public g+rX",
    "t0350": "ysk-web applyFailed: {{v0}}",
    "t0351": "path {{v0}}",
    "t0352": "nginx conf: {{v0}}",
    "t0353": "Download failed: {{v0}}",
    "t0354": "Adminer → {{v0}}",
    "t0355": "{{v0}}",
    "t0356": "nginx conf: {{v0}}",
    "t0357": "→ {{v0}}",
    "t0358": "portinvalid: {{v0}}",
    "t0359": "with user {{v0}} install crontab",
    "t0360": "key {{v0}}",
    "t0361": "zone → {{v0}} ( reload DNS; DS manual registrar)",
    "t0362": "not to managed zone ( dns/zones/{{v0}}.zone)—",
    "t0363": "{{v0}} file under {{v1}}",
    "t0364": "TCP {{v0}}:{{v1}} OK ({{v2}}ms)",
    "t0365": "TCP {{v0}}:{{v1}} failed: {{v2}}",
    "t0366": "PING failed: {{v0}}",
    "t0367": ": {{v0}}MB > {{v1}}MB",
    "t0368": "({{v0}} / {{v1}} MiB), cannot{{v2}}",
    "t0369": "Home path is not ready ({{v0}})",
    "t0370": "Linux user {{v0}} not provisioned",
    "t0371": "Ready {{v0}} / degraded {{v1}} / not isolated {{v2}} ({{v3}} total)",
    "t0372": " · Pending: {{v0}}{{v1}}",
    "t0373": "Project \"{{v0}}\" isolation",
    "t0374": "to localpath {{v0}}",
    "t0375": "identity {{v0}}: {{v1}}",
    "t0376": "sftp (identity) to {{v0}} ok",
    "t0377": "sftp (identity) failed: {{v0}}",
    "t0378": "sftp to {{v0}} ok",
    "t0379": "sftp failed: {{v0}}",
    "t0380": "sftp to {{v0}} ok",
    "t0381": "sftp failed: {{v0}} (set backup remote identityId)",
    "t0382": "S3 {{v0}}",
    "t0383": "S3 failed: {{v0}}",
    "t0384": ": {{v0}}/{{v1}} admin Enabled 2FA",
    "t0385": "Policy not enforced: {{v0}}/{{v1}} admin(s) have 2FA. If there is a single admin without 2FA, enable 2FA then add a backup admin.",
    "t0386": "{{v0}} PATH",
    "t0387": "{{v0}} not found",
    "t0388": "Install {{v0}} or add it to PATH",
    "t0389": "Available versions: {{v0}}",
    "t0390": "{{v0}}% ( {{v1}} MB)",
    "t0391": "{{v0}}% ({{v1}})",
    "t0392": "servicestart {{v0}}",
    "t0393": "Mode: {{v0}}",
    "t0394": "Ready {{v0}} / Degraded {{v1}} / Missing {{v2}} ({{v3}} total)",
    "t0395": "Not found ( {{v0}})",
    "t0396": "host node: {{v0}}",
    "t0397": "host php: {{v0}}",
    "t0398": "host python: {{v0}}",
    "t0399": "host go: {{v0}}",
    "t0400": "host cargo: {{v0}}",
    "t0401": "Node Available: {{v0}}",
    "t0402": "PHP Available: {{v0}}",
    "t0403": "Python Available: {{v0}}",
    "t0404": "Go Available: {{v0}}",
    "t0405": "Rust Available: {{v0}}",
    "t0406": "install Node {{v0}}",
    "t0407": "install PHP {{v0}}",
    "t0408": "install Python {{v0}}",
    "t0409": "install Go {{v0}} to /usr/local/ysk/go",
    "t0410": "install Rust ({{v0}}) to /usr/local/ysk/rust",
    "t0411": "Install failed: {{v0}}",
    "t0412": "Prepared OpenJDK {{v0}} install script",
    "t0413": "Prepared Kotlin {{v0}} install script (needs JDK)",
    "t0414": "Prepared Bun ({{v0}}) install script",
    "t0415": "project home: {{v0}}",
    "t0416": "targetuser {{v0}} (project home); please.ssh chown (API will)",
    "t0417": "did chown {{v0}} → {{v1}}",
    "t0418": "chown.ssh failed: {{v0}}",
    "t0419": "Deleted key · authorized_keys",
    "t0420": "Supports: {{v0}}",
    "t0421": "TTL {{v0}} 30–604800",
    "t0422": "{{v0}} CNAME and ()",
    "t0423": "{{v0}} CNAME target",
    "t0424": "settingsFailed: {{v0}}",
    "t0425": "{{v0}} Wrotemanagesettings",
    "t0426": "cannotfile: {{v0}}",
    "t0427": "{{v0}} settings to systemdirectory",
    "t0428": "{{v0}} invalid",
    "t0429": "home not path ( {{v0}})",
    "t0430": "usermod -s failed: {{v0}}",
    "t0431": "Failed: {{v0}}",
    "t0432": "Failed: {{v0}}",
    "t0433": "set-property Failed: {{v0}} ( deploy willwrite unit)",
    "t0434": "unit {{v0}} not active — limits DB, deploy write unit",
    "t0435": "setquota not Success (filesystemcan not user_xattr/quota): {{v0}}",
    "t0436": "home: {{v0}}",
    "t0437": "did chown {{v0}} → {{v1}}",
    "t0438": "top header failed: {{v0}}",
    "t0439": "ps completeFailed: {{v0}}",
    "t0440": "NI={{v0}}",
    "t0441": "PID {{v0}} (process.pid)",
    "t0442": "or probe (kill -0 exit {{v0}})",
    "t0443": "kill -s {{v0}} failed: ${err ||",
    "t0444": "{{v0}} → PID {{v1}}",
    "t0445": "{{v0}} project(s) suspended",
    "t0446": "{{v0}} project(s) missing system users",
    "t0447": "{{v0}} pending approval(s)",
    "t0448": "Certificate expired: {{v0}}",
    "t0449": "Certificate expires in {{v0}} day(s): {{v1}}",
    "t0450": "Time: {{v0}}",
    "t0451": "DNSBL listing: {{v0}}",
    "t0452": "{{v0}} apply failure(s)/blocked",
    "t0453": "{{v0}} item(s) still written/draft",
    "t0454": "Auto defense preset: {{v0}}",
    "t0455": "Operation failed: {{v0}}",
    "t0456": "Journal disk use high: ≈{{v0}} MB",
    "t0457": "Threshold {{v0}} MB — vacuum in Log center or adjust retention",
    "t0458": "df failed: {{v0}}",
    "t0459": "{{v0}} project ( {{v1}})",
    "t0460": "version {{v0}} → {{v1}}",
    "t0461": "raise {{v0}}",
    "t0462": "Failed exit={{v0}}",
    "t0463": "apt list --upgradable: {{v0}} can raise",
    "t0464": "apt list --upgradable unavailable (exit {{v0}}); apt-cache policy",
    "t0465": "dpkg+apt-cache policy: {{v0}} package",
    "t0466": "dpkg/apt-cache policy Failed or (exit {{v0}})— can apt or permission",
    "t0467": "Node {{v0}} (not apt nodejs packagecan raise)",
    "t0468": "can raise (candidate ≠ current): {{v0}}",
    "t0469": "npm registry HTTP {{v0}}",
    "t0470": "GitHub releases HTTP {{v0}}",
    "t0471": "GitHub package.json HTTP {{v0}}",
    "t0472": "npm: {{v0}}@{{v1}}",
    "t0473": "npm {{v0}} unavailable: {{v1}}",
    "t0474": "GitHub releases unavailable: {{v0}}",
    "t0475": "GitHub package.json ({{v0}}): {{v1}}",
    "t0476": "GitHub package.json unavailable: {{v0}}",
    "t0477": "update: {{v0}} → {{v1}}",
    "t0478": "directory {{v0}} git repo — can YSK_SOURCE_ROOT, or npm (YSK_NPM_PACKAGE)",
    "t0479": "GitHub tarball Download failed: {{v0}}",
    "t0480": "to {{v0}} (staging only)— not Runninginstall; please /git directorydone",
    "t0481": "git: {{v0}}",
    "t0482": "git apply {{v0}} Failed (exit {{v1}}): {{v2}}",
    "t0483": "updatetarget {{v0}} and build — please restart ysk-server version",
    "t0484": "Installed {{v0}}",
    "t0485": "npm Update failed: {{v0}}",
    "t0486": "YSK_NPM_PACKAGE install {{v0}}",
    "t0487": "YSK_NPM_PACKAGE Install failed: {{v0}}",
    "t0488": "can raise {{v0}} → {{v1}} (CRITICAL CVE, )",
    "t0489": "can raise {{v0}} → {{v1}} (HIGH CVE, )",
    "t0490": "can raise {{v0}} → {{v1}} (can, )",
    "t0491": "can raise {{v0}} → {{v1}} ()",
    "t0492": "can raise {{v0}} → {{v1}} (apt Candidate)",
    "t0493": "Availableraise, OSV {{v0}}",
    "t0494": "serviceStatus: {{v0}}",
    "t0495": "detect to can: {{v0}}",
    "t0496": "Unknown Agent running: {{v0}}",
    "t0497": "Supports Agent: {{v0}}",
    "t0498": "installFailed (willSuccess): {{v0}}",
    "t0499": "Agent not found session: {{v0}}",
    "t0500": "Not found: {{v0}}",
    "t0501": "user: {{v0}}",
    "t0502": "user: {{v0}}",
    "t0503": "project SFTP user (ysks_/ysk_, internal-sftp kbd-interactive): {{v0}}",
    "t0504": "from strict user: {{v0}}",
    "t0505": "{{v0}} user publickey+TOTP, disable password",
    "t0506": "managed file: {{v0}}",
    "t0507": "Installed {{v0}} and reload sshd",
    "t0508": "install/sshd -t Failed: {{v0}}",
    "t0509": "PAM willmanaged file: {{v0}}",
    "t0510": "chown Failed: {{v0}}",
    "t0511": "Warning: mode 400 (stat: {{v0}})",
    "t0512": "PAM (managed file): {{v0}}",
    "t0513": "sshd (managed file): {{v0}}",
    "t0514": "scratch (this): {{v0}} — please save",
    "t0515": "pam.d/sshd: {{v0}}",
    "t0516": "user {{v0}} SSH 2FA ({{v1}}). disable/retire.",
    "t0517": "secrets master key: {{v0}}",
    "t0518": "chown Failed: {{v0}}",
    "t0519": "ssh failed: {{v0}}",
    "t0520": "master key: {{v0}} (please backup)",
    "t0521": "master key: {{v0}}",
    "t0522": "fingerprint: {{v0}} ({{v1}})",
    "t0523": "Wrote CF-only UFW: {{v0}}",
    "t0524": "port: {{v0}}",
    "t0525": "CF IPv4: {{v0}}",
    "t0526": "CF IPv6: {{v0}}",
    "t0527": "ufw Failed: {{v0}}",
    "t0528": "auth failed IP: {{v0}}",
    "t0529": "Top IP {{v0}}",
    "t0530": "{{v0}} · {{v1}}",
    "t0531": "Auto-switched defense preset → {{v0}}{{v1}}",
    "t0532": "Auto-switched defense preset: {{v0}}",
    "t0533": "SSH failed×{{v0}}",
    "t0534": "auth Failed {{v0}} IP",
    "t0535": "please ×{{v0}}",
    "t0536": "scan×{{v0}}",
    "t0537": "{{v0}}/{{v1}}",
    "t0538": "done {{v0}} IP: Success {{v1}}",
    "t0539": ": auto-ban {{v0}}",
    "t0540": ": {{v0}}",
    "t0541": "ban {{v0}} IP",
    "t0542": "cannot zone {{v0}} (HTTP {{v1}})",
    "t0543": ": {{v0}} security_level → {{v1}}",
    "t0544": ": {{v0}} → security_level={{v1}}",
    "t0545": "({{v0}})",
    "t0546": "{{v0}}",
    "t0547": "confirm=\"{{v0}}\"",
    "t0548": "Wrote Nginx rate limits: {{v0}}",
    "t0549": "Injected rate-limit markers into {{v0}} vhost(s)",
    "t0550": "Active defense preset → {{v0}}",
    "t0551": "ban → {{v0}} ({{v1}} / {{v2}})",
    "t0552": "Applied defense preset: {{v0}}",
    "t0553": "fail2ban failed: {{v0}}",
    "t0554": "ufw failed: {{v0}}",
    "t0555": "{{v0}}",
    "t0556": "ufw delete failed: {{v0}}",
    "t0557": "{{v0}}",
    "t0558": "{{v0}}: {{v1}}",
    "t0559": "to {{v0}} vhost",
    "t0560": "cluster_size={{v0}} < node {{v1}}",
    "t0561": "{{v0}} node cluster",
    "t0562": "probe Supports {{v0}}",
    "t0563": "mysql/mariadb Failed: {{v0}}",
    "t0564": "SHOW REPLICA/SLAVE failed: {{v0}}",
    "t0565": "SHOW MASTER failed: {{v0}}",
    "t0566": "replica for recovery, ={{v0}}",
    "t0567": "primary recovery, ={{v0}}",
    "t0568": "replica Abnormal role={{v0}}",
    "t0569": "master, role={{v0}}",
    "t0570": "{{v0}} · {{v1}}",
    "t0571": "tar failed: {{v0}}",
    "t0572": "{{v0}} ({{v1}} bytes)",
    "t0573": "{{v0}} peer target",
    "t0574": "{{v0}}: identity {{v1}} unavailable — key",
    "t0575": "{{v0}}: ssh mkdir failed {{v1}}",
    "t0576": "{{v0}}: {{v1}}",
    "t0577": "{{v0}}/{{v1}}: scp failed {{v2}}",
    "t0578": "{{v0}} agent · op={{v1}}",
    "t0579": "{{v0}}: enqueue failed {{v1}}",
    "t0580": "Unknown {{v0}}",
    "t0581": "Galera conf ({{v0}})",
    "t0582": "{{v0}} install conf and join ( / SSH / fleet)",
    "t0583": "install conf → systemctl restart mariadb (not bootstrap node)",
    "t0584": "Not found conf: {{v0}}",
    "t0585": "local apply Supports {{v0}}",
    "t0586": "Installedsystem drop-in: {{v0}}",
    "t0587": "writesystem conf Failed: {{v0}}",
    "t0588": "galera_new_cluster failed: {{v0}}",
    "t0589": "systemctl restart {{v0}} ( from /slot/sentinel scripts/)",
    "t0590": "did systemctl restart {{v0}}",
    "t0591": "ssh probe failed: {{v0}}",
    "t0592": "replica probe failed: {{v0}}",
    "t0593": "primary probe failed: {{v0}}",
    "t0594": "{{v0}} node probe OK · size={{v1}}",
    "t0595": "{{v0}} node probe OK",
    "t0596": "install to {{v0}} and {{v1}}",
    "t0597": "scp failed {{v0}}",
    "t0598": "install conf failed: {{v0}}",
    "t0599": "conf Wrote restart {{v0}} Failed",
    "t0600": "Wrote {{v0}}${restart?",
    "t0601": "Supports: {{v0}}",
    "t0602": "Supports cluster: {{v0}}",
    "t0603": "stop {{v0}} project unit (ok-ish {{v1}})",
    "t0604": "stop not exit ( {{v0}})— dump",
    "t0605": "and {{v0}} RDB (skipped dump)",
    "t0606": "done → {{v0}}",
    "t0607": "createuser {{v0}} uid={{v1}}",
    "t0608": "user {{v0}}",
    "t0609": "useradd failed: {{v0}}",
    "t0610": "chown failed: {{v0}}",
    "t0611": "home, skipped chown: {{v0}}",
    "t0612": "dump or: {{v0}}",
    "t0613": "RDB: {{v0}}",
    "t0614": "restore RDB → {{v0}}",
    "t0615": "RDB Failed: {{v0}}",
    "t0616": "redis start/ping: {{v0}}",
    "t0617": ": {{v0}} — dump dataDir rsync to (dumpRelPath)",
    "t0618": "cannottarget sha256: {{v0}}",
    "t0619": "ysk.json sha256 {{v0}}...",
    "t0620": "ysk.json local={{v0}} remote={{v1}}",
    "t0621": "local dataDir: {{v0}}",
    "t0622": "dataDir: {{v0}}",
    "t0623": "skipped home: {{v0}}",
    "t0624": "home dataDir, dataDir: {{v0}}",
    "t0625": "rsync home failed {{v0}}",
    "t0626": "transfer: home rsync Failed {{v0}}",
    "t0627": "skipped: {{v0}}",
    "t0628": "transfer done → {{v0}}:{{v1}}",
    "t0629": "Project {{v0}} has no system user yet (home missing: {{v1}}). Finish isolation on the project page.",
    "t0630": "project {{v0}} bind_ip={{v1}} — can ( IP )",
    "t0631": "project {{v0}} home not path: {{v1}}",
    "t0632": "Orphan home on disk (no matching store project): {{v0}}",
    "t0633": "Maildir: {{v0}}",
    "t0634": "{{v0}} — cannot to target",
    "t0635": "cannotprobe {{v0}}",
    "t0636": "{{v0}} · {{v1}}",
    "t0637": "project {{v0}} · {{v1}} · DB {{v2}} · Redis {{v3}}",
    "t0638": "Install software {{v0}} · homes {{v1}}",
    "t0639": "cutover host {{v0}}",
    "t0640": "{{v0}} warning(s) — review before cutover.",
    "t0641": "key {{v0}}",
    "t0642": "cannotkey: {{v0}}",
    "t0643": "targetnot write authorized_keys: {{v0}}",
    "t0644": "{{v0}} install ( key )",
    "t0645": "deletekeyFailed: {{v0}}",
    "t0646": "{{v0}} Available",
    "t0647": "dataDir: {{v0}}",
    "t0648": "~{{v0}}",
    "t0649": "Available {{v0}} (dump )",
    "t0650": ": Available {{v0}}, ≥ {{v1}}",
    "t0651": "Warning {{v0}} (not )",
    "t0652": "SSH connection {{v0}}",
    "t0653": "user {{v0}} not root (MVP requires root)",
    "t0654": "Supports OS ({{v0}}); requires Debian/Ubuntu",
    "t0655": "targetAvailable {{v0}} ≥ {{v1}}",
    "t0656": "target: Available {{v0}}, requires {{v1}}",
    "t0657": "target {{v0}}/ysk.json — deny ( forceWipeTarget)",
    "t0658": "targetdirectory ysk.json: {{v0}}",
    "t0659": "targetdirectorycreate: {{v0}}",
    "t0660": "{{v0}}s",
    "t0661": "{{v0}}s ≥ 120s ( TLS/TOTP)",
    "t0662": "project {{v0}} bind_ip={{v1}} — for (interface)",
    "t0663": "{{v0}} project.bind_ip",
    "t0664": "cannot persist bind_ip: {{v0}}",
    "t0665": "nginx sync: {{v0}}",
    "t0666": ": {{v0}}",
    "t0667": "identity {{v0}} unavailable",
    "t0668": "SSH failed exit={{v0}}: {{v1}}",
    "t0669": "path: {{v0}}",
    "t0670": "rsync failed exit={{v0}}: {{v1}}",
    "t0671": "Redis RDB Wrote {{v0}} (--rdb)",
    "t0672": "--rdb failed: {{v0}}",
    "t0673": "BGSAVE failed: {{v0}}",
    "t0674": "Redis RDB {{v0}} → {{v1}} (BGSAVE)",
    "t0675": "cannot Redis RDB (src={{v0}})",
    "t0676": "{{v0}} {{v1}} {{v2}}",
    "t0677": "home, skipped: {{v0}}",
    "t0678": "home {{v0}}",
    "t0679": "Maildir: {{v0}}",
    "t0680": "maildir {{v0}}",
    "t0681": "ysk.json fingerprint (can reapply )local≠source",
    "t0682": "readiness Error: {{v0}}",
    "t0683": "DNS cutover: with A/AAAA IP → {{v0}}{{v1}}",
    "t0684": "verify Failed: {{v0}} mismatch",
    "t0685": "verify passed (mismatches={{v0}})",
    "t0686": "invalid target: {{v0}} (requires root@host or host)",
    "t0687": "not found job {{v0}}",
    "t0688": ": target YSK_EXECUTE=1 ysk-server migrate post --job {{v0}} --data-dir {{v1}}",
    "t0689": "done → {{v0}}",
    "t0690": "cutover host: {{v0}}",
    "t0691": "post done @ {{v0}}",
    "t0692": "Not found job {{v0}} ( dataDir rsync)",
    "t0693": "not Success ({{v0}})",
    "t0694": "bootstrap done → {{v0}}",
    "t0695": "not Failed: {{v0}}",
    "t0696": "Supports mode: {{v0}}",
    "t0697": "Not found edge node: {{v0}}",
    "t0698": "node {{v0}} edge ( or origin)",
    "t0699": "Supports DNS: {{v0}}",
    "t0700": "Supports SSL mode: {{v0}}",
    "t0701": "CDN {{v0}}",
    "t0702": "origin shield Node does not exist: {{v0}}",
    "t0703": "edges: {{v0}}",
    "t0704": "Origin URL (from project bind): {{v0}}",
    "t0705": "update CDN {{v0}}",
    "t0706": "create CDN {{v0}}",
    "t0707": "origin shield: edge shield {{v0}} → {{v1}}",
    "t0708": "origin.kind=project not projectOriginUrl — {{v0}}",
    "t0709": "edge {{v0}} ({{v1}}): planned (not fan-out — PR-C3)",
    "t0710": "edge {{v0}}: node",
    "t0711": "Wrote managed nginx: {{v0}}",
    "t0712": "Wrote edge: {{v0}}",
    "t0713": "local nginx -t failed (proxy_cache_path can http{}): {{v0}}",
    "t0714": "certId={{v0}} domain={{v1}}",
    "t0715": "certId={{v0}} File does not exist: {{v1}}",
    "t0716": "not found certId={{v0}}",
    "t0717": "dataDir certificate {{v0}}",
    "t0718": "local Let’s Encrypt {{v0}}",
    "t0719": "scp failed {{v0}}",
    "t0720": "mkdir failed {{v0}}",
    "t0721": "certbot failed: {{v0}}",
    "t0722": "originShieldNodeId={{v0}} — shield",
    "t0723": "{{v0}}: SSH target — SSH apply (skipped fleet )",
    "t0724": "fleet cannot (blocked={{v0}})— enqueue or SSH",
    "t0725": "fleet {{v0}} edge — queued ≠ agent nginx reload; Agents",
    "t0726": "fleetAgentId={{v0}} — requires fleet enqueue (API will); or SSH apply",
    "t0727": "not found conf: {{v0}}",
    "t0728": "conf Failed: {{v0}}",
    "t0729": "fleet enqueue failed: {{v0}}",
    "t0730": "nginx -t failed: {{v0}}",
    "t0731": "SSH mkdir failed: {{v0}}",
    "t0732": "scp failed: {{v0}}",
    "t0733": "remote reload failed: {{v0}}",
    "t0734": "fleetAgentId={{v0}} — purge fleet enqueue or SSH",
    "t0735": "enqueue failed: {{v0}}",
    "t0736": "purge failed: {{v0}}",
    "t0737": "remote purge failed: {{v0}}",
    "t0738": "fleet purge {{v0}} — queued ≠ edge purge",
    "t0739": "geo {{v0}}: Unknownnode {{v1}}",
    "t0740": "weighted maxRr={{v0}} ( {{v1}})",
    "t0741": "minHealthyEdges={{v0}} {{v1}} edge —: IP edge ( offline)",
    "t0742": "edge {{v0}} — skipped",
    "t0743": "probe {{v0}}: {{v1}}",
    "t0744": "zoneId={{v0}} ({{v1}})",
    "t0745": "{{v0}} user manage {{v1}} — CDN write managedBy=cdn (can and; please check zone)",
    "t0746": "geo subdomain {{v0}}: IP — skipped",
    "t0747": "access_log {{v0}} ({{v1}} cache status token)",
    "t0748": "read log {{v0}}",
    "t0749": "cache directory {{v0}} ≈ {{v1}} bytes (not )",
    "t0750": "cache {{v0}}/{{v1}}",
    "t0751": "IPv4 invalid: {{v0}}",
    "t0752": "IPv6 invalid: {{v0}}",
    "t0753": "CDN node {{v0}}",
    "t0754": "HTTP {{v0}} ( for ){{v1}}",
    "t0755": "HTTP Failed: {{v0}}",
    "t0756": "TCP {{v0}}:443/80 cannotconnection",
    "t0757": "{{v0}}/{{v1}}",
    "t0758": "list-units failed: {{v0}}",
    "t0759": "{{v0}} service units",
    "t0760": "unit {{v0}}",
    "t0761": "{{v0}} bytes",
    "t0762": "journalctl · {{v0}}",
    "t0763": "did vacuum: {{v0}}",
    "t0764": "vacuum failed: {{v0}}",
    "t0765": "filter: {{v0}}",
    "t0766": "file {{v0}} · {{v1}} bytes · {{v2}}",
    "t0767": "path allowlist: {{v0}}",
    "t0768": "Journal: ≈{{v0}} MB ( {{v1}} MB)",
    "t0769": "project {{v0}} · {{v1}} log (directory)",
    "t0770": "Exported {{v0}} ({{v1}})",
    "t0771": "not to {{v0}}",
    "t0772": "(DB-IP City Lite {{v0}}; Failed)",
    "t0773": "fallback {{v0}}",
    "t0774": ": {{v0}} · {{v1}} · {{v2}} · {{v3}}{{v4}} · ASN {{v5}}",
    "t0775": "file ({{v0}} B), can Download failed",
    "t0776": "{{v0}} fallback (Success)",
    "t0777": "update {{v0}} ({{v1}} B)",
    "t0778": "Update failed {{v0}}: {{v1}}{{v2}}",
    "t0779": "Not foundsettings: {{v0}}",
    "t0780": "cannotsettings: {{v0}}",
    "t0781": "Not foundcertificate: {{v0}}",
    "t0782": "dry-run: not systemctl {{v0}}. add --execute YSK_EXECUTE=1 + root firstreally",
    "t0783": "not found job {{v0}}",
    "t0784": "Web UI: Not found (build apps/web or set YSK_WEB_ROOT)\\n",
    "t0785": "DNS zone create (draft): {{v0}}",
    "t0786": "DNS zone Create failed: {{v0}}",
    "t0787": "maildomain: {{v0}}",
    "t0788": "maildomainCreate failed: {{v0}}",
    "t0789": "to {{v0}} can off cron",
    "t0790": "restic {{v0}}/{{v1}} ok",
    "t0791": ": {{v0}} {{v1}}",
    "t0792": "settings {{v0}}. --force.",
    "t0793": "settings {{v0}}",
    "t0794": "Not foundinterface {{v0}}",
    "t0795": "hostname failed: {{v0}}",
    "t0796": "pretty hostname failed: {{v0}}",
    "t0797": "timezone failed: {{v0}}",
    "tScoreFrom": "score={{score}} from={{from}}",
    "appliedTag": " (applied)",
    "writtenTag": " (written only)",
    "selfDestMissing": "Cannot find the running install directory (systemd ExecStart or cli.js)",
    "selfDestUnwritable": "Cannot write to the running install directory {{v0}}",
    "selfApplied": "Applied {{v0}} onto {{v1}}",
    "selfVerifyFail": "Version file after overlay does not contain {{v0}}",
    "selfDownloadFail": "Cannot download or unpack official package {{v0}}: {{v1}}",
    "selfOverlayFail": "Could not overlay the official package onto the running install: {{v0}}",
    "selfUpgradeHint": "Panel apply failed. As root run: curl -fsSL https://raw.githubusercontent.com/yanshekki/ysk-server/main/install.sh | bash -s -- --upgrade"
  },
  "tpl": {
    "deleted": "Deleted {{name}}",
    "removed": "Removed {{name}}",
    "failedDetail": "Failed: {{detail}}",
    "failedColon": "Failed: {{detail}}",
    "actionFailed": "{{action}} failed: {{detail}}",
    "restartFailed": "Restart failed: {{detail}}",
    "chownFailed": "chown failed: {{detail}}",
    "available": "Available: {{detail}}",
    "supportedNotProbed": "Supports {{name}} — not probed yet",
    "wrote": "Wrote {{path}}",
    "wroteSettings": "Wrote settings {{path}}",
    "wroteManaged": "Wrote managed file {{path}}",
    "copyFailed": "Copy failed: {{detail}}",
    "copyFailed2": "Copy failed: {{detail}}",
    "reloadFailed": "Reload failed: {{detail}}",
    "reloadFailed2": "Reload failed: {{detail}}",
    "nginxReloadFailed": "nginx reload failed: {{detail}}",
    "nginxTestFailed": "nginx -t failed: {{detail}}",
    "nginxConfigFailed": "Nginx config check failed: {{detail}}",
    "psqlFailed": "psql failed: {{detail}}",
    "redisCliFailed": "redis-cli failed: {{detail}}",
    "restartFailed2": "restart failed: {{detail}}",
    "missing": "Missing {{name}}",
    "project": "Project {{name}}",
    "logNotFound": "Log not found: {{path}}",
    "clusterNotFound": "Cluster not found: {{id}}",
    "domainInvalid": "Invalid domain: {{domain}}",
    "exported": "Exported {{path}}",
    "reenabledLink": "Re-enabled connection {{name}}",
    "installed": "Installed",
    "missingDataDir": "Missing dataDir",
    "installIncomplete": "Install incomplete",
    "noPackages": "No packages",
    "recentlyUpdated": "Recently updated",
    "needRootRead": "Requires root to read",
    "reenabledPersist": "Connection re-enabled (survives reboot)",
    "runtimeOnlyHint": "(May not persist across reboot; use Save to persist)",
    "statusWrittenPartial": "Status: written/partial",
    "keyMissingOrNotDeleted": "Key missing or not deleted",
    "passwordCryptStored": "Password stored as crypt hash (not plaintext)",
    "skipInvalidUsername": "Skipped invalid username",
    "digNoAnswer": "dig: no answer (NXDOMAIN or empty)",
    "ipAddrAddFailed": "ip addr add failed: {{detail}}",
    "ipAddrDelFailed": "ip addr del failed: {{detail}}",
    "connUpWarn": "connection up warning: {{detail}}",
    "ntpEnableFailed": "Enable NTP failed: {{detail}}",
    "cancelFailed": "Cancel failed: {{detail}}",
    "powerCmdFailed": "Power command failed: {{detail}}",
    "reniceFailed": "renice failed: {{detail}}",
    "pgIncludeHint": "Include this file in postgresql.conf, or copy it when applying",
    "none": "none",
    "success": "Success",
    "on": "on",
    "off": "off",
    "continueOp": "continue",
    "unavailable": "unavailable",
    "unknownError": "unknown error",
    "noParen": "(none)",
    "keepOldDb": "(kept old DB)",
    "ufwNotDetected": "UFW not detected on this host",
    "fail2banStartHint": "Start it on the fail2ban page",
    "hasExecuteNotRoot": "EXECUTE is on but process is not root",
    "notRootTarget": "Not root (target useradd/apt will be blocked)",
    "reapplyDone": "reapply key steps completed",
    "someFailed": "Some failed — see results",
    "securityDesc": "Passwords, TLS, local limits",
    "yskControlPlane": "YSK control plane",
    "sslDistributeNote": "SSL distribute: cert on edge ≠ full browser trust chain; verify with dig / curl -vI https://",
    "autoNever": "Never automatic",
    "autoManualEmergency": "Manual EMERGENCY only",
    "probeMech": "Public TCP, panel req/min, TCP inuse, fail2ban, UFW",
    "probeTunable": "Raise / lower thresholds",
    "priorityBlockers": "Address {{count}} blocker(s) first: {{list}}",
    "readinessNotProduction": "Readiness is not production-ready: {{list}}",
    "noRestart": "no restart",
    "cityPolicyOff": "(city policy off)",
    "pidStarted": "Process started pid={{pid}} {{extra}}",
    "pidUser": "(user={{user}})",
    "pidDegraded": "(degraded)",
    "killFailed": "kill -s {{sig}} failed: {{detail}}",
    "routeAdded": "Added route {{dst}}{{via}}{{dev}}",
    "dnsWritten": "Wrote {{conn}}: DNS {{dns}}{{search}}",
    "peerInstalled": "Installed to {{dest}}{{restart}}"
  },
  "installedTool": "Installed (tool)",
  "cron": {
    "preserveHostLines": "Preserved {{count}} non-YSK host crontab line(s) (not a full wipe).",
    "noHostLinesOrEmpty": "No extra non-YSK host crontab lines (or empty).",
    "installReplacesYskOnly": "Install updates YSK-marked jobs only; other host jobs were merged and kept.",
    "hostScanNeedRoot": "Reading other users’ crontabs requires the control plane as root; only the process user’s crontab is listed.",
    "hostScanSkipUser": "Skipped user {{user}} (no permission)",
    "hostUserInvalid": "Invalid crontab user.",
    "hostScheduleInvalid": "Invalid host cron schedule.",
    "hostLineNotJob": "That crontab line is not a job.",
    "hostLineMissing": "No matching crontab line (host crontab may have changed).",
    "hostLineDuplicate": "That job line appears {{count}} times; edit one unique line first.",
    "hostReadFailed": "Could not read crontab: {{detail}}",
    "hostWriteFailed": "crontab write failed: {{detail}}",
    "hostRewriteNeedExecute": "Writing a host crontab line needs root and YSK_EXECUTE=1. Preview only.",
    "hostRewriteNeedRoot": "Editing another user’s crontab needs the control plane as root.",
    "hostPreview": "Next line: {{line}}",
    "hostPreviewDelete": "Next: remove that line.",
    "hostRewritten": "Wrote crontab for {{user}}.",
    "hostRunNeedExecute": "Running a host cron command needs YSK_EXECUTE=1.",
    "hostRan": "Ran host cron command as {{user}}.",
    "hostAdoptNeedExecute": "Adopting a host line into the panel needs YSK_EXECUTE=1 (otherwise install would duplicate it).",
    "hostAdopted": "Host line tagged # ysk:{{id}} and registered in the panel.",
    "hostConfirmMismatch": "Confirm must match the command.",
    "hostAdoptOnlyInstallUser": "Take into panel only for the crontab Install writes (root / this process user). Other users would be duplicated on install.",
    "hostAdoptEnableFirst": "Enable the host line before taking it into the panel.",
    "hostPercentNewline": "crontab treats unescaped % as a newline. Write date formats as \\%Y (or avoid %)."
  },
  "dbBrowser": {
    "pmaInstalled": "phpMyAdmin installed at {{path}}",
    "pmaConfigWritten": "phpMyAdmin config and tmp written (cookie auth; HTTPS recommended)",
    "pmaExtractFailed": "phpMyAdmin download/extract failed: {{detail}}",
    "projectCreated": "Project created {{id}} ({{name}})"
  },
  "firewallAllow": {
    "already": "{{port}}/{{proto}}{{from}}: already allowed",
    "partial": "Partial: {{ok}} ok, {{fail}} failed",
    "fromLabel": " from {{from}}"
  },
  "firewallDeleteByComment": {
    "removed": "Removed {{n}} firewall rule(s) matching {{prefix}}",
    "none": "No firewall rules matched {{prefix}}"
  },
  "serviceExposure": {
    "needsDecision": "{{service}}: confirm whether to expose this service on the network",
    "private": "{{service}}: kept private (no public firewall allow)",
    "restrictedEmpty": "Restricted mode needs at least one allowed IP/CIDR",
    "badCountry": "Invalid country code: {{cc}}",
    "zoneDownloadFail": "Country zone download failed for {{cc}}: {{detail}}",
    "zoneEmpty": "Country zone for {{cc}} is empty",
    "zoneDownloaded": "Downloaded {{n}} CIDRs for {{cc}}",
    "zoneMissing": "No zone file for {{cc}} — place under geoip/country-zones or allow download",
    "zoneCidrCap": "Country CIDR list capped at {{n}} entries",
    "geoNeedExecute": "Country allowlist needs YSK_EXECUTE",
    "geoNeedRoot": "Country allowlist needs root",
    "geoNoCidrs": "No country CIDRs loaded — cannot apply geo allowlist",
    "ipsetMissing": "ipset not installed — country allowlist skipped",
    "ipsetApplyFail": "ipset/iptables apply failed: {{detail}}",
    "ipsetApplied": "Country allowlist set {{set}} ({{countries}}, {{n}} CIDRs)",
    "ipsetCleared": "Cleared country ipset {{set}}",
    "geoBestEffort": "Country filtering is best-effort (ipset); cloud security groups are separate"
  },
  "goLive": {
    "deployIncomplete": "goLive: deploy incomplete",
    "deployFailed": "goLive deploy failed: {{detail}}",
    "publishIncomplete": "goLive: publish incomplete",
    "publishFailed": "goLive publish failed: {{detail}}"
  },
  "ops": {
    "projectNameExists": "Project name already exists: {{name}}",
    "sslNotReady": "SSL not ready: no certificate for {{domain}}.",
    "sslNotReadyDetail": "SSL not ready: no certificate for {{domain}} (panel SSL or Let’s Encrypt live path).",
    "sslGoToPage": "Issue or upload a certificate on SSL, then publish + SSL.",
    "sslRejectWrite": "Refused to write SSL nginx conf to avoid nginx -t failure.",
    "installAborted": "Install aborted (client disconnected or cancelled)",
    "phpPackagesPartialFail": "Some PHP packages failed: {{list}} (core CLI may still work)",
    "pdnsBindConflict": "PowerDNS cannot bind 0.0.0.0:53 (in use); often conflicts with systemd-resolved. Bind the public IP (panel: Fix PowerDNS)."
  },
  "webmail": {
    "notInstalled": "Webmail is not installed; enable download and re-run",
    "needExecute": "Downloading webmail needs system-change permission (YSK_EXECUTE) and outbound network",
    "needExecuteBeforeCreate": "Will not create a half project until EXECUTE is enabled",
    "notRoundcubeTree": "Document root is not a full Roundcube tree (may still be php-hello)",
    "notSnappyTree": "Document root is not a full SnappyMail tree",
    "installIncompleteHint": "Project exists but webmail is incomplete — enable EXECUTE then Reinstall/Upgrade",
    "extractFailed": "{{tool}} download or extract failed: {{detail}}",
    "roundcubeInstalled": "Installed Roundcube {{version}} → {{path}}",
    "roundcubeReuse": "Reusing installed Roundcube → {{path}}",
    "roundcubeConfigWritten": "Wrote Roundcube config (SQLite, IMAP 993, SMTP 587)",
    "snappyInstalled": "Installed SnappyMail {{version}} → {{path}}",
    "snappyReuse": "Reusing installed SnappyMail → {{path}}",
    "snappyAdminHint": "On first open, finish SnappyMail admin setup and add the local IMAP domain",
    "imapSmtpHint": "IMAP {{imap}}:993 · SMTP {{smtp}}:587 (login with full mailbox address and password)",
    "projectCreated": "Created PHP project {{name}} ({{tool}}, {{id}})",
    "domainRequired": "Webmail hostname is required",
    "openHint": "Sign in with mailbox address and password; open the URL from Projects or this page after go-live",
    "sslHint": "Recommend Let’s Encrypt for {{domain}} (SSL page)",
    "bootstrapLegacyHint": "Bootstrap had no project service — wrote dataDir skeleton; use Create & go live in the panel for PHP project path",
    "ssoPluginInstalled": "Installed SSO plugin → {{path}}",
    "forceHttpsOn": "Roundcube force_https enabled (HTTPS required)",
    "forceHttpsOff": "force_https off — after SSL, reinstall with force HTTPS checked",
    "reinstallHint": "Project exists — use Reinstall/Upgrade or reinstall:true",
    "reinstalling": "Reinstalling webmail into project {{name}} ({{id}})",
    "reinstallStart": "Starting reinstall/upgrade (version pin {{version}}, project {{id}})",
    "projectNotFound": "Webmail project not found",
    "snappyAdminOnce": "SnappyMail admin {{user}} — password shown once (see result / ONCE file)",
    "snappyAdminPassword": "SnappyMail admin password (copy now): {{password}}",
    "publicHtmlStub": "Document root still has the SnappyMail/RainLoop package stub. HTTP must serve the public_html app tree — reinstall webmail after this fix.",
    "goLiveFailed": "Webmail files installed, but project go-live / deploy health failed — expand details.",
    "forceHttpsNeedsSsl": "Roundcube force_https is on: bind SSL for this hostname before relying on public HTTPS, or uncheck force HTTPS until then.",
    "roundcubePublicHtmlDocRoot": "HTTP doc root set to Roundcube public_html ({{path}})",
    "docRootUpdated": "Project document root updated to {{path}}",
    "docRootUpdateFailed": "Could not update project document root: {{detail}}",
    "sqliteSchemaReady": "Roundcube SQLite schema initialized",
    "sqliteSchemaFailed": "Roundcube SQLite schema init failed: {{detail}}",
    "snappyFullEmailLogin": "Mailbox login must use full email (user@domain); short local-part is disabled",
    "removedBogusPublicHtml": "Removed leftover public_html (php-hello) so webmail is not served from the wrong tree",
    "snappyDocRoot": "SnappyMail HTTP doc root: {{path}}",
    "phpHelloStillPresent": "Install left php-hello (YSK PHP OK) as the site root — webmail extract did not replace it"
  },
  "vpn": {
    "needInstall": "Install {{engine}}",
    "openvpnComing": "OpenVPN full path is staged for the next release.",
    "outlineComing": "Outline / Shadowsocks is staged for a later release.",
    "needExecuteServer": "VPN server setup requires root and YSK_EXECUTE=1.",
    "serverStopped": "{{engine}} server stopped.",
    "serverStopFailed": "Could not stop {{engine}} server: {{detail}}",
    "needExecuteClient": "VPN client connect requires root and YSK_EXECUTE=1.",
    "keygenFailed": "WireGuard key generation failed (is wg installed?).",
    "serverKeysCreated": "WireGuard server keys created.",
    "applyFailed": "Failed to apply WireGuard config: {{detail}}",
    "serverActive": "WireGuard server applied (UDP {{port}}).",
    "serverMissing": "WireGuard server not initialized — run Start server first.",
    "peerCreated": "Client «{{name}}» created.",
    "peerNotFound": "Client not found.",
    "peerRemoved": "Removed {{name}}.",
    "peersSynced": "Peer list reloaded on the running WireGuard interface.",
    "setEndpointHint": "Set public endpoint (host:port) so mobile clients can reach this server.",
    "invalidConf": "This file is not a valid VPN client conf. Use a WireGuard or OpenVPN client profile.",
    "clientImported": "Profile «{{name}}» imported.",
    "profileNotFound": "Client profile not found.",
    "clientUpFailed": "Connect failed: {{detail}}",
    "clientUp": "Connected: {{name}}",
    "clientDown": "Disconnected: {{name}}",
    "clientDeleted": "Deleted profile: {{name}}",
    "autostartOn": "Autostart on: {{name}}",
    "autostartOff": "Autostart off: {{name}}",
    "ovpnPkiStart": "Generating OpenVPN PKI (may take a minute for DH params)…",
    "ovpnPkiDone": "OpenVPN PKI ready.",
    "ovpnServerActive": "OpenVPN server applied ({{proto}} {{port}}).",
    "invalidOvpn": "OpenVPN conf should include client/remote directives.",
    "ssHonest": "Uses shadowsocks-libev ss-server — not full Outline Manager.",
    "ssKeysCreated": "Shadowsocks server password generated.",
    "ssServerActive": "Shadowsocks server applied (port {{port}}).",
    "ssSharedPassword": "All ss:// labels share one server password (rotate by re-ensuring server).",
    "ssPackageYielded": "Stopped/masked Debian shadowsocks-libev default unit so YSK can bind public {{port}} on this host.",
    "ssEndpointAutofilled": "Public endpoint set to {{endpoint}}.",
    "ssClientsRewritten": "Regenerated {{n}} client ss:// URI(s) for current endpoint/password.",
    "ssUfwOpened": "Opened UFW {{port}}/tcp+udp for Shadowsocks (if ufw installed).",
    "endpointAutofilled": "Public endpoint set to {{endpoint}}.",
    "ovpnClientsRewritten": "Updated remote= in {{n}} OpenVPN client profile(s) for download/QR.",
    "accessFullNat": "Full internet enabled (IP forward + NAT)",
    "accessLanOnly": "LAN-only mode (no internet NAT)",
    "accessReconnectHint": "Already-connected clients must reconnect to pick up new routes",
    "ovpnNatDurable": "OpenVPN NAT/forward installed for reboot (systemd ExecStartPost).",
    "clientFullTunnelProtect": "Full-tunnel client detected (AllowedIPs 0.0.0.0/0). Applied host protect so panel/SSH replies stay on the LAN NIC.",
    "clientFullTunnelHint": "Tip: for split access only, set AllowedIPs to VPN/LAN CIDRs (not 0.0.0.0/0) in the conf, then reconnect."
  },
  "vnc": {
    "needInstall": "Install {{stack}}",
    "needExecute": "YSK_EXECUTE is disabled — cannot install packages or provision Linux users.",
    "needRoot": "Not running as root — system useradd and vncserver apply are blocked.",
    "hostnameResolves": "Hostname {{hostname}} resolves.",
    "hostnameUnresolvable": "This host cannot resolve its own hostname ({{hostname}}). VNC session start will fail until /etc/hosts is fixed.",
    "hostnameAlreadyResolves": "Hostname {{hostname}} already resolves — /etc/hosts unchanged.",
    "hostnameWouldAppend": "Would append to /etc/hosts: {{line}}",
    "hostnameAppended": "Appended to /etc/hosts: {{line}}",
    "hostnameAppendFailed": "Could not write /etc/hosts: {{detail}}",
    "hostnameAliasPresent": "Hostname {{hostname}} is already an exact /etc/hosts alias — not appended again.",
    "hostnameStillUnresolvable": "Wrote /etc/hosts but {{hostname}} still does not resolve. Confirm nsswitch hosts includes files.",
    "skipStartHostname": "Did not start the display — fix hostname resolution first.",
    "novncAssetsOnly": "noVNC web assets found; websockify binary still missing.",
    "viewerNeedExecute": "Starting a local VNC desktop for browser view needs root + YSK_EXECUTE",
    "browserSessionReady": "Browser VNC session ready: {{name}}",
    "clientPathUserReachable": "Path: user-reachable endpoint — {{name}} → {{target}} (browser via panel)",
    "clientPathServerProxy": "Path: server proxy — {{name}} → {{target}} (egress via this server)",
    "clientOpenInBrowserHint": "Use “Open in browser” on the client list for the embedded VNC client",
    "probeOk": "Reachability OK: control plane can open TCP to {{target}}",
    "probeRefused": "Nothing is listening on {{target}} (connection refused). Is VNC running on that host?",
    "probeTimeout": "Timed out connecting to {{target}} from this server. Check firewall / routing.",
    "probeDns": "Cannot resolve host name «{{host}}».",
    "probeNet": "Network unreachable for {{target}} from this server.",
    "probeFailed": "Cannot reach {{target}}: {{detail}}",
    "probeInvalid": "Invalid VNC target {{host}}:{{port}}",
    "probeHintUserReachable": "Path is “user-reachable”: this panel must still open TCP to the public host (browser cannot speak RFB alone).",
    "probeHintServerProxy": "Path is “server proxy”: the target must be reachable from this control-plane host’s network.",
    "connectHostOverride": "Server proxy: display host {{display}}, TCP connects to {{connect}}",
    "probeConnectHostHint": "Display target {{display}}, probe/connect address {{connect}} (connect-host override).",
    "accountNotFound": "VNC account not found",
    "accountExists": "A VNC account with this name or Linux user already exists",
    "accountCreated": "Created VNC account {{name}} ({{user}}, display :{{display}})",
    "accountUpdated": "Updated VNC account {{name}}",
    "accountDeleted": "Deleted VNC account {{name}}",
    "invalidName": "Invalid account name",
    "invalidGeometry": "Invalid resolution (use e.g. 1920x1080)",
    "displayBusy": "Display number is invalid or already in use",
    "displayExhausted": "No free VNC display numbers left in range",
    "userWrittenOnly": "Linux user {{user}} recorded in control plane only (need root + YSK_EXECUTE to useradd)",
    "userExists": "Linux user {{user}} already exists",
    "userCreated": "Created Linux user {{user}}",
    "useraddFailed": "useradd failed for {{user}}: {{detail}}",
    "userdelBlocked": "Cannot remove Linux user {{user}} without root + YSK_EXECUTE",
    "userAlreadyGone": "Linux user {{user}} already absent",
    "userdelFailed": "userdel failed for {{user}}: {{detail}}",
    "userdelLeftover": "Panel account removed, but Linux user {{user}} is still on the host. Remove it from Users or the host.",
    "userDeleted": "Removed Linux user {{user}}",
    "passwordTooShort": "VNC password must be at least 6 characters",
    "passwordWrittenOnly": "Password marked in control plane only (need root + YSK_EXECUTE for vncpasswd)",
    "passwordFailed": "Failed to write VNC password: {{detail}}",
    "passwordNeedTiger": "vncpasswd not found. Install TigerVNC (tigervnc-standalone-server) before setting a password.",
    "passwordSet": "VNC password set for {{user}}",
    "passwordUpdated": "Password updated for {{name}}",
    "passwordMetaOnly": "Password stored as meta only until system apply",
    "xstartupWrittenOnly": "xstartup not written to home (need root + YSK_EXECUTE)",
    "xstartupWriteFailed": "Failed to write ~/.vnc/xstartup ({{detail}}). Need root + YSK_EXECUTE.",
    "xstartupFailed": "VNC xstartup/desktop failed on display :{{display}} ({{detail}}). Prefer XFCE profile or install a terminal.",
    "xstartupWritten": "Wrote {{path}}",
    "sessionStartBlocked": "Cannot start VNC session without root + YSK_EXECUTE",
    "sessionStartFailed": "Failed to start display :{{display}}: {{detail}}",
    "sessionStartHostname": "Failed to start display :{{display}}: this host cannot resolve its own hostname. Add the hostname to /etc/hosts (or fix DNS) then start the session again.",
    "sessionStarted": "Started VNC for {{user}} on :{{display}} (port {{port}})",
    "sessionStartUnverified": "Start command returned OK but RFB port not yet listening",
    "sessionAlreadyRunning": "VNC already running for {{user}} on :{{display}} (port {{port}})",
    "vncserverMissing": "TigerVNC server wrapper (tigervncserver/vncserver) is not installed — use the Install tab",
    "vncserverWrapperMissing": "Found {{found}} but no tigervncserver/vncserver wrapper — reinstall tigervnc-standalone-server",
    "vncPackageWithoutBin": "Package tigervnc-standalone-server is installed but the start script is missing — reinstall the package",
    "needPasswordBeforeStart": "Set a VNC password (≥6 chars) before starting",
    "displayPortBusy": "Display :{{display}} → port {{port}} is already in use — stop the other session or pick another display",
    "sessionStartPermission": "Permission denied starting display :{{display}}",
    "staleLockCleared": "Cleared stale lock for display :{{display}}, retrying",
    "sessionStopBlocked": "Cannot stop VNC session without root + YSK_EXECUTE",
    "sessionStopped": "Stopped VNC for {{user}} display :{{display}}",
    "linuxUserKept": "Kept Linux user {{user}} on the system",
    "novncStartBlocked": "Cannot start noVNC without root + YSK_EXECUTE",
    "novncAlreadyRunning": "noVNC already running on port {{port}}",
    "novncStartFailed": "Failed to start websockify: {{detail}}",
    "novncStarted": "noVNC listening on 127.0.0.1:{{httpPort}} → RFB {{rfbPort}}",
    "novncNotRunning": "noVNC was not running",
    "novncStopBlocked": "Cannot stop noVNC without root + YSK_EXECUTE",
    "novncStopped": "Stopped noVNC on port {{httpPort}}",
    "directNeedsAllBind": "RFB bind is localhost — direct clients cannot reach from outside without tunnel",
    "directOpenFirewall": "Open TCP {{port}} in the firewall for direct clients",
    "viaServerReady": "noVNC is up — open the local URL or use an SSH tunnel",
    "viaServerStartFirst": "Start noVNC to enable browser access via the server",
    "viewTicketIssued": "Issued a short-lived view ticket",
    "invalidPort": "Invalid port number",
    "firewallNeedExecute": "Opening UFW ports requires YSK_EXECUTE",
    "firewallNeedRoot": "Opening UFW ports requires root",
    "firewallFailed": "ufw allow failed: {{detail}}",
    "firewallOpened": "UFW allowed TCP {{port}}",
    "clientInvalid": "Client name and host are required",
    "clientNotFound": "Client profile not found",
    "clientUpBlocked": "Cannot connect VNC client without root + YSK_EXECUTE",
    "clientUpFailed": "Client connect failed: {{detail}}",
    "clientViaServerUp": "Client {{name}} ready for browser VNC via panel (legacy websockify note retired). Target remains reachable through Open in browser.",
    "clientDirectUp": "Client {{name}} uses in-browser VNC only (host vncviewer path removed). Open in browser → {{target}}.",
    "clientNeedViewer": "Desktop vncviewer is optional. Use Open in browser for the embedded VNC client.",
    "clientDownBlocked": "Cannot disconnect without root + YSK_EXECUTE",
    "clientDown": "Disconnected client {{name}}",
    "clientDeleted": "Client profile deleted",
    "sessionStartCwd": "VNC start failed: working directory not accessible to the session user (display :{{display}}). Fixed by starting from HOME.",
    "desktopRestarted": "Desktop profile applied and session restarted ({{desktop}}). Reconnect VNC/noVNC.",
    "desktopNeedsStart": "Desktop profile {{desktop}} written to xstartup. Start the session to apply.",
    "linuxUserRolledBack": "Removed leftover Linux user {{user}} after VNC password failed.",
    "linuxUserOrphan": "Could not remove leftover Linux user {{user}} after VNC password failed."
  },
  "apache": {
    "needServerName": "Server name required",
    "siteExists": "Site already exists",
    "siteNotFound": "Site not found",
    "wroteConf": "Wrote {{path}}",
    "needExecute": "Needs YSK_EXECUTE",
    "settingsWritten": "Apache defaults written",
    "managedDir": "Managed dir {{path}}",
    "dryRun": "Dry run",
    "copyFailed": "Copy failed: {{file}}",
    "configOk": "configtest OK",
    "configFailed": "configtest failed: {{detail}}",
    "reloaded": "Apache reloaded",
    "reloadFailed": "Reload failed",
    "skippedOrphans": "Skipped {{count}} orphan conf(s) (not owned)",
    "artifactInvalid": "Invalid artifact conf name",
    "artifactOwned": "Conf {{file}} is owned by a project or standalone site",
    "artifactNotFound": "Artifact conf not found: {{file}}",
    "artifactRemoveFailed": "Failed to remove {{file}}: {{detail}}",
    "artifactRemoved": "Removed orphan conf {{file}}",
    "artifactSystemPending": "DataDir cleaned; system Apache twin needs YSK_EXECUTE/root to disable",
    "artifactSystemDisabled": "Disabled system site {{site}}",
    "artifactSystemFailed": "System disable failed: {{detail}}",
    "conflictProjectsOnly": "Domain {{name}} is claimed by multiple projects — change a project domain",
    "cleanupNothing": "No conflicting artifact confs to remove",
    "conflictOwnedKeep": "Kept owned conf {{file}} (also ServerName {{domain}})",
    "retiredOrphan": "Retired orphan conf {{file}} (ServerName clash with {{domain}})"
  },
  "btTracker": {
    "needExecute": "YSK_EXECUTE is off — tracker install/start and public ports need system-change permission.",
    "startWithoutExecute": "Starting tracker without YSK_EXECUTE — listen may work; host firewall will not be opened.",
    "alreadyRunning": "BitTorrent tracker is already running in this process.",
    "notRunning": "BitTorrent tracker is not running.",
    "started": "BitTorrent tracker listening on port {{port}}.",
    "startFailed": "Failed to start tracker: {{detail}}",
    "stopped": "BitTorrent tracker stopped.",
    "maxSeeds": "Maximum concurrent seeds reached ({{n}}).",
    "seedStarted": "Seeding share {{id}}.",
    "seedStopped": "Stopped seeding share.",
    "seedPending": "Seeding not ready yet — start the tracker and ensure YSK_EXECUTE when required.",
    "notSeeding": "This share is not currently seeded by the control plane.",
    "btNeedsTracker": "BT share needs a running tracker. Open Files → BT Tracker and start it.",
    "restoreTrackerFailed": "BT tracker failed to start during boot restore",
    "restoreDone": "BT restore: seeded {{seeded}}/{{attempted}} (failed {{failed}})",
    "workerMissing": "Detached worker script missing; started in-process (dies with this process)",
    "startedDetached": "BT tracker detached worker started (pid {{pid}}, port {{port}})",
    "runningDetached": "Tracker running as detached worker (pid {{pid}})",
    "jobQueued": "BT torrent creation queued (large share)",
    "jobRunning": "BT torrent creation running",
    "libraryAdded": "Added {{name}} to the WebTorrent library",
    "libraryInspectFailed": "Could not read that .torrent or magnet",
    "libraryDup": "That torrent is already in the library",
    "libraryDestBad": "Save folder is not a valid Files path",
    "libraryTorrentTooBig": ".torrent file is larger than 8 MiB",
    "libraryNotFound": "Library item not found",
    "libraryPaused": "Paused",
    "libraryResumed": "Resumed",
    "libraryRemoved": "Removed from library",
    "libraryFilesRemoved": "Deleted downloaded files",
    "libraryRestoreDone": "Library restore: started {{started}}/{{attempted}} (failed {{failed}})",
    "applyTrackersDone": "Applied extra trackers to {{n}} live announce slots",
    "libraryNeedServe": "Saved. Open the panel (ysk-server serve) so WebTorrent can download or seed.",
    "libraryDestIsFile": "Cannot create a folder named {{name}} — a file with that name already exists.",
    "librarySeedMissing": "No matching files in that folder to seed.",
    "libraryWaitingPeers": "Waiting for peers. If the files are already on this host, add again and choose seed-existing."
  },
  "migrate": {
    "orphanConfirm": "Type the exact leftover home path to confirm delete.",
    "orphanStillInStore": "That home still belongs to a project in the store.",
    "orphanMissing": "Path not on disk: {{path}}",
    "orphanNeedExecute": "Would remove leftover {{path}}. Needs YSK_EXECUTE=1.",
    "orphanRmFailed": "Could not remove leftover home: {{detail}}",
    "orphanRemoved": "Removed leftover project home {{path}}."
  },
  "publicFiles": {
    "liveConf": "Live Nginx conf: {{path}}",
    "publicRoot": "Public root: {{path}}",
    "confNameStale": "Conf file {{file}} does not match current server_name {{serverName}}. Re-apply public files to rewrite the name."
  },
  "leftover": {
    "staleCliTitle": "Stale leftover CLI",
    "staleCli": "Leftover CLI still present: {{path}} (running product {{version}}). PATH may prefer it. Remove with: rm -f {{path}}",
    "apacheDefaultTitle": "Apache leftover default site",
    "apacheDefault": "Apache 000-default is still enabled. That is the stock site file — it does not mean Apache is listening on public :80 (YSK Apache is expected on 127.0.0.1:8080). Overlay does not disable it. Apply Apache from the panel or hosting apache apply --execute.",
    "nginxCatchAllTitle": "Nginx catch-all missing",
    "nginxCatchAll": "ysk-000-default.conf is not in /etc/nginx/conf.d. Unknown SNI can fall through. Run projects nginx-sync --execute.",
    "vsftpdTitle": "vsftpd unit failed",
    "vsftpd": "vsftpd is failed. Overlay does not rewrite listen/listen_ipv6. Apply FTP from the panel.",
    "dovecotTitle": "Dovecot TLS points at missing cert",
    "dovecot": "Dovecot ssl_cert points at missing {{path}}. Overlay does not rewrite ssl=no. Apply mail TLS after issuing the cert, or apply email stack.",
    "overlayDoesNotHeal": "Product overlay does not rewrite nginx, Apache, vsftpd, or Dovecot. Use the listed apply commands (root + YSK_EXECUTE=1).",
    "executeStaleCli": "Pass --execute (root + YSK_EXECUTE=1) to remove stale CLI bins.",
    "executeMissingTls": "Pass --execute (root + YSK_EXECUTE=1) to disable missing-cert TLS so vsftpd/Dovecot can start.",
    "executeGeneric": "Pass --execute (root + YSK_EXECUTE=1) to apply leftover cleanup for the findings above.",
    "staleCliRemoved": "Removed leftover CLI {{path}}.",
    "staleCliRemoveFailed": "Could not remove leftover CLI {{path}}: {{detail}}",
    "vsftpdSslOff": "Set vsftpd ssl_enable=NO because the FTPS certificate file is missing, then restarted vsftpd.",
    "dovecotSslOff": "Set Dovecot ssl=no because {{path}} is missing, then restarted Dovecot.",
    "readinessTitle": "Host leftovers after overlay",
    "readinessClean": "No leftover Apache default, missing nginx catch-all, failed vsftpd, or stale CLI detected.",
    "nginxRemoved": "Removed leftover nginx conf {{path}}.",
    "nginxNotLeftover": "Not a leftover public-files conf — refuse delete.",
    "nginxUnusedKeep": "000-default is unused, not leftover — not deleted.",
    "nginxSystemCopy": "System copy still present: {{path}}. Needs YSK_EXECUTE + root to remove.",
    "nginxReloadFailed": "nginx -t or reload failed after removing {{path}}."
  },
  "defense": {
    "panelReqLabel": "Panel requests / min",
    "panelReqExcluded": "Authenticated panel traffic — shown here, not counted in threat score",
    "tcpOk": "TCP {{target}} reachable",
    "tcpFail": "TCP {{target}} failed",
    "dnsDegraded": "DNS path degraded",
    "reqRateHigh": "Public request rate {{reqs}}/min ≥ {{threshold}}",
    "ddosHeuristic": "High public request rate plus edge probe failure"
  }
}
