服务器配置
This commit is contained in:
1 parent
a1b4a63552
commit
fa7c8244b0
33 files changed
+1882
-363
No files matched your search
+47
-16
@@ -88,8 +88,8 @@
|
||||
}
|
||||
},
|
||||
"domainSeparationConfirm": {
|
||||
"title": "Save dual-domain settings?",
|
||||
"description": "After saving, only the site URL can serve the admin UI and API, and only the image URL can serve public image links. Access via IP, an unlisted Host, or a reverse proxy that does not forward Host correctly may lock you out of the admin UI.\n\nIf locked out, run docker exec pichost clear-domains (local dev: npm run clear-domains), or disable domain separation in Settings when you can access it again.\n\nSave anyway?",
|
||||
"title": "Save separated-domain settings?",
|
||||
"description": "After saving, the admin URL serves the admin UI and API, while the image, video and file URLs serve only their corresponding media links. Access via IP, an unlisted Host, or a reverse proxy that does not forward Host correctly may lock you out of the admin UI.\n\nIf locked out, run docker exec pichost clear-domains (local dev: npm run clear-domains), or disable domain separation in Settings when you can access it again.\n\nSave anyway?",
|
||||
"confirm": "Save anyway"
|
||||
},
|
||||
"setup": {
|
||||
@@ -99,9 +99,9 @@
|
||||
"passwordPlaceholder": "Set login password",
|
||||
"confirmPlaceholder": "Enter password again",
|
||||
"allowRegistration": "Allow user registration",
|
||||
"domainSeparation": "Separate admin and image domains",
|
||||
"domainSeparationHint": "Admin and API use the site URL; image links use a dedicated image URL",
|
||||
"domainSeparationProxyHint": "Point both domains to this host and reverse-proxy to port 6892 (Nginx, Caddy, NPM, etc.)",
|
||||
"domainSeparation": "Separate admin, image, video and file domains",
|
||||
"domainSeparationHint": "Allow admin, images, videos and files to each use a dedicated domain.",
|
||||
"domainSeparationProxyHint": "Point the configured domains to this host and reverse-proxy to port 6892 (Nginx, Caddy, NPM, etc.)",
|
||||
"domainSeparationProxyExample": "View example",
|
||||
"siteBaseUrl": "Site URL",
|
||||
"siteBaseUrlHint": "No trailing slash; admin UI and API upload endpoint",
|
||||
@@ -109,7 +109,13 @@
|
||||
"imageBaseUrl": "Image URL",
|
||||
"imageBaseUrlHint": "No trailing slash; public image link prefix",
|
||||
"imageBaseUrlPlaceholder": "https://pic.example.com",
|
||||
"domainSeparationInvalid": "Enter valid site and image URLs with different hostnames",
|
||||
"videoBaseUrl": "Video URL",
|
||||
"videoBaseUrlHint": "No trailing slash; falls back to the image URL when empty",
|
||||
"videoBaseUrlPlaceholder": "https://video.example.com",
|
||||
"fileBaseUrl": "File URL",
|
||||
"fileBaseUrlHint": "No trailing slash; falls back to the image URL when empty",
|
||||
"fileBaseUrlPlaceholder": "https://file.example.com",
|
||||
"domainSeparationInvalid": "Enter valid admin, image, video and file URLs",
|
||||
"migrateSubmit": "Complete migration",
|
||||
"initSubmit": "Create and continue",
|
||||
"migrateSuccess": "Migration complete",
|
||||
@@ -326,7 +332,7 @@
|
||||
"pageTitle": "Settings & preferences",
|
||||
"pageSubtitle": "Manage system configuration and activity logs",
|
||||
"pageSubtitleBasic": "Configure basic options so PicHost works better for you.",
|
||||
"pageSubtitleDomains": "Configure site and image URLs and upload path rules",
|
||||
"pageSubtitleDomains": "Configure admin, image, video and file domains plus path rules",
|
||||
"pageSubtitleAccess": "Configure image access policies to prevent hotlink abuse",
|
||||
"pageSubtitleLogs": "View uploads, deletions, edits, and configuration changes",
|
||||
"searchPlaceholder": "Search settings…",
|
||||
@@ -337,11 +343,20 @@
|
||||
"defaultCopyFormatHint": "Link format copied automatically after upload",
|
||||
"systemVersionHint": "Currently running PicHost version",
|
||||
"badgeEnabled": "Enabled",
|
||||
"domainSeparationProxyTitle": "Both domains must resolve to this host",
|
||||
"domainSeparationProxyBody": "Point the site and image URLs to this host and reverse-proxy to port 6892 (Nginx, Caddy, NPM, etc.).",
|
||||
"siteBaseUrlRoleHint": "URL for the admin UI",
|
||||
"imageBaseUrlRoleHint": "URL for serving and displaying images",
|
||||
"imageDomainSection": "Image domain",
|
||||
"domainSeparationProxyTitle": "Configured domains must resolve to this host",
|
||||
"domainSeparationProxyBody": "Point the admin and configured image, video and file domains to this host and reverse-proxy to port 6892 (Nginx, Caddy, NPM, etc.).",
|
||||
"siteBaseUrlRoleHint": "Admin and API use this domain; resources use it when their switches are off",
|
||||
"imageBaseUrlRoleHint": "Use this domain for images when on; use the site domain when off",
|
||||
"resourceDomainSection": "Resource domains",
|
||||
"videoBaseUrl": "Video URL",
|
||||
"videoBaseUrlRoleHint": "Use this domain for videos, HLS and thumbnails when on; use the site domain when off",
|
||||
"videoBaseUrlPlaceholder": "https://video.example.com",
|
||||
"videoBaseUrlActive": "Active: {url}",
|
||||
"fileBaseUrl": "File URL",
|
||||
"fileBaseUrlRoleHint": "Use this domain for file links and downloads when on; use the site domain when off",
|
||||
"fileBaseUrlPlaceholder": "https://file.example.com",
|
||||
"fileBaseUrlActive": "Active: {url}",
|
||||
"fallbackImageDomain": "Uses image URL",
|
||||
"navBasic": "Basic",
|
||||
"navDomains": "Domains & paths",
|
||||
"navAccess": "Access control",
|
||||
@@ -402,7 +417,7 @@
|
||||
"defaultCopyFormat": "Default copy format",
|
||||
"refererPlaceholder": "example.com, www.example.com",
|
||||
"domainSettings": "Domain settings",
|
||||
"domainSeparationActive": "Domain separation enabled: image host serves images only; site host serves admin and API",
|
||||
"domainSeparationActive": "Domain separation enabled: admin, images, videos and files can use dedicated domains",
|
||||
"siteBaseUrl": "Site URL",
|
||||
"siteBaseUrlHint": "No trailing slash; admin UI and API upload endpoint",
|
||||
"siteBaseUrlPlaceholder": "https://admin.example.com",
|
||||
@@ -412,13 +427,17 @@
|
||||
"imageBaseUrlSingleHint": "No trailing slash; leave empty to use the current request host; single-domain setups do not need a site URL",
|
||||
"imageBaseUrlPlaceholder": "https://pic.example.com",
|
||||
"imageBaseUrlActive": "Active: {url}",
|
||||
"resourceBaseUrl": "Domain",
|
||||
"resourceBaseUrlSingleHint": "No trailing slash; leave empty to use the current request host. When domain separation is off, this domain serves images, videos and files.",
|
||||
"resourceBaseUrlPlaceholder": "https://cdn.example.com",
|
||||
"resourceBaseUrlActive": "Current resource domain: {url}",
|
||||
"runtimeDetected": "Detected current access: {url} (will not be saved automatically)",
|
||||
"fillDetectedOrigin": "Use detected URL",
|
||||
"hostRoleUnknown": "Current Host does not match configured domains; reverse-proxy bypass may be possible",
|
||||
"disableDomainSeparationTitle": "Disable domain separation",
|
||||
"disableDomainSeparationDesc": "This clears the site URL and keeps only the image URL. Continue?",
|
||||
"disableDomainSeparationDesc": "This clears the admin URL and keeps the image, video and file URLs. Continue?",
|
||||
"disableDomainSeparationConfirm": "Disable",
|
||||
"domainSeparationRequired": "Both site and image URLs are required when domain separation is enabled",
|
||||
"domainSeparationRequired": "Admin and image URLs are required when domain separation is enabled",
|
||||
"hideFolderInUrl": "Use short image links",
|
||||
"hideFolderInUrlHint": "When on, links are only domain + filename, e.g. img.example.com/abc.webp. When off, date or custom folders are kept, e.g. img.example.com/2026/08/abc.webp",
|
||||
"storageUseDatePath": "Group uploads by year/month",
|
||||
@@ -445,6 +464,7 @@
|
||||
"uploadLimits": "Upload limits",
|
||||
"uploadLimitsHint": "Site-wide upload policy and your personal convenience options. Applies after save.",
|
||||
"imageProcessingHint": "Site-wide format conversion and personal compression/cleanup.",
|
||||
"videoProcessingHint": "Site-wide transcode resources and personal video upload preferences, shared with the video upload page.",
|
||||
"serverPolicy": "Site-wide",
|
||||
"personalPreference": "Personal",
|
||||
"uploadRateGroup": "Upload rate limits",
|
||||
@@ -453,6 +473,12 @@
|
||||
"uploadMaxFileSizeHint": "Uploads larger than this are rejected (1–100 MB).",
|
||||
"allowedMimeTypes": "Allowed image formats",
|
||||
"allowedMimeTypesHint": "Keep at least one format enabled. The server validates file signatures, not just extensions.",
|
||||
"allowedVideoExtensions": "Allowed video formats",
|
||||
"allowedVideoExtensionsHint": "Keep at least one video container enabled. Both the upload page and server enforce this list.",
|
||||
"forbiddenFileExtensions": "Forbidden file formats",
|
||||
"forbiddenFileExtensionsHint": "These extensions are rejected by the file upload page and server. You can add custom extensions.",
|
||||
"forbiddenFileExtensionsCustomPlaceholder": "Add extensions, e.g. exe, php",
|
||||
"forbiddenFileExtensionsAdd": "Add",
|
||||
"preserveOriginalUpload": "Preserve originals (disable WebP conversion)",
|
||||
"preserveOriginalUploadHint": "When enabled, JPEG/PNG/GIF uploads are stored as-is instead of converting to WebP.",
|
||||
"rateLimits": "Rate limits",
|
||||
@@ -1129,7 +1155,9 @@
|
||||
"copyLink": "Copy link",
|
||||
"download": "Download",
|
||||
"deleted": "Deleted",
|
||||
"deleteFailed": "Delete failed"
|
||||
"deleteFailed": "Delete failed",
|
||||
"videoFormatBlocked": "{format} videos are not allowed",
|
||||
"fileFormatBlocked": "{format} files are not allowed"
|
||||
},
|
||||
"host": {
|
||||
"video": "Video",
|
||||
@@ -1173,6 +1201,8 @@
|
||||
"uploadTitle": "Drop files here to upload",
|
||||
"uploadHint": "or click to choose files, up to 10 at a time",
|
||||
"uploadFormats": "Any type allowed (HTML / HTM / SVG blocked), up to 100MB per file",
|
||||
"uploadFormatsBlocked": "{formats} blocked; other file types allowed, up to 100MB per file",
|
||||
"uploadFormatsUnrestricted": "Any file type allowed, up to 100MB per file",
|
||||
"empty": "No files yet — upload one to get started"
|
||||
},
|
||||
"video": {
|
||||
@@ -1196,6 +1226,7 @@
|
||||
"uploadTitle": "Drop videos here to upload",
|
||||
"uploadHint": "or click to choose video files, up to 10 at a time",
|
||||
"uploadFormats": "MP4 / WebM / MOV / MKV and more, up to 100MB per file",
|
||||
"uploadFormatsAllowed": "{formats} supported, up to 100MB per file",
|
||||
"empty": "No videos yet — upload one to get started"
|
||||
}
|
||||
},
|
||||
|
||||
+47
-16
@@ -88,8 +88,8 @@
|
||||
}
|
||||
},
|
||||
"domainSeparationConfirm": {
|
||||
"title": "确认保存双域名配置?",
|
||||
"description": "保存后,仅网站域名可访问管理后台与 API,仅图片域名可提供图片直链。若通过 IP、未配置的 Host,或反代未正确传递 Host 访问,可能无法打开后台。\n\n若发生锁死,可执行 docker exec pichost clear-domains(本地开发:npm run clear-domains)清除域名配置,或在能访问时于设置中关闭「域名分离」。\n\n确定仍要保存吗?",
|
||||
"title": "确认保存独立域名配置?",
|
||||
"description": "保存后,后台域名用于管理后台与 API;图片、视频、文件域名分别只提供对应媒体直链。若通过 IP、未配置的 Host,或反代未正确传递 Host 访问,可能无法打开后台。\n\n若发生锁死,可执行 docker exec pichost clear-domains(本地开发:npm run clear-domains)清除域名配置,或在能访问时于设置中关闭「域名分离」。\n\n确定仍要保存吗?",
|
||||
"confirm": "确认保存"
|
||||
},
|
||||
"setup": {
|
||||
@@ -99,9 +99,9 @@
|
||||
"passwordPlaceholder": "设置登录密码",
|
||||
"confirmPlaceholder": "再次输入密码",
|
||||
"allowRegistration": "允许其他用户注册",
|
||||
"domainSeparation": "启用后台与图片域名分离",
|
||||
"domainSeparationHint": "启用后,可以使用不同的域名访问后台和图片资源,便于配置 CDN 和自定义域名。",
|
||||
"domainSeparationProxyHint": "需将两个域名解析到本机,并通过 Nginx、Caddy、NPM 等反代到端口 6892",
|
||||
"domainSeparation": "启用后台与图片、视频、文件各自分离",
|
||||
"domainSeparationHint": "启用后,后台、图片、视频、文件能够各自使用独立的域名。",
|
||||
"domainSeparationProxyHint": "需将配置的域名解析到本机,并通过 Nginx、Caddy、NPM 等反代到端口 6892",
|
||||
"domainSeparationProxyExample": "查看示例",
|
||||
"siteBaseUrl": "网站域名",
|
||||
"siteBaseUrlHint": "末尾不加 /;管理后台、API 上传地址",
|
||||
@@ -109,7 +109,13 @@
|
||||
"imageBaseUrl": "图片域名",
|
||||
"imageBaseUrlHint": "末尾不加 /;生成图片直链地址",
|
||||
"imageBaseUrlPlaceholder": "https://pic.example.com",
|
||||
"domainSeparationInvalid": "请填写有效的网站域名与图片域名,且两者不能相同",
|
||||
"videoBaseUrl": "视频域名",
|
||||
"videoBaseUrlHint": "末尾不加 /;留空时沿用图片域名",
|
||||
"videoBaseUrlPlaceholder": "https://video.example.com",
|
||||
"fileBaseUrl": "文件域名",
|
||||
"fileBaseUrlHint": "末尾不加 /;留空时沿用图片域名",
|
||||
"fileBaseUrlPlaceholder": "https://file.example.com",
|
||||
"domainSeparationInvalid": "请填写有效的后台、图片、视频、文件域名",
|
||||
"migrateSubmit": "完成迁移",
|
||||
"initSubmit": "创建并进入",
|
||||
"migrateSuccess": "账号迁移完成",
|
||||
@@ -326,7 +332,7 @@
|
||||
"pageTitle": "设置与偏好",
|
||||
"pageSubtitle": "管理系统配置与操作日志",
|
||||
"pageSubtitleBasic": "配置系统的基本选项,让 PicHost 更好地为你服务。",
|
||||
"pageSubtitleDomains": "配置网站域名、图片域名以及图片存储路径等相关设置",
|
||||
"pageSubtitleDomains": "配置后台、图片、视频、文件域名以及存储路径等相关设置",
|
||||
"pageSubtitleAccess": "配置图片访问安全策略,防止资源被恶意盗用。",
|
||||
"pageSubtitleLogs": "查看用户上传、删除、修改与系统配置记录",
|
||||
"searchPlaceholder": "搜索设置项…",
|
||||
@@ -337,11 +343,20 @@
|
||||
"defaultCopyFormatHint": "设置上传后自动复制的链接格式。",
|
||||
"systemVersionHint": "当前运行的 PicHost 版本。",
|
||||
"badgeEnabled": "已启用",
|
||||
"domainSeparationProxyTitle": "需要将两个域名解析到本机",
|
||||
"domainSeparationProxyBody": "请将网站域名和图片域名都解析到本机,并通过 Nginx、Caddy、NPM 等反向代理到本机的 6892 端口。",
|
||||
"siteBaseUrlRoleHint": "用于访问后台管理界面的网站域名。",
|
||||
"imageBaseUrlRoleHint": "用于访问和显示图片资源的域名。",
|
||||
"imageDomainSection": "图片域名",
|
||||
"domainSeparationProxyTitle": "需要将配置的域名解析到本机",
|
||||
"domainSeparationProxyBody": "请将后台域名和已配置的图片、视频、文件域名解析到本机,并通过 Nginx、Caddy、NPM 等反向代理到本机的 6892 端口。",
|
||||
"siteBaseUrlRoleHint": "后台与 API 使用该域名;资源开关关闭时,图片、视频、文件也使用它。",
|
||||
"imageBaseUrlRoleHint": "打开后图片单独走该域名;关闭时使用网站域名。",
|
||||
"resourceDomainSection": "资源域名",
|
||||
"videoBaseUrl": "视频域名",
|
||||
"videoBaseUrlRoleHint": "打开后视频、HLS 和缩略图单独走该域名;关闭时使用网站域名。",
|
||||
"videoBaseUrlPlaceholder": "https://video.example.com",
|
||||
"videoBaseUrlActive": "当前生效:{url}",
|
||||
"fileBaseUrl": "文件域名",
|
||||
"fileBaseUrlRoleHint": "打开后文件直链和下载单独走该域名;关闭时使用网站域名。",
|
||||
"fileBaseUrlPlaceholder": "https://file.example.com",
|
||||
"fileBaseUrlActive": "当前生效:{url}",
|
||||
"fallbackImageDomain": "沿用图片域名",
|
||||
"navBasic": "基础设置",
|
||||
"navDomains": "域名与路径",
|
||||
"navAccess": "访问控制",
|
||||
@@ -402,7 +417,7 @@
|
||||
"defaultCopyFormat": "默认复制格式",
|
||||
"refererPlaceholder": "example.com, www.example.com",
|
||||
"domainSettings": "域名配置",
|
||||
"domainSeparationActive": "已启用域名分离:图片域仅出图,管理域提供后台与 API",
|
||||
"domainSeparationActive": "已启用域名分离:后台、图片、视频、文件可使用独立域名",
|
||||
"siteBaseUrl": "网站域名",
|
||||
"siteBaseUrlHint": "末尾不加 /;管理后台、API 上传地址",
|
||||
"siteBaseUrlPlaceholder": "https://admin.example.com",
|
||||
@@ -412,13 +427,17 @@
|
||||
"imageBaseUrlSingleHint": "末尾不加 /;留空则使用当前访问域名;单域名部署无需填写网站域名",
|
||||
"imageBaseUrlPlaceholder": "https://pic.example.com",
|
||||
"imageBaseUrlActive": "当前生效:{url}",
|
||||
"resourceBaseUrl": "域名",
|
||||
"resourceBaseUrlSingleHint": "末尾不加 /;留空则使用当前访问域名。关闭域名分离时,该域名统一用于图片、视频和文件资源。",
|
||||
"resourceBaseUrlPlaceholder": "https://cdn.example.com",
|
||||
"resourceBaseUrlActive": "当前资源域名:{url}",
|
||||
"runtimeDetected": "检测到当前访问:{url}(不会自动写入配置)",
|
||||
"fillDetectedOrigin": "填入检测地址",
|
||||
"hostRoleUnknown": "当前访问 Host 与配置不一致,可能存在反代绕过风险",
|
||||
"disableDomainSeparationTitle": "关闭域名分离",
|
||||
"disableDomainSeparationDesc": "将清除管理域名配置,仅保留图片域名。确定继续?",
|
||||
"disableDomainSeparationDesc": "将清除后台域名配置,并保留图片、视频、文件域名。确定继续?",
|
||||
"disableDomainSeparationConfirm": "确认关闭",
|
||||
"domainSeparationRequired": "启用域名分离时需同时填写网站域名与图片域名",
|
||||
"domainSeparationRequired": "启用域名分离时需同时填写后台域名与图片域名",
|
||||
"hideFolderInUrl": "使用简短图片链接",
|
||||
"hideFolderInUrlHint": "启用后,生成的图片链接将使用简短格式(如 /abc123.png),不包含年月目录。",
|
||||
"storageUseDatePath": "上传目录按年/月分组",
|
||||
@@ -445,6 +464,7 @@
|
||||
"uploadLimits": "上传限制",
|
||||
"uploadLimitsHint": "全站上传策略与个人上传便捷选项,保存后立即生效。",
|
||||
"imageProcessingHint": "全站格式转换与个人端压缩、清理策略。",
|
||||
"videoProcessingHint": "全站视频转码资源与个人视频上传偏好,保存后与视频上传页同步。",
|
||||
"serverPolicy": "全站策略",
|
||||
"personalPreference": "个人偏好",
|
||||
"uploadRateGroup": "上传限流",
|
||||
@@ -453,6 +473,12 @@
|
||||
"uploadMaxFileSizeHint": "超过此大小的图片将被拒绝上传(1–100 MB)。",
|
||||
"allowedMimeTypes": "允许的图片格式",
|
||||
"allowedMimeTypesHint": "至少保留一种格式;服务端会校验文件签名,不仅看扩展名。",
|
||||
"allowedVideoExtensions": "允许的视频格式",
|
||||
"allowedVideoExtensionsHint": "至少保留一种视频容器格式;视频上传页和服务端都会按此列表校验。",
|
||||
"forbiddenFileExtensions": "不允许的文件格式",
|
||||
"forbiddenFileExtensionsHint": "文件上传页和服务端都会拒绝这些扩展名,可额外添加自定义后缀。",
|
||||
"forbiddenFileExtensionsCustomPlaceholder": "添加后缀,如 exe, php",
|
||||
"forbiddenFileExtensionsAdd": "添加",
|
||||
"preserveOriginalUpload": "保留原图(关闭 WebP 转换)",
|
||||
"preserveOriginalUploadHint": "开启后上传的 JPEG/PNG/GIF 不再转为 WebP,按原格式存储;关闭时可节省空间。",
|
||||
"rateLimits": "限流",
|
||||
@@ -1132,7 +1158,9 @@
|
||||
"copyLink": "复制直链",
|
||||
"download": "下载",
|
||||
"deleted": "已删除",
|
||||
"deleteFailed": "删除失败"
|
||||
"deleteFailed": "删除失败",
|
||||
"videoFormatBlocked": "不允许上传 {format} 视频格式",
|
||||
"fileFormatBlocked": "不允许上传 {format} 文件格式"
|
||||
},
|
||||
"host": {
|
||||
"video": "视频",
|
||||
@@ -1176,6 +1204,8 @@
|
||||
"uploadTitle": "拖拽文件到此处上传",
|
||||
"uploadHint": "或点击选择文件,单次最多 10 个",
|
||||
"uploadFormats": "支持任意类型(禁止 HTML / HTM / SVG),单个文件最大 100MB",
|
||||
"uploadFormatsBlocked": "禁止 {formats};其他文件类型可上传,单个文件最大 100MB",
|
||||
"uploadFormatsUnrestricted": "支持任意类型,单个文件最大 100MB",
|
||||
"empty": "还没有文件,上传一个试试"
|
||||
},
|
||||
"video": {
|
||||
@@ -1199,6 +1229,7 @@
|
||||
"uploadTitle": "拖拽视频到此处上传",
|
||||
"uploadHint": "或点击选择视频文件,单次最多 10 个",
|
||||
"uploadFormats": "支持 MP4 / WebM / MOV / MKV 等,单个文件最大 100MB",
|
||||
"uploadFormatsAllowed": "支持 {formats},单个文件最大 100MB",
|
||||
"empty": "还没有视频,上传一个试试"
|
||||
}
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user