ErrInvalidParams: 'Request parameter error: {{ .detail }}' ErrTokenParse: 'Token generation error: {{ .detail }}' ErrInitialPassword: 'Original password is incorrect' ErrInternalServer: 'Internal server error: {{ .detail }}' ErrRecordExist: 'Record already exists' ErrRecordNotFound: 'Record not found' ErrStructTransform: 'Type conversion failed: {{ .err }}' ErrNotLogin: 'User not logged in: {{ .detail }}' ErrPasswordExpired: 'The current password has expired: {{ .detail }}' ErrNotSupportType: 'The system does not support the current type: {{ .name }}' ErrProxy: 'Request error, please check the node status: {{ .detail }}' ErrApiConfigStatusInvalid: 'Access to the API interface is prohibited: {{ .detail }}' ErrApiConfigKeyInvalid: 'API interface key error: {{ .detail }}' ErrApiConfigIPInvalid: 'The IP used to call the API interface is not in the whitelist: {{ .detail }}' ErrApiConfigDisable: 'This interface prohibits the use of API interface calls: {{ .detail }}' ErrApiConfigKeyTimeInvalid: 'API interface timestamp error: {{ .detail }}' #common ErrUsernameIsExist: 'Username already exists' ErrNameIsExist: 'Name already exists' ErrDemoEnvironment: 'Demo server, this operation is forbidden!' ErrCmdTimeout: 'Command execution timed out!' ErrCmdIllegal: 'There are illegal characters in the execution command, please modify it and try again!' ErrPortExist: '{{ .port }} port is already occupied by {{ .type }} [{{ .name }}]' TYPE_APP: 'Application' TYPE_RUNTIME: 'Runtime environment' TYPE_DOMAIN: 'Domain Name' ErrTypePort: 'Port {{ .name }} format is incorrect' ErrTypePortRange: 'The port range needs to be between 1-65535' Success: 'Success' Failed: 'Failed' SystemRestart: 'Task interrupted due to system restart' ErrGroupIsDefault: 'Default group, cannot be deleted' ErrGroupIsInWebsiteUse: 'The group is being used by another website and cannot be deleted.' #backup ErrBackupInUsed: 'The backup account has been used in the scheduled task and cannot be deleted.' ErrBackupCheck: 'Backup account test connection failed {{ .err }}' ErrBackupLocalDelete: 'Deleting the local server backup account is not supported yet' ErrBackupLocalCreate: 'Creating local server backup accounts is not supported yet' #app ErrPortInUsed: '{{ .detail }} port is already occupied!' ErrAppLimit: 'The number of applications installed has exceeded the limit' ErrNotInstall: 'Application not installed' ErrPortInOtherApp: '{{ .port }} port is already occupied by application {{ .apps }}!' ErrDbUserNotValid: 'Existing database, username and password do not match!' ErrUpdateBuWebsite: 'The application was updated successfully, but the website configuration file modification failed. Please check the configuration! ' Err1PanelNetworkFailed: 'Default container network creation failed! {{ .detail }}' ErrFileParse: 'Application docker-compose file parsing failed!' ErrInstallDirNotFound: 'The installation directory does not exist. If you need to uninstall, please select Force Uninstall' AppStoreIsUpToDate: 'The app store is already the latest version' LocalAppVersionNull: '{{ .name }} application is not synchronized to the version! Cannot be added to the application list' LocalAppVersionErr: '{{ .name }} sync version {{ .version }} failed! {{ .err }}' ErrFileNotFound: '{{ .name }} file does not exist' ErrFileParseApp: '{{ .name }} file parsing failed {{ .err }}' ErrAppDirNull: 'The version folder does not exist' LocalAppErr: 'Application {{ .name }} sync failed! {{ .err }}' ErrContainerName: 'Container name already exists' ErrCreateHttpClient: 'Failed to create request {{ .err }}' ErrHttpReqTimeOut: 'Request timed out {{ .err }}' ErrHttpReqFailed: 'Request failed {{ .err }}' ErrNoSuchHost: 'Unable to find the requested server {{ .err }}' ErrHttpReqNotFound: 'The requested resource {{ .err }} could not be found' ErrContainerNotFound: '{{ .name }} container does not exist' ErrContainerMsg: '{{ .name }} container is abnormal. Please check the log on the container page for details' ErrAppBackup: '{{ .name }} application backup failed {{ .err }}' ErrVersionTooLow: 'The current 1Panel version is too low to update the App Store. Please upgrade the version before operating.' ErrAppNameExist: 'The application name already exists' AppStoreIsSyncing: 'The App Store is syncing, please try again later' ErrGetCompose: 'Failed to obtain the docker-compose.yml file! {{ .detail }}' ErrAppWarn: 'Abnormal status, please check the log' ErrAppParamKey: 'Parameter {{ .name }} field is abnormal' ErrAppUpgrade: 'Application {{ .name }} upgrade failed {{ .err }}' AppRecover: 'Rollback application {{ .name }}' PullImageStart: 'Start pulling image {{ .name }}' PullImageSuccess: 'Image pull successful' AppStoreIsLastVersion: 'The App Store is already the latest version' AppStoreSyncSuccess: 'App Store synchronization successful' SyncAppDetail: 'Synchronize application configuration' AppVersionNotMatch: '{{ .name }} application requires a higher 1Panel version, skipping synchronization' MoveSiteDir: 'The current upgrade requires migration of the OpenResty website directory' MoveSiteToDir: 'Migrate site directory to {{ .name }}' ErrMoveSiteDir: 'Failed to migrate site directory' MoveSiteDirSuccess: 'Successful migration of website directory' DeleteRuntimePHP: 'Delete PHP runtime' CustomAppStoreFileValid: 'App store packages need to be in .tar.gz format' PullImageTimeout: 'Pull image timeout, please try to increase the image acceleration or change to another image acceleration' ErrAppIsDown: '{{ .name }} application status is abnormal, please check' ErrCustomApps: 'There is an installed application, please uninstall it first' ErrCustomRuntimes: 'There is an installed runtime environment, please delete it first' ErrAppVersionDeprecated: "The {{ .name }} application is not compatible with the current 1Panel version, skipped" ErrDockerFailed: "The state of Docker is abnormal, please check the service status" ErrDockerComposeCmdNotFound: "The Docker Compose command does not exist, please install this command on the host machine first" #file ErrFileCanNotRead: 'This file does not support preview' ErrFileToLarge: 'The file is larger than 10M and cannot be opened' ErrPathNotFound: 'Directory does not exist' ErrMovePathFailed: 'The target path cannot contain the original path!' ErrLinkPathNotFound: 'The target path does not exist!' ErrFileIsExist: 'The file or folder already exists!' ErrFileUpload: '{{ .name }} failed to upload file {{ .detail }}' ErrFileDownloadDir: 'Download folder is not supported' ErrCmdNotFound: '{{ .name}} command does not exist, please install this command on the host first' ErrSourcePathNotFound: 'Source directory does not exist' ErrFavoriteExist: 'This path has already been favorited' ErrInvalidChar: 'Illegal characters are not allowed' ErrPathNotDelete: 'The selected directory cannot be deleted' ErrLogFileToLarge: "The log file exceeds 500MB and cannot be opened" #website ErrAliasIsExist: 'Alias already exists' ErrBackupMatch: 'The backup file does not match some of the current website data {{ .detail }}' ErrBackupExist: 'The corresponding part of the source data in the backup file does not exist {{ .detail }}' ErrPHPResource: 'The local operating environment does not support switching! ' ErrPathPermission: 'A folder with non-1000:1000 permissions was detected in the index directory, which may cause an Access denied error on the website. Please click the Save button above' ErrDomainIsUsed: 'The domain name is already used by the website [{{ .name }}]' ErrDomainFormat: '{{ .name }} domain name format is incorrect' ErrDefaultAlias: 'default is a reserved code, please use another code' ErrParentWebsite: 'You need to delete the subsite {{ .name }} first' ErrBuildDirNotFound: 'The build directory does not exist' ErrImageNotExist: 'The operating environment {{ .name }} image does not exist, please re-edit the operating environment' ErrProxyIsUsed: "Load balancing has been used by reverse proxy, cannot be deleted" ErrSSLValid: 'Certificate file is abnormal, please check the certificate status!' #ssl ErrSSLCannotDelete: 'The {{ .name }} certificate is being used by a website and cannot be deleted' ErrAccountCannotDelete: 'The account is associated with a certificate and cannot be deleted' ErrSSLApply: 'Certificate renewal successful, openresty reload failed, please check the configuration!' ErrEmailIsExist: 'The mailbox already exists' ErrSSLKeyNotFound: 'The private key file does not exist' ErrSSLCertificateNotFound: 'The certificate file does not exist' ErrSSLKeyFormat: 'Private key file verification failed' ErrSSLCertificateFormat: 'The certificate file format is incorrect, please use pem format' ErrEabKidOrEabHmacKeyCannotBlank: 'EabKid or EabHmacKey cannot be blank' ErrOpenrestyNotFound: 'Http mode requires Openresty to be installed first' ApplySSLStart: 'Start applying for a certificate, domain name [{{ .domain }}] application method [{{ .type }}] ' dnsAccount: 'DNS Auto' dnsManual: 'DNS Manual' http: 'HTTP' ApplySSLFailed: 'Application for [{{ .domain }}] certificate failed, {{ .detail }} ' ApplySSLSuccess: 'Apply for [{{ .domain }}] certificate successfully! !' DNSAccountName: 'DNS account [{{ .name }}] vendor [{{ .type }}]' PushDirLog: 'Certificate pushed to directory [{{ .path }}] {{ .status }}' ErrDeleteCAWithSSL: 'The current organization has a certificate that has been issued and cannot be deleted.' ErrDeleteWithPanelSSL: 'Panel SSL configuration uses this certificate and cannot be deleted' ErrDefaultCA: 'The default authority cannot be deleted' ApplyWebSiteSSLLog: 'Starting to renew the {{ .name }} website certificate' ErrUpdateWebsiteSSL: '{{ .name }} website certificate update failed: {{ .err }}' ApplyWebSiteSSLSuccess: 'Update website certificate successfully' ErrExecShell: 'Failed to execute script {{ .err }}' ExecShellStart: 'Start executing the script' ExecShellSuccess: 'Script execution successful' StartUpdateSystemSSL: 'Start updating system certificate' UpdateSystemSSLSuccess: 'Update system certificate successfully' ErrWildcardDomain: 'Unable to apply for wildcard domain name certificate in HTTP mode' ErrApplySSLCanNotDelete: "The certificate {{.name}} being applied for cannot be deleted, please try again later." #mysql ErrUserIsExist: 'The current user already exists, please re-enter' ErrDatabaseIsExist: 'The current database already exists, please re-enter' ErrExecTimeOut: 'SQL execution timed out, please check the database' ErrRemoteExist: 'The remote database already exists with this name, please modify it and try again' ErrLocalExist: 'The name already exists in the local database, please modify it and try again' #redis ErrTypeOfRedis: 'The recovery file type does not match the current persistence method, please modify it and try again' #container ErrInUsed: '{{ .detail }} is in use and cannot be deleted' ErrObjectInUsed: 'The object is in use and cannot be deleted' ErrObjectBeDependent: 'This image depends on other images and cannot be deleted' ErrPortRules: 'Port number does not match, please re-enter!' ErrPgImagePull: 'Image pull timed out, please configure image acceleration or manually pull the {{ .name }} image and try again' PruneHelper: "This cleanup removed {{ .name }} {{ .count }} items, freeing {{ .size }} disk space" ImageRemoveHelper: "Deleted image {{ .name }}, freeing {{ .size }} disk space" BuildCache: "Build cache" Volume: "Storage volume" Network: "Network" #runtime ErrFileNotExist: '{{ .detail }} file does not exist! Please check the integrity of the source file!' ErrImageBuildErr: 'Image build failed' ErrImageExist: "Image already exists! Please modify the image name." ErrDelWithWebsite: 'The operating environment is already associated with a website and cannot be deleted' ErrRuntimeStart: 'Startup failed' ErrPackageJsonNotFound: 'package.json file does not exist' ErrScriptsNotFound: 'The scripts configuration item was not found in package.json' ErrContainerNameNotFound: 'Unable to get container name, please check .env file' ErrNodeModulesNotFound: 'The node_modules folder does not exist! Please edit the runtime environment or wait for the runtime environment to start successfully' ErrContainerNameIsNull: 'Container name does not exist' ErrPHPPortIsDefault: "Port 9000 is the default port, please modify and try again" ErrPHPRuntimePortFailed: "The port {{ .name }} is already used by the current runtime environment, please modify and try again" #tool ErrConfigNotFound: 'Configuration file does not exist' ErrConfigParse: 'The configuration file format is incorrect' ErrConfigIsNull: 'Configuration file cannot be empty' ErrConfigDirNotFound: 'The running directory does not exist' ErrConfigAlreadyExist: 'A configuration file with the same name already exists' ErrUserFindErr: 'User {{ .name }} search failed {{ .err }}' #cronjob CutWebsiteLogSuccess: '{{ .name }} website log cut successfully, backup path {{ .path }}' HandleShell: 'Execute script {{ .name }}' HandleNtpSync: 'System time synchronization' HandleSystemClean: 'System cache cleanup' SystemLog: 'System Log' CutWebsiteLog: 'Rotate Website Log' FileOrDir: 'Directory / File' UploadFile: 'Uploading backup file {{ .file }} to {{ .backup }}' IgnoreBackupErr: 'Backup failed, error: {{ .detail }}, ignoring this error...' IgnoreUploadErr: 'Upload failed, error: {{ .detail }}, ignoring this error...' #toolbox ErrNotExistUser: 'The current user does not exist, please modify and try again!' ErrBanAction: 'Setting failed. The current {{ .name }} service is unavailable. Please check and try again!' ErrClamdscanNotFound: 'The clamdscan command was not detected, please refer to the documentation to install it!' #waf ErrScope: 'Modifying this configuration is not supported' ErrStateChange: 'State change failed' ErrRuleExist: 'Rule already exists' ErrRuleNotExist: 'Rule does not exist' ErrParseIP: 'Wrong IP format' ErrDefaultIP: 'default is a reserved name, please change it to another name' ErrGroupInUse: 'IP group is used by blacklist/whitelist and cannot be deleted' ErrIPGroupAclUse: "IP group is used by custom rules of website {{ .name }}, cannot be deleted" ErrGroupExist: 'IP group name already exists' ErrIPRange: 'Wrong IP range' ErrIPExist: 'IP already exists' urlDefense: 'URL rules' urlHelper: 'Prohibited URL' dirFilter: 'Directory filter' xss: 'XSS' phpExec: 'PHP script execution' oneWordTrojan: 'One Word Trojan' appFilter: 'Apply dangerous directory filtering' webshell: 'Webshell' args: 'Parameter rules' protocolFilter: 'Protocol filtering' javaFileter: 'Java dangerous file filter' scannerFilter: 'Scanner filter' escapeFilter: 'escape filter' customRule: 'Custom rule' httpMethod: 'HTTP method filtering' fileExt: 'File upload restrictions' defaultIpBlack: 'Malicious IP group' cookie: 'Cookie Rules' urlBlack: 'URL blacklist' uaBlack: 'User-Agent blacklist' attackCount: 'Attack frequency limit' fileExtCheck: 'File upload restrictions' geoRestrict: 'Regional access restrictions' unknownWebsite: 'Unauthorized domain name access' notFoundCount: '404 Rate Limit' headerDefense: 'Header rules' defaultUaBlack: 'User-Agent rules' methodWhite: 'HTTP rules' captcha: 'human-machine verification' fiveSeconds: '5 seconds verification' vulnCheck: 'Supplementary rules' acl: 'Custom rules' sql: 'SQL injection' cc: 'Access frequency limit' defaultUrlBlack: 'URL rules' sqlInject: 'SQL injection' ErrDBNotExist: 'Database does not exist' allow: 'allow' deny: 'deny' OpenrestyNotFound: 'Openresty is not installed' remoteIpIsNull: "IP list is empty" #task TaskStart: '{{ .name }} task starts [START]' TaskEnd: '{{ .name }} Task completed [COMPLETED]' TaskFailed: '{{ .name }} task failed' TaskTimeout: '{{ .name }} timed out' TaskSuccess: '{{ .name }} Task succeeded' TaskRetry: 'Start {{ .name }}th retry' SubTaskSuccess: '{{ .name }} succeeded' SubTaskFailed: '{{ .name }} failed: {{ .err }}' TaskInstall: 'Install' TaskUninstall: 'Uninstall' TaskCreate: 'Create' TaskDelete: 'Delete' TaskUpgrade: 'Upgrade' TaskUpdate: 'Update' TaskRestart: 'Restart' TaskBackup: 'Backup' TaskRecover: 'Recover' TaskRollback: 'Rollback' TaskPull: 'Pull' TaskCommit: 'Commit' TaskBuild: 'Build' TaskPush: 'Push' TaskClean: "Cleanup" TaskHandle: 'Execute' Website: 'Website' App: 'Application' Runtime: 'Runtime environment' Database: 'Database' ConfigFTP: 'Create FTP user {{ .name }}' ConfigOpenresty: 'Create Openresty configuration file' InstallAppSuccess: 'Application {{ .name }} installed successfully' ConfigRuntime: 'Configure the runtime environment' ConfigApp: 'Configuration Application' SuccessStatus: '{{ .name }} succeeded' FailedStatus: '{{ .name }} failed {{ .err }}' HandleLink: 'Handle application association' HandleDatabaseApp: 'Handling application parameters' ExecShell: 'Execute {{ .name }} script' PullImage: 'Pull image' Start: 'Start' Run: 'Start' Stop: 'Stop' Image: 'Mirror' Compose: 'Orchestration' Container: 'Container' AppLink: 'Linked Application' EnableSSL: 'Enable HTTPS' AppStore: 'App Store' TaskSync: 'Synchronize' LocalApp: 'Local Application' SubTask: 'Subtask' RuntimeExtension: 'Runtime Environment Extension' TaskIsExecuting: 'Task is running' CustomAppstore: 'Custom application warehouse' # task - ai OllamaModelPull: 'Pull Ollama model {{ .name }}' OllamaModelSize: 'Get the size of Ollama model {{ .name }}' # task-snapshot Snapshot: 'Snapshot' SnapDBInfo: 'Write 1Panel database information' SnapCopy: 'Copy files & directories {{ .name }}' SnapNewDB: 'Initialize database {{ .name }} connection' SnapDeleteOperationLog: 'Delete operation log' SnapDeleteLoginLog: 'Delete access log' SnapDeleteMonitor: 'Delete monitoring data' SnapRemoveSystemIP: 'Remove system IP' SnapBaseInfo: 'Write 1Panel basic information' SnapInstallAppImageEmpty: 'No application images selected, skipping...' SnapInstallApp: 'Backup 1Panel installed applications' SnapDockerSave: 'Compress installed applications' SnapLocalBackup: 'Backup 1Panel local backup directory' SnapCompressBackup: 'Compress local backup directory' SnapPanelData: 'Backup 1Panel data directory' SnapCompressPanel: 'Compressed Data Directory' SnapWebsite: 'Backup 1Panel website directory' SnapCloseDBConn: 'Close the database connection' SnapCompress: 'Make snapshot files' SnapCompressFile: 'Compress snapshot file' SnapCheckCompress: 'Check snapshot compression file' SnapCompressSize: 'Snapshot file size {{ .name }}' SnapUpload: 'Upload snapshot file' SnapLoadBackup: 'Get backup account information' SnapUploadTo: 'Upload snapshot file to {{ .name }}' SnapUploadRes: 'Upload snapshot file to {{ .name }}' SnapshotRecover: 'Snapshot Restore' RecoverDownload: 'Download snapshot file' Download: 'Download' RecoverDownloadAccount: 'Get snapshot download backup account {{ .name }}' RecoverDecompress: 'Decompress snapshot compressed files' Decompress: 'Decompression' BackupBeforeRecover: 'Backup system-related data before snapshot' Readjson: 'Read the Json file in the snapshot' ReadjsonPath: 'Get the Json file path in the snapshot' ReadjsonContent: 'Read Json file' ReadjsonMarshal: 'Json escape processing' RecoverApp: 'Restore installed apps' RecoverWebsite: 'Recover website directory' RecoverAppImage: 'Restore snapshot image backup' RecoverCompose: 'Restore other composer content' RecoverComposeList: 'Get all composers to be restored' RecoverComposeItem: 'Recover compose {{ .name }}' RecoverAppEmpty: 'No application image backup was found in the snapshot file' RecoverBaseData: 'Recover base data and files' RecoverDaemonJsonEmpty: 'Both the snapshot file and the current machine do not have the container configuration daemon.json file' RecoverDaemonJson: 'Restore container configuration daemon.json file' RecoverDBData: 'Recover database data' RecoverBackups: 'Restore local backup directory' RecoverPanelData: 'Recovery data directory' # task - container ContainerNewCliet: 'Initialize Docker Client' ContainerImagePull: 'Pull container image {{ .name }}' ContainerRemoveOld: 'Remove the original container {{ .name }}' ContainerImageCheck: 'Check if the image is pulled normally' ContainerLoadInfo: 'Get basic container information' ContainerRecreate: 'Container update failed, now starting to restore the original container' ContainerCreate: 'Create a new container {{ .name }}' ContainerCreateFailed: 'Container creation failed, delete the failed container' ContainerStartCheck: 'Check if the container has been started' # task - image ImageBuild: 'Image Build' ImageBuildStdoutCheck: 'Parse image output content' ImageBuildRes: 'Image build output: {{ .name }}' ImagePull: 'Pull image' ImageRepoAuthFromDB: 'Get repository authentication information from the database' ImaegPullRes: 'Image pull output: {{ .name }}' ImagePush: 'Push image' ImageRenameTag: 'Modify image tag' ImageNewTag: 'New image tag {{ .name }}' ImaegPushRes: 'Image push output: {{ .name }}' ComposeCreate: 'Create a composition' ComposeCreateRes: 'Compose create output: {{ .name }}' # task - website BackupNginxConfig: 'Backup website OpenResty configuration file' CompressFileSuccess: 'Compress directory successfully, compressed to {{ .name }}' CompressDir: 'Compression directory' DeCompressFile: 'Decompress file {{ .name }}' ErrCheckValid: 'Backup file verification failed, {{ .name }}' Rollback: 'Rollback' websiteDir: 'Website Directory' RecoverFailedStartRollBack: 'Recovery failed, start rollback' AppBackupFileIncomplete: 'The backup file is incomplete and lacks app.json or app.tar.gz files' AppAttributesNotMatch: 'Application type or name does not match' #alert ErrAlert: 'The format of the warning message is incorrect, please check and try again!' ErrAlertPush: 'Error in pushing alert information, please check and try again!' ErrAlertSave: 'Error saving the alarm information, please check and try again!' ErrAlertSync: 'Alarm information synchronization error, please check and try again!' ErrAlertRemote: 'Alarm message remote error, please check and try again!' #task - runtime ErrInstallExtension: "An installation task is already in progress, please wait for the task to finish" # alert mail template PanelAlertTitle: "Panel Alert Notification" TestAlertTitle: "Test Email - Verify Email Connectivity" TestAlert: "This is a test email to verify that your email sending configuration is correct." LicenseExpirationAlert: "Your 1Panel license will expire in {{ .day }} days. Please log in to the panel for details." CronJobFailedAlert: "Your 1Panel scheduled task '{{ .name }}' has failed. Please log in to the panel for details." ClamAlert: "Your 1Panel virus scan task has detected {{ .num }} infected files. Please log in to the panel for details." WebSiteAlert: "There are {{ .num }} websites on your 1Panel that will expire in {{ .day }} days. Please log in to the panel for details." SSLAlert: "There are {{ .num }} SSL certificates on your 1Panel that will expire in {{ .day }} days. Please log in to the panel for details." DiskUsedAlert: "Your 1Panel disk '{{ .name }}' has used {{ .used }}. Please log in to the panel for details." ResourceAlert: "The average {{ .name }} usage over {{ .time }} minutes on your 1Panel is {{ .used }}. Please log in to the panel for details." PanelVersionAlert: "A new version of 1Panel is available. Please log in to the panel to upgrade." PanelPwdExpirationAlert: "Your 1Panel password will expire in {{ .day }} days. Please log in to the panel for details."