feat: 更新文档
@@ -150,10 +150,6 @@ function sidebarQuickstart(): DefaultTheme.SidebarItem[] {
|
||||
|
||||
function sidebarAdvanced(): DefaultTheme.SidebarItem[] {
|
||||
return [
|
||||
{
|
||||
text: 'Security recommendations',
|
||||
link: '/security'
|
||||
},
|
||||
{
|
||||
text: "应用",
|
||||
collapsed: true,
|
||||
@@ -260,6 +256,10 @@ function sidebarAdvanced(): DefaultTheme.SidebarItem[] {
|
||||
text: 'Panel API',
|
||||
link: '/api'
|
||||
},
|
||||
{
|
||||
text: 'Security recommendations',
|
||||
link: '/security'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
42
en/advanced/app.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# 应用
|
||||
|
||||
应用模块是 AcePanel 的核心功能之一,用于管理服务器上的各类软件。通过应用模块,你可以方便地安装、配置和管理 Web 服务器、数据库、运行环境等常用软件。
|
||||
|
||||
## 功能分类
|
||||
|
||||
应用模块分为三个部分:
|
||||
|
||||
- **原生应用**:直接安装在系统上的软件,如 Nginx、MySQL、Redis 等
|
||||
- **运行环境**:各类编程语言的运行时环境,如 PHP、Node.js、Python、Go、Java 等
|
||||
- **容器模板**:基于 Docker 的一键部署模板,可快速部署各类应用
|
||||
|
||||

|
||||
|
||||
## 原生应用 vs 容器模板
|
||||
|
||||
| 特性 | 原生应用 | 容器模板 |
|
||||
|------|----------|----------|
|
||||
| 性能 | 更高 | 略有损耗 |
|
||||
| 隔离性 | 共享系统环境 | 完全隔离 |
|
||||
| 部署难度 | 需要配置 | 一键部署 |
|
||||
| 资源占用 | 较低 | 较高 |
|
||||
| 适用场景 | 生产环境、高性能需求 | 快速测试、多版本共存 |
|
||||
|
||||
## 应用分类
|
||||
|
||||
原生应用按功能分为以下类别:
|
||||
|
||||
- **Web 服务器**:Nginx、OpenResty、Apache
|
||||
- **数据库**:MySQL、MariaDB、PostgreSQL、Percona
|
||||
- **容器**:Docker、Podman
|
||||
- **中间件**:Redis、Memcached
|
||||
- **存储**:MinIO、S3fs
|
||||
- **安全**:Fail2ban
|
||||
- **工具**:phpMyAdmin、Pure-FTPd、Supervisor、Rsync、Frp
|
||||
- **开发者**:Gitea
|
||||
|
||||
## 下一步
|
||||
|
||||
- [原生应用](./app/native) - 了解如何安装和管理原生应用
|
||||
- [运行环境](./app/environment) - 了解如何安装编程语言运行环境
|
||||
- [容器模板](./app/template) - 了解如何使用容器模板快速部署应用
|
||||
97
en/advanced/app/environment.md
Normal file
@@ -0,0 +1,97 @@
|
||||
# 运行环境
|
||||
|
||||
运行环境用于安装各类编程语言的运行时,为网站和项目提供执行环境。
|
||||
|
||||
## 支持的语言
|
||||
|
||||
AcePanel 支持以下编程语言的运行环境:
|
||||
|
||||
| 语言 | 可用版本 | 说明 |
|
||||
|------|----------|------|
|
||||
| Go | 1.20 - 1.25 | 适合构建高性能后端服务 |
|
||||
| Java | JDK 8, 11, 17, 21, 25 | 使用 Amazon Corretto 发行版 |
|
||||
| Node.js | 20, 22, 24 | 适合前端构建和 Node 应用 |
|
||||
| PHP | 7.4 - 8.5 | 适合 Web 开发 |
|
||||
| Python | 3.10 - 3.14 | 适合脚本和 Web 应用 |
|
||||
|
||||
## 运行环境列表
|
||||
|
||||
进入 **应用** 页面,点击 **运行环境** 标签查看可用的运行环境:
|
||||
|
||||

|
||||
|
||||
点击顶部的语言分类可以筛选特定语言的版本:
|
||||
|
||||

|
||||
|
||||
## 安装运行环境
|
||||
|
||||
1. 进入 **应用** 页面
|
||||
2. 点击 **运行环境** 标签
|
||||
3. 选择需要的语言分类(或查看全部)
|
||||
4. 点击对应版本的 **安装** 按钮
|
||||
|
||||
::: tip 版本选择建议
|
||||
- 生产环境建议使用 LTS(长期支持)版本
|
||||
- 标注"已停止维护"的版本不建议用于新项目
|
||||
- 可以同时安装多个版本,在项目中指定使用
|
||||
:::
|
||||
|
||||
## 管理运行环境
|
||||
|
||||
已安装的运行环境会显示 **管理** 按钮,点击进入管理页面:
|
||||
|
||||

|
||||
|
||||
### 运行状态
|
||||
|
||||
显示运行环境的当前状态,提供启动、停止、重启、重载等操作。
|
||||
|
||||
### 模块管理(PHP)
|
||||
|
||||
PHP 运行环境提供模块管理功能,可以安装或卸载各种 PHP 模块:
|
||||
|
||||

|
||||
|
||||
常用模块包括:
|
||||
|
||||
- **OPcache**:PHP 字节码缓存,提升性能
|
||||
- **Redis**:连接 Redis 数据库
|
||||
- **ImageMagick**:图像处理
|
||||
- **Swoole/Swow**:高性能异步框架
|
||||
- **ionCube**:PHP 代码加密解密
|
||||
|
||||
### 配置文件
|
||||
|
||||
可以编辑 PHP 的主配置文件(php.ini)和 FPM 配置文件。
|
||||
|
||||
### 设置为 CLI 默认版本
|
||||
|
||||
点击 **设置为 CLI 默认版本** 按钮,可以将当前版本设置为命令行默认使用的 PHP 版本。
|
||||
|
||||
## 多版本共存
|
||||
|
||||
AcePanel 支持同一语言的多个版本共存。例如,你可以同时安装 PHP 7.4 和 PHP 8.3,不同的网站可以使用不同的 PHP 版本。
|
||||
|
||||
安装路径规则:
|
||||
|
||||
- **Go**:`/opt/ace/server/go/版本号`
|
||||
- **Java**:`/opt/ace/server/java/版本号`
|
||||
- **Node.js**:`/opt/ace/server/nodejs/版本号`
|
||||
- **PHP**:`/opt/ace/server/php/版本号`
|
||||
- **Python**:`/opt/ace/server/python/版本号`
|
||||
|
||||
## 在项目中使用
|
||||
|
||||
创建项目时,可以在项目设置中选择使用的运行环境版本。详见 [项目管理](../project) 文档。
|
||||
|
||||
## 更新运行环境
|
||||
|
||||
当有新版本可用时,列表中会显示最新版本号。你可以:
|
||||
|
||||
1. 卸载旧版本,安装新版本
|
||||
2. 保留旧版本,同时安装新版本(推荐)
|
||||
|
||||
::: warning 注意
|
||||
更新运行环境版本可能导致依赖该版本的项目出现兼容性问题,请在测试环境验证后再更新生产环境。
|
||||
:::
|
||||
83
en/advanced/app/native.md
Normal file
@@ -0,0 +1,83 @@
|
||||
# 原生应用
|
||||
|
||||
原生应用是直接安装在系统上的软件,相比容器化部署具有更好的性能和更低的资源占用。
|
||||
|
||||
## 应用列表
|
||||
|
||||
进入 **应用** 页面,默认显示原生应用列表。你可以通过顶部的分类标签筛选不同类型的应用。
|
||||
|
||||

|
||||
|
||||
列表中显示以下信息:
|
||||
|
||||
- **应用名称**:软件名称
|
||||
- **描述**:软件的简要说明
|
||||
- **已安装版本**:当前安装的版本号(未安装则为空)
|
||||
- **在主页显示**:是否在面板首页的快捷应用中显示
|
||||
- **操作**:安装、管理或卸载
|
||||
|
||||
## 安装应用
|
||||
|
||||
点击应用右侧的 **安装** 按钮,会弹出安装对话框:
|
||||
|
||||

|
||||
|
||||
### 选择渠道
|
||||
|
||||
部分应用提供多个版本渠道,点击下拉框选择需要的版本系列:
|
||||
|
||||

|
||||
|
||||
### 选择版本
|
||||
|
||||
选择渠道后,系统会自动填入该渠道的最新版本号:
|
||||
|
||||

|
||||
|
||||
点击 **安装** 按钮开始安装。安装过程中可以在 **任务** 页面查看详细日志。
|
||||
|
||||
## 管理应用
|
||||
|
||||
已安装的应用会显示 **管理** 按钮,点击进入应用管理页面。
|
||||
|
||||
### 运行状态
|
||||
|
||||
管理页面首先显示应用的运行状态:
|
||||
|
||||

|
||||
|
||||
提供以下操作:
|
||||
|
||||
- **启动**:启动已停止的服务
|
||||
- **停止**:停止正在运行的服务
|
||||
- **重启**:重启服务(会中断连接)
|
||||
- **重载**:重新加载配置(不中断连接,推荐)
|
||||
|
||||
### 修改配置
|
||||
|
||||
点击 **修改配置** 标签,可以直接编辑应用的配置文件:
|
||||
|
||||

|
||||
|
||||
::: warning 注意
|
||||
修改配置文件前请确保了解每个参数的含义,错误的配置可能导致服务无法启动。
|
||||
:::
|
||||
|
||||
### 日志查看
|
||||
|
||||
点击 **运行日志** 或 **错误日志** 标签,可以查看应用的日志,便于排查问题。
|
||||
|
||||
## 卸载应用
|
||||
|
||||
点击 **卸载** 按钮可以卸载应用。卸载前请确保:
|
||||
|
||||
1. 没有网站或项目依赖该应用
|
||||
2. 已备份重要的配置文件和数据
|
||||
|
||||
::: danger 警告
|
||||
卸载数据库类应用(如 MySQL、PostgreSQL)会删除所有数据库数据,请务必提前备份!
|
||||
:::
|
||||
|
||||
## 主页快捷方式
|
||||
|
||||
开启 **在主页显示** 开关后,该应用会出现在面板首页的快捷应用区域,方便快速访问管理页面。
|
||||
99
en/advanced/app/template.md
Normal file
@@ -0,0 +1,99 @@
|
||||
# 容器模板
|
||||
|
||||
容器模板提供了基于 Docker 的一键部署方案,可以快速部署各类常用应用,无需手动配置。
|
||||
|
||||
## 前置要求
|
||||
|
||||
使用容器模板前,需要先安装 Docker:
|
||||
|
||||
1. 进入 **应用** > **原生应用**
|
||||
2. 找到 Docker,点击 **安装**
|
||||
3. 等待安装完成
|
||||
|
||||
## 模板列表
|
||||
|
||||
进入 **应用** 页面,点击 **容器模板** 标签查看可用模板:
|
||||
|
||||

|
||||
|
||||
## 部署应用
|
||||
|
||||
点击模板卡片上的 **部署** 按钮,会启动部署向导。
|
||||
|
||||
### 第一步:选择部署模式
|
||||
|
||||

|
||||
|
||||
- **创建新编排**:从模板创建一个新的 Docker Compose 编排
|
||||
- **更新现有编排**:使用模板更新已有的编排配置
|
||||
|
||||
### 第二步:配置参数
|
||||
|
||||
根据应用需求填写配置信息:
|
||||
|
||||

|
||||
|
||||
常见配置项:
|
||||
|
||||
- **编排名称**:用于标识这个部署
|
||||
- **自动启动**:是否在创建后自动启动容器
|
||||
- **自动防火墙**:是否自动放行端口
|
||||
- **数据库配置**:用户名、密码、地址等
|
||||
- **端口配置**:服务监听的端口
|
||||
|
||||
### 第三步:预览与编辑
|
||||
|
||||
预览生成的 Docker Compose 配置文件:
|
||||
|
||||

|
||||
|
||||
你可以在这里:
|
||||
|
||||
- 查看和编辑 **编排文件**(docker-compose.yml)
|
||||
- 查看和编辑 **环境变量**
|
||||
|
||||
### 第四步:确认部署
|
||||
|
||||
确认所有配置无误后,点击 **创建** 完成部署:
|
||||
|
||||

|
||||
|
||||
部署完成后,应用会出现在 **容器** > **编排** 页面中进行管理。
|
||||
|
||||
## 模板 vs 手动部署
|
||||
|
||||
| 特性 | 使用模板 | 手动部署 |
|
||||
|------|----------|----------|
|
||||
| 配置难度 | 简单,填写基本信息即可 | 需要编写 docker-compose.yml |
|
||||
| 灵活性 | 使用预设配置 | 完全自定义 |
|
||||
| 适用场景 | 快速部署常用应用 | 特殊需求、自定义配置 |
|
||||
|
||||
## 常用模板说明
|
||||
|
||||
### WordPress
|
||||
|
||||
开源博客和内容管理系统,适合搭建个人博客或企业网站。
|
||||
|
||||
### pgAdmin 4
|
||||
|
||||
PostgreSQL 数据库的图形化管理工具。
|
||||
|
||||
### phpMyAdmin
|
||||
|
||||
MySQL/MariaDB 数据库的图形化管理工具。
|
||||
|
||||
### Vaultwarden
|
||||
|
||||
轻量级密码管理服务器,兼容 Bitwarden 客户端。
|
||||
|
||||
### 青龙
|
||||
|
||||
定时任务管理平台,支持 Python、JavaScript、Shell 等脚本。
|
||||
|
||||
### OpenList
|
||||
|
||||
多存储聚合的文件列表程序,支持阿里云盘、OneDrive 等。
|
||||
|
||||
## 更新缓存
|
||||
|
||||
如果模板列表显示不完整或需要获取最新模板,点击页面顶部的 **更新缓存** 按钮刷新模板列表。
|
||||
228
en/advanced/backup.md
Normal file
@@ -0,0 +1,228 @@
|
||||
# 备份
|
||||
|
||||
备份模块用于备份和恢复网站文件和数据库,支持本地备份和远程存储。
|
||||
|
||||
## 备份页面
|
||||
|
||||

|
||||
|
||||
## 备份类型
|
||||
|
||||
备份模块支持以下类型的备份:
|
||||
|
||||
| 类型 | 说明 |
|
||||
|------|------------------------------|
|
||||
| 网站 | 备份网站文件 |
|
||||
| MySQL | 备份 Percona/MySQL/MariaDB 数据库 |
|
||||
| PostgreSQL | 备份 PostgreSQL 数据库 |
|
||||
|
||||
## 创建备份
|
||||
|
||||
1. 选择备份类型标签(网站/MySQL/PostgreSQL)
|
||||
2. 点击 **创建备份**
|
||||
3. 选择要备份的网站或数据库
|
||||
4. 选择存储位置
|
||||
5. 点击确认
|
||||
|
||||
备份文件格式:
|
||||
- 网站:`.zip` 压缩包
|
||||
- 数据库:`.sql.zip` 压缩的 SQL 文件
|
||||
|
||||
## 备份列表
|
||||
|
||||
备份列表显示以下信息:
|
||||
|
||||
- **文件名**:备份文件名称
|
||||
- **大小**:备份文件大小
|
||||
- **更新日期**:备份时间
|
||||
- **操作**:下载、恢复、删除
|
||||
|
||||
## 恢复备份
|
||||
|
||||
1. 在备份列表中找到要恢复的备份
|
||||
2. 点击 **恢复** 按钮
|
||||
3. 确认恢复操作
|
||||
|
||||
::: danger 警告
|
||||
恢复操作会覆盖现有数据,请确保已备份当前数据!
|
||||
:::
|
||||
|
||||
## 上传备份
|
||||
|
||||
点击 **上传备份** 按钮可以上传本地的备份文件,用于恢复数据。
|
||||
|
||||
## 存储管理
|
||||
|
||||
切换到 **存储** 标签页管理备份存储位置。
|
||||
|
||||

|
||||
|
||||
### 本地存储
|
||||
|
||||
默认的存储位置,备份文件保存在服务器本地。
|
||||
|
||||
### 远程存储
|
||||
|
||||
点击 **添加存储** 可以添加远程存储,支持:
|
||||
|
||||
- **S3 兼容存储**:AWS S3、阿里云 OSS、腾讯云 COS 等
|
||||
- **FTP/SFTP**:FTP 或 SFTP 服务器
|
||||
- **WebDAV**:WebDAV 服务器
|
||||
|
||||
远程存储的优势:
|
||||
- 异地备份,防止数据丢失
|
||||
- 不占用服务器磁盘空间
|
||||
- 便于多服务器共享备份
|
||||
|
||||
### S3 兼容存储配置
|
||||
|
||||
S3 兼容存储是最常用的远程存储方式,大多数云存储服务商都提供 S3 兼容接口。
|
||||
|
||||
#### 配置参数
|
||||
|
||||
| 参数 | 说明 |
|
||||
|------|------|
|
||||
| 名称 | 存储配置的名称,便于识别 |
|
||||
| 类型 | 选择 S3 |
|
||||
| Access Key | 访问密钥 ID |
|
||||
| Secret Key | 访问密钥密码 |
|
||||
| 风格 | Virtual Hosted 或 Path Style |
|
||||
| 区域 | 区域代码,如 `us-east-1`、`cn-hangzhou` |
|
||||
| 端点 | S3 服务端点 URL |
|
||||
| 协议 | HTTPS(推荐)或 HTTP |
|
||||
| 存储桶 | 存储桶名称 |
|
||||
| 路径 | 备份文件存储的子路径(可选) |
|
||||
|
||||
#### 访问风格说明
|
||||
|
||||
S3 有两种 URL 访问风格:
|
||||
|
||||
- **Virtual Hosted Style**:`https://bucket.endpoint/key`
|
||||
- 桶名作为子域名
|
||||
- AWS S3 默认使用此风格
|
||||
|
||||
- **Path Style**:`https://endpoint/bucket/key`
|
||||
- 桶名作为路径的一部分
|
||||
- 自建 MinIO 等通常使用此风格
|
||||
|
||||
#### 兼容性列表
|
||||
|
||||
| 服务商 | 文档 | 兼容访问风格 | 兼容性 |
|
||||
|--------|------|-------------|--------|
|
||||
| 阿里云 OSS | [文档](https://help.aliyun.com/document_detail/410748.html) | Virtual Hosted Style | ✅ |
|
||||
| 腾讯云 COS | [文档](https://cloud.tencent.com/document/product/436/41284) | Virtual Hosted Style / Path Style | ✅ |
|
||||
| 七牛云 | [文档](https://developer.qiniu.com/kodo/4088/s3-access-domainname) | Virtual Hosted Style / Path Style | ✅ |
|
||||
| 百度云 BOS | [文档](https://cloud.baidu.com/doc/BOS/s/Fjwvyq9xo) | Virtual Hosted Style / Path Style | ✅ |
|
||||
| 京东云 | [文档](https://docs.jdcloud.com/cn/object-storage-service/api/regions-and-endpoints) | Virtual Hosted Style | ✅ |
|
||||
| 金山云 | [文档](https://docs.ksyun.com/documents/6761) | Virtual Hosted Style | ✅ |
|
||||
| 青云 QingStor | [文档](https://docsv3.qingcloud.com/storage/object-storage/s3/intro/) | Virtual Hosted Style / Path Style | ✅ |
|
||||
| 网易数帆 | [文档](https://sf.163.com/help/documents/89796157866430464) | Virtual Hosted Style | ✅ |
|
||||
| Cloudflare R2 | [文档](https://developers.cloudflare.com/r2/data-access/s3-api/) | Virtual Hosted Style / Path Style | ✅ |
|
||||
| Oracle Cloud | [文档](https://docs.oracle.com/en-us/iaas/Content/Object/Tasks/s3compatibleapi.htm) | Virtual Hosted Style / Path Style | ✅ |
|
||||
| 又拍云 | [文档](https://help.upyun.com/knowledge-base/aws-s3%E5%85%BC%E5%AE%B9/) | Virtual Hosted Style / Path Style | ✅ |
|
||||
| 自建 MinIO | - | Path Style | ✅ |
|
||||
| 华为云 OBS | - | Virtual Hosted Style | ❓ |
|
||||
|
||||
::: tip 提示
|
||||
华为云官方文档未说明是否兼容 S3 API,但实际测试可以使用。
|
||||
:::
|
||||
|
||||
#### 配置示例
|
||||
|
||||
**阿里云 OSS**
|
||||
|
||||
```
|
||||
名称: aliyun-oss
|
||||
类型: S3
|
||||
Access Key: 你的 AccessKey ID
|
||||
Secret Key: 你的 AccessKey Secret
|
||||
风格: Virtual Hosted
|
||||
区域: cn-hangzhou
|
||||
端点: oss-cn-hangzhou.aliyuncs.com
|
||||
协议: HTTPS
|
||||
存储桶: your-bucket-name
|
||||
路径: backup(可选)
|
||||
```
|
||||
|
||||
**腾讯云 COS**
|
||||
|
||||
```
|
||||
名称: tencent-cos
|
||||
类型: S3
|
||||
Access Key: 你的 SecretId
|
||||
Secret Key: 你的 SecretKey
|
||||
风格: Virtual Hosted
|
||||
区域: ap-guangzhou
|
||||
端点: cos.ap-guangzhou.myqcloud.com
|
||||
协议: HTTPS
|
||||
存储桶: your-bucket-name
|
||||
路径: backup(可选)
|
||||
```
|
||||
|
||||
**Cloudflare R2**
|
||||
|
||||
```
|
||||
名称: cloudflare-r2
|
||||
类型: S3
|
||||
Access Key: 你的 Access Key ID
|
||||
Secret Key: 你的 Secret Access Key
|
||||
风格: Path Style
|
||||
区域: auto
|
||||
端点: <account-id>.r2.cloudflarestorage.com
|
||||
协议: HTTPS
|
||||
存储桶: your-bucket-name
|
||||
路径: backup(可选)
|
||||
```
|
||||
|
||||
**自建 MinIO**
|
||||
|
||||
```
|
||||
名称: minio
|
||||
类型: S3
|
||||
Access Key: minioadmin
|
||||
Secret Key: minioadmin
|
||||
风格: Path Style
|
||||
区域: us-east-1
|
||||
端点: minio.example.com:9000
|
||||
协议: HTTP 或 HTTPS
|
||||
存储桶: backup
|
||||
路径:(可选)
|
||||
```
|
||||
|
||||
::: warning 注意
|
||||
- 请确保存储桶已创建且有正确的访问权限
|
||||
- 建议为备份创建专用的访问密钥,并限制权限范围
|
||||
- 部分服务商的 Endpoint 需要包含区域信息
|
||||
:::
|
||||
|
||||
## 定时备份
|
||||
|
||||
结合 [计划任务](./task/schedule) 功能,可以设置定时自动备份:
|
||||
|
||||
1. 进入 **任务** > **计划任务**
|
||||
2. 创建新任务
|
||||
3. 选择备份类型
|
||||
4. 设置执行周期
|
||||
5. 选择存储位置
|
||||
|
||||
## 备份策略建议
|
||||
|
||||
### 备份频率
|
||||
|
||||
| 数据类型 | 建议频率 |
|
||||
|----------|----------|
|
||||
| 数据库 | 每天 |
|
||||
| 网站文件 | 每周 |
|
||||
| 配置文件 | 修改后立即备份 |
|
||||
|
||||
### 保留策略
|
||||
|
||||
- 保留最近 7 天的每日备份
|
||||
- 保留最近 4 周的每周备份
|
||||
- 保留最近 3 个月的每月备份
|
||||
|
||||
### 存储位置
|
||||
|
||||
- 至少保留一份本地备份
|
||||
- 重要数据应同时备份到远程存储
|
||||
- 定期验证备份文件的完整性
|
||||
78
en/advanced/cert.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# 证书
|
||||
|
||||
证书模块用于管理 SSL/TLS 证书,支持通过 ACME 协议自动申请免费证书,也支持上传自有证书。
|
||||
|
||||
## 功能概览
|
||||
|
||||
证书模块分为三个部分:
|
||||
|
||||
| 功能 | 说明 |
|
||||
|------|------|
|
||||
| [证书](./cert/cert) | 管理 SSL 证书 |
|
||||
| [账户](./cert/account) | 管理 ACME 账户 |
|
||||
| [DNS](./cert/dns) | 管理 DNS API 配置 |
|
||||
|
||||

|
||||
|
||||
## 证书类型
|
||||
|
||||
### 免费证书
|
||||
|
||||
通过 ACME 协议从 Let's Encrypt 等 CA 自动申请免费证书:
|
||||
|
||||
- **Let's Encrypt**:最流行的免费证书颁发机构
|
||||
- **LiteSSL**:TrustAsia 提供的免费证书服务
|
||||
- **Google**:谷歌的免费证书服务
|
||||
- **GoogleCN**:AcePanel 提供的谷歌证书服务镜像
|
||||
- **ZeroSSL**:另一个免费证书选项
|
||||
- **Buypass**:挪威的免费证书服务
|
||||
|
||||
免费证书有效期通常为 90 天,AcePanel 支持自动续签。
|
||||
|
||||
### 付费证书
|
||||
|
||||
从商业 CA 购买的证书,通常有效期为 1 年或更长:
|
||||
|
||||
- 更长的有效期
|
||||
- 更高的信任度
|
||||
- 提供保险和技术支持
|
||||
|
||||
如有证书购买需求,可通过本页顶部的「证书」链接联系我们。
|
||||
|
||||
## 验证方式
|
||||
|
||||
申请证书时需要验证域名所有权,支持以下方式:
|
||||
|
||||
### HTTP 验证
|
||||
|
||||
在网站根目录放置验证文件,CA 通过 HTTP 访问验证。
|
||||
|
||||
要求:
|
||||
- 域名已解析到服务器
|
||||
- 80 端口可访问
|
||||
|
||||
### DNS 验证
|
||||
|
||||
在域名 DNS 中添加 TXT 记录验证。
|
||||
|
||||
要求:
|
||||
- 有域名 DNS 管理权限
|
||||
- 配置 DNS API(用于自动验证)
|
||||
|
||||
DNS 验证的优势:
|
||||
- 支持申请泛域名证书(*.example.com)
|
||||
- 不需要 80 端口可访问
|
||||
- 适合内网服务器
|
||||
|
||||
## 快速开始
|
||||
|
||||
1. 创建 ACME 账户(首次使用)
|
||||
2. 如需 DNS 验证,配置 DNS API
|
||||
3. 创建证书,选择验证方式
|
||||
4. 将证书应用到网站
|
||||
|
||||
## 下一步
|
||||
|
||||
- [证书管理](./cert/cert) - 了解如何申请和管理证书
|
||||
- [账户管理](./cert/account) - 了解如何管理 ACME 账户
|
||||
- [DNS 配置](./cert/dns) - 了解如何配置 DNS API
|
||||
84
en/advanced/cert/account.md
Normal file
@@ -0,0 +1,84 @@
|
||||
# 账户管理
|
||||
|
||||
账户管理页面用于管理 ACME 账户,ACME 账户用于向证书颁发机构申请证书。
|
||||
|
||||
## 账户列表
|
||||
|
||||
进入 **证书** > **账户** 标签页查看账户列表。
|
||||
|
||||

|
||||
|
||||
列表显示以下信息:
|
||||
|
||||
- **邮箱**:账户邮箱
|
||||
- **CA**:证书颁发机构
|
||||
- **密钥类型**:账户密钥类型
|
||||
- **操作**:修改、删除
|
||||
|
||||
## 创建账户
|
||||
|
||||
1. 点击 **创建账户** 按钮
|
||||
2. 填写配置:
|
||||
- **邮箱**:用于接收证书相关通知
|
||||
- **CA**:选择证书颁发机构
|
||||
- **密钥类型**:选择密钥算法
|
||||
- **KID**:可选,部分 CA 需要提供 KID
|
||||
- **HMAC**:可选,部分 CA 需要提供 HMAC 密钥
|
||||
3. 点击创建
|
||||
|
||||
### 证书颁发机构(CA)
|
||||
|
||||
| CA | 说明 |
|
||||
|---------------|----------------------|
|
||||
| Let's Encrypt | 最流行的免费 CA,证书有效期 90 天 |
|
||||
| LiteSSL | TrustAsia 提供的免费证书服务 |
|
||||
| Google | 谷歌的免费证书服务 |
|
||||
| GoogleCN | AcePanel 提供的谷歌证书服务镜像 |
|
||||
| ZeroSSL | 免费 CA,证书有效期 90 天 |
|
||||
| Buypass | 挪威免费 CA,证书有效期 180 天 |
|
||||
|
||||
### 密钥类型
|
||||
|
||||
| 类型 | 说明 |
|
||||
|------|------|
|
||||
| P256 (ECC) | 推荐,密钥更短,性能更好 |
|
||||
| P384 (ECC) | 更高安全性的 ECC 密钥 |
|
||||
| RSA 2048 | 传统 RSA 密钥,兼容性最好 |
|
||||
| RSA 4096 | 更高安全性的 RSA 密钥 |
|
||||
|
||||
::: tip 推荐
|
||||
一般情况下推荐使用 P256 (ECC) 密钥,兼顾安全性和性能。
|
||||
:::
|
||||
|
||||
## 修改账户
|
||||
|
||||
点击账户右侧的 **修改** 按钮可以修改账户邮箱。
|
||||
|
||||
::: warning 注意
|
||||
修改邮箱后,证书相关通知将发送到新邮箱。
|
||||
:::
|
||||
|
||||
## 删除账户
|
||||
|
||||
点击账户右侧的 **删除** 按钮删除账户。
|
||||
|
||||
::: warning 注意
|
||||
删除账户后,使用该账户申请的证书将无法续签。请先将证书迁移到其他账户或删除相关证书。
|
||||
:::
|
||||
|
||||
## 账户用途
|
||||
|
||||
ACME 账户用于:
|
||||
|
||||
1. 向 CA 证明你的身份
|
||||
2. 接收证书到期提醒
|
||||
3. 管理已申请的证书
|
||||
4. 撤销证书
|
||||
|
||||
## 多账户
|
||||
|
||||
你可以创建多个账户:
|
||||
|
||||
- 不同 CA 需要不同账户
|
||||
- 可以为不同项目使用不同账户
|
||||
- 便于管理和区分证书
|
||||
101
en/advanced/cert/cert.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# 证书管理
|
||||
|
||||
证书管理页面用于申请、上传和管理 SSL/TLS 证书。
|
||||
|
||||
## 证书列表
|
||||
|
||||
进入 **证书** 页面,默认显示证书列表。
|
||||
|
||||

|
||||
|
||||
列表显示以下信息:
|
||||
|
||||
- **域名**:证书包含的域名
|
||||
- **类型**:证书类型(ACME/上传)
|
||||
- **关联账户**:使用的 ACME 账户
|
||||
- **颁发者**:证书颁发机构
|
||||
- **过期时间**:证书到期时间
|
||||
- **下次续签时间**:自动续签时间
|
||||
- **自动续签**:是否启用自动续签
|
||||
- **操作**:续签、下载、删除等
|
||||
|
||||
## 创建证书
|
||||
|
||||
点击 **创建证书** 按钮申请新证书。
|
||||
|
||||
### 配置项
|
||||
|
||||
- **域名**:要申请证书的域名,支持多个域名
|
||||
- **密钥类型**:RSA 或 ECC
|
||||
- **网站**:该证书关联的网站
|
||||
- **账户**:该证书关联的 ACME 账户
|
||||
- **DNS**:该证书关联的 DNS API
|
||||
|
||||
### 域名格式
|
||||
|
||||
```
|
||||
example.com # 单个域名
|
||||
www.example.com # 子域名
|
||||
*.example.com # 泛域名(需要 DNS 验证)
|
||||
```
|
||||
|
||||
::: tip 提示
|
||||
泛域名证书(*.example.com)只能通过 DNS 验证方式申请。
|
||||
:::
|
||||
|
||||
## 上传证书
|
||||
|
||||
点击 **上传证书** 按钮上传已有证书。
|
||||
|
||||
需要提供:
|
||||
- **证书文件**:PEM 格式的证书(.crt 或 .pem),请包含完整证书链
|
||||
- **私钥文件**:PEM 格式的私钥(.key)
|
||||
|
||||
## 应用证书
|
||||
|
||||
申请或上传证书后,需要在网站设置中启用 HTTPS 并选择证书。
|
||||
|
||||
1. 进入网站编辑页面
|
||||
2. 切换到 **HTTPS** 标签
|
||||
3. 启用 HTTPS
|
||||
4. 选择证书
|
||||
5. 保存配置
|
||||
|
||||
## 自动续签
|
||||
|
||||
ACME 证书支持自动续签:
|
||||
|
||||
- 证书签发后通过 ARI 获取建议的续签时间
|
||||
- 系统会在续签时间前自动尝试续签
|
||||
- 续签成功后自动更新网站配置
|
||||
- 续签失败会发送通知
|
||||
|
||||
## 证书操作
|
||||
|
||||
### 手动续签
|
||||
|
||||
点击 **续签** 按钮手动触发证书续签。
|
||||
|
||||
### 下载证书
|
||||
|
||||
点击 **下载** 按钮下载证书文件,包含:
|
||||
- 完整证书链(.crt)
|
||||
- 私钥文件(.key)
|
||||
|
||||
### 删除证书
|
||||
|
||||
点击 **删除** 按钮删除证书。
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 申请失败
|
||||
|
||||
- 检查域名是否正确解析到服务器
|
||||
- 检查 80 端口是否可访问(HTTP 验证)
|
||||
- 检查 DNS API 配置是否正确(DNS 验证)
|
||||
|
||||
### 续签失败
|
||||
|
||||
- 检查域名解析是否变更
|
||||
- 检查 DNS API 是否过期
|
||||
- 查看面板日志了解详细错误
|
||||
99
en/advanced/cert/dns.md
Normal file
@@ -0,0 +1,99 @@
|
||||
# DNS 配置
|
||||
|
||||
DNS 配置页面用于管理 DNS API,用于通过 DNS 验证方式申请证书。
|
||||
|
||||
## DNS 列表
|
||||
|
||||
进入 **证书** > **DNS** 标签页查看 DNS 配置列表。
|
||||
|
||||

|
||||
|
||||
列表显示以下信息:
|
||||
|
||||
- **备注名称**:配置名称
|
||||
- **类型**:DNS 提供商类型
|
||||
- **操作**:修改、删除
|
||||
|
||||
## 创建 DNS 配置
|
||||
|
||||
1. 点击 **创建 DNS** 按钮
|
||||
2. 选择 DNS 提供商
|
||||
3. 填写 API 凭证
|
||||
4. 点击创建
|
||||
|
||||
## 支持的 DNS 提供商
|
||||
|
||||
### 国内提供商
|
||||
|
||||
| 提供商 | 所需凭证 |
|
||||
|--------|----------|
|
||||
| 阿里云 DNS | AccessKey ID、AccessKey Secret |
|
||||
| 腾讯云 DNSPod | SecretId、SecretKey |
|
||||
| 华为云 DNS | AccessKeyId、SecretAccessKey |
|
||||
| 西部数码 DNS | Username、API Password |
|
||||
|
||||
### 国际提供商
|
||||
|
||||
| 提供商 | 所需凭证 |
|
||||
|--------|--------------------|
|
||||
| Cloudflare | API Token |
|
||||
| Gcore DNS | API Key |
|
||||
| Porkbun | API Key、Secret Key |
|
||||
| NameSilo | API Token |
|
||||
| ClouDNS | Auth ID、Auth Password |
|
||||
|
||||
## 获取 API 凭证
|
||||
|
||||
### 阿里云
|
||||
|
||||
1. 登录阿里云控制台
|
||||
2. 进入 **AccessKey 管理**
|
||||
3. 创建 AccessKey
|
||||
4. 记录 AccessKey ID 和 AccessKey Secret
|
||||
|
||||
::: warning 安全提示
|
||||
建议创建子账号并只授予 DNS 管理权限,避免使用主账号 AccessKey。
|
||||
:::
|
||||
|
||||
### 腾讯云
|
||||
|
||||
1. 登录腾讯云控制台
|
||||
2. 进入 **访问管理** > **API 密钥管理**
|
||||
3. 创建密钥
|
||||
4. 记录 SecretId 和 SecretKey
|
||||
|
||||
### Cloudflare
|
||||
|
||||
1. 登录 Cloudflare 控制台
|
||||
2. 进入 **My Profile** > **API Tokens**
|
||||
3. 创建 Token,选择 **Edit zone DNS** 模板
|
||||
4. 记录生成的 Token
|
||||
|
||||
## DNS 验证原理
|
||||
|
||||
1. 申请证书时,CA 要求在域名 DNS 中添加特定的 TXT 记录
|
||||
2. AcePanel 通过 DNS API 自动添加验证记录
|
||||
3. CA 验证 TXT 记录存在
|
||||
4. 验证通过后颁发证书
|
||||
5. AcePanel 自动删除验证记录
|
||||
|
||||
## 使用场景
|
||||
|
||||
DNS 验证适用于:
|
||||
|
||||
- 申请泛域名证书(*.example.com)
|
||||
- 服务器 80 端口不可访问
|
||||
- 内网服务器
|
||||
- CDN 后的源站
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 验证失败
|
||||
|
||||
- 检查 API 凭证是否正确
|
||||
- 检查 API 权限是否足够
|
||||
- 检查域名是否在该 DNS 提供商管理
|
||||
|
||||
### DNS 传播延迟
|
||||
|
||||
DNS 记录添加后需要一定时间传播,通常几分钟到几小时不等。如果验证失败,可以稍后重试。
|
||||
56
en/advanced/container.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# 容器
|
||||
|
||||
容器模块提供了完整的 Docker 容器管理功能,包括容器、编排、镜像、网络和卷的管理。
|
||||
|
||||
## 前置要求
|
||||
|
||||
使用容器功能前,需要先安装 Docker:
|
||||
|
||||
1. 进入 **应用** > **原生应用**
|
||||
2. 找到 Docker,点击 **安装**
|
||||
|
||||
## 功能概览
|
||||
|
||||
容器模块分为五个部分:
|
||||
|
||||
| 功能 | 说明 |
|
||||
|------|------|
|
||||
| [容器](./container/container) | 管理运行中的容器实例 |
|
||||
| [编排](./container/compose) | 使用 Docker Compose 管理多容器应用 |
|
||||
| [镜像](./container/image) | 管理本地镜像 |
|
||||
| [网络](./container/network) | 管理 Docker 网络 |
|
||||
| [卷](./container/volume) | 管理数据卷 |
|
||||
|
||||

|
||||
|
||||
## 快速开始
|
||||
|
||||
### 创建容器
|
||||
|
||||
1. 进入 **容器** 页面
|
||||
2. 点击 **创建容器**
|
||||
3. 填写镜像名称(如 `nginx:latest`)
|
||||
4. 配置端口映射、卷挂载等
|
||||
5. 点击 **创建**
|
||||
|
||||
### 使用容器模板
|
||||
|
||||
如果你想快速部署常用应用,推荐使用 [容器模板](./app/template),无需手动配置即可一键部署。
|
||||
|
||||
## 容器 vs 原生应用
|
||||
|
||||
| 特性 | 容器 | 原生应用 |
|
||||
|------|------|----------|
|
||||
| 隔离性 | 完全隔离 | 共享系统环境 |
|
||||
| 性能 | 略有损耗 | 原生性能 |
|
||||
| 部署 | 标准化、可移植 | 依赖系统环境 |
|
||||
| 资源占用 | 较高 | 较低 |
|
||||
| 版本管理 | 方便切换 | 需要手动管理 |
|
||||
|
||||
## 下一步
|
||||
|
||||
- [容器管理](./container/container) - 了解如何管理容器
|
||||
- [编排管理](./container/compose) - 了解如何使用 Docker Compose
|
||||
- [镜像管理](./container/image) - 了解如何管理镜像
|
||||
- [网络管理](./container/network) - 了解如何管理网络
|
||||
- [卷管理](./container/volume) - 了解如何管理数据卷
|
||||
108
en/advanced/container/compose.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# 编排
|
||||
|
||||
编排功能基于 Docker Compose,用于定义和运行多容器应用。通过一个 YAML 文件描述应用的服务、网络和卷,然后一键启动整个应用。
|
||||
|
||||
## 编排列表
|
||||
|
||||
进入 **容器** > **编排** 标签页查看编排列表。
|
||||
|
||||

|
||||
|
||||
列表显示以下信息:
|
||||
|
||||
- **名称**:编排项目名称
|
||||
- **目录**:docker-compose.yml 文件所在目录
|
||||
- **状态**:运行状态
|
||||
- **创建时间**:创建时间
|
||||
- **操作**:启动、停止、编辑等
|
||||
|
||||
## 创建编排
|
||||
|
||||
1. 点击 **创建编排** 按钮
|
||||
2. 输入编排名称
|
||||
3. 编写或粘贴 docker-compose.yml 内容
|
||||
4. 配置环境变量(可选)
|
||||
5. 点击创建
|
||||
|
||||

|
||||
|
||||
### docker-compose.yml 示例
|
||||
|
||||
```yaml
|
||||
version: '3'
|
||||
services:
|
||||
web:
|
||||
image: nginx:latest
|
||||
ports:
|
||||
- "80:80"
|
||||
volumes:
|
||||
- ./html:/usr/share/nginx/html
|
||||
depends_on:
|
||||
- app
|
||||
app:
|
||||
image: php:8.4-fpm
|
||||
volumes:
|
||||
- ./html:/var/www/html
|
||||
db:
|
||||
image: mysql:8.4
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: your_password
|
||||
MYSQL_DATABASE: myapp
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
volumes:
|
||||
db_data:
|
||||
```
|
||||
|
||||
## 编排操作
|
||||
|
||||
### 启动编排
|
||||
|
||||
点击 **启动** 按钮会弹出确认对话框:
|
||||
|
||||

|
||||
|
||||
- **强制拉取镜像**:勾选后会在启动前拉取最新镜像
|
||||
|
||||
点击确认后,会显示启动进度:
|
||||
|
||||

|
||||
|
||||
启动编排会创建并启动所有定义的服务容器。
|
||||
|
||||
### 停止编排
|
||||
|
||||
停止编排会停止所有相关容器,但不会删除容器和数据。
|
||||
|
||||
### 删除编排
|
||||
|
||||
删除编排会停止并删除所有相关容器。
|
||||
|
||||
::: warning 注意
|
||||
删除编排不会删除数据卷,如需删除数据卷请在 **卷** 页面手动删除。
|
||||
:::
|
||||
|
||||
### 编辑编排
|
||||
|
||||
点击编排列表中的 **编辑** 按钮,可以修改 docker-compose.yml 文件内容和环境变量。
|
||||
|
||||

|
||||
|
||||
修改后需要重新启动编排才能生效。
|
||||
|
||||
## 使用场景
|
||||
|
||||
编排适合以下场景:
|
||||
|
||||
- **多容器应用**:如 Web 应用 + 数据库 + 缓存
|
||||
- **开发环境**:快速搭建一致的开发环境
|
||||
- **微服务架构**:管理多个相互依赖的服务
|
||||
|
||||
## 与容器模板的区别
|
||||
|
||||
| 特性 | 编排 | 容器模板 |
|
||||
|------|------|----------|
|
||||
| 配置方式 | 手写 YAML | 图形界面 |
|
||||
| 灵活性 | 完全自定义 | 使用预设配置+自定义 |
|
||||
| 适用场景 | 自定义复杂应用 | 快速部署常用应用 |
|
||||
| 学习成本 | 需要了解 Compose 语法 | 无需学习 |
|
||||
93
en/advanced/container/container.md
Normal file
@@ -0,0 +1,93 @@
|
||||
# 容器管理
|
||||
|
||||
容器是 Docker 的核心概念,是镜像的运行实例。通过容器管理页面,你可以创建、启动、停止和管理容器。
|
||||
|
||||
## 容器列表
|
||||
|
||||
进入 **容器** 页面,默认显示容器列表。
|
||||
|
||||

|
||||
|
||||
列表显示以下信息:
|
||||
|
||||
- **容器名称**:容器的名称
|
||||
- **状态**:运行状态开关
|
||||
- **镜像**:容器使用的镜像
|
||||
- **端口**:端口映射(主机端口 -> 容器端口)
|
||||
- **运行状态**:详细的运行状态信息
|
||||
- **操作**:终端、日志、重命名等
|
||||
|
||||
## 创建容器
|
||||
|
||||
点击 **创建容器** 按钮打开创建对话框。
|
||||
|
||||

|
||||
|
||||
### 基本设置
|
||||
|
||||
- **容器名称**:可选,留空则自动生成
|
||||
- **镜像**:Docker 镜像名称,如 `nginx:latest`、`mysql:8.0`
|
||||
- **网络**:选择容器使用的网络
|
||||
- **重启策略**:容器退出后的重启行为
|
||||
- 无:不自动重启
|
||||
- always:总是重启
|
||||
- on-failure:失败时重启
|
||||
- unless-stopped:除非手动停止,否则重启
|
||||
|
||||
### 高级选项
|
||||
|
||||
- **TTY (-t)**:分配伪终端
|
||||
- **STDIN (-i)**:保持标准输入打开
|
||||
- **自动移除**:容器停止后自动删除
|
||||
- **特权模式**:赋予容器完整的系统权限(谨慎使用)
|
||||
|
||||
### 端口映射
|
||||
|
||||
将容器内部端口映射到主机端口,格式:`主机端口:容器端口`
|
||||
|
||||

|
||||
|
||||
例如:`8080:80` 表示将容器的 80 端口映射到主机的 8080 端口。
|
||||
|
||||
### 卷挂载
|
||||
|
||||
将主机目录或数据卷挂载到容器内,格式:`主机路径:容器路径`
|
||||
|
||||
例如:`/opt/ace/data:/data` 表示将主机的 `/opt/ace/data` 目录挂载到容器的 `/data` 目录。
|
||||
|
||||
### 资源限制
|
||||
|
||||
限制容器可使用的 CPU 和内存资源。
|
||||
|
||||
### 环境变量
|
||||
|
||||
设置容器的环境变量,格式:`KEY=VALUE`
|
||||
|
||||
## 容器操作
|
||||
|
||||
### 批量操作
|
||||
|
||||
勾选多个容器后,可以进行批量操作:
|
||||
|
||||
- **启动**:启动选中的容器
|
||||
- **停止**:停止选中的容器
|
||||
- **重启**:重启选中的容器
|
||||
- **强制停止**:强制停止选中的容器
|
||||
- **暂停**:暂停选中的容器
|
||||
- **恢复**:恢复暂停的容器
|
||||
- **删除**:删除选中的容器
|
||||
|
||||
### 单个容器操作
|
||||
|
||||
- **终端**:打开容器的终端,可以在容器内执行命令
|
||||
- **日志**:查看容器的运行日志
|
||||
- **重命名**:修改容器名称
|
||||
- **更多**:查看详情、导出等操作
|
||||
|
||||
## 清理容器
|
||||
|
||||
点击 **清理容器** 可以删除所有已停止的容器,释放系统资源。
|
||||
|
||||
::: warning 注意
|
||||
清理操作不可恢复,请确保已停止的容器不再需要。
|
||||
:::
|
||||
76
en/advanced/container/image.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# 镜像
|
||||
|
||||
镜像是容器的模板,包含了运行应用所需的所有文件和配置。通过镜像管理页面,你可以拉取、查看和删除本地镜像。
|
||||
|
||||
## 镜像列表
|
||||
|
||||
进入 **容器** > **镜像** 标签页查看本地镜像列表。
|
||||
|
||||

|
||||
|
||||
列表显示以下信息:
|
||||
|
||||
- **ID**:镜像 ID
|
||||
- **容器数量**:使用该镜像的容器数量
|
||||
- **镜像**:镜像名称和标签
|
||||
- **大小**:镜像占用的磁盘空间
|
||||
- **创建时间**:镜像创建时间
|
||||
- **操作**:删除等
|
||||
|
||||
## 拉取镜像
|
||||
|
||||
1. 点击 **拉取镜像** 按钮
|
||||
2. 输入镜像名称,如 `nginx:latest`、`mysql:8.4`
|
||||
3. 点击确认开始拉取
|
||||
|
||||
镜像名称格式:`[仓库地址/]镜像名[:标签]`
|
||||
|
||||
- `nginx` - 拉取官方 nginx 镜像的 latest 标签
|
||||
- `nginx:1.28` - 拉取指定版本
|
||||
- `mysql:8.4` - 拉取 MySQL 8.4 版本
|
||||
- `registry.cn-hangzhou.aliyuncs.com/xxx/yyy:latest` - 从阿里云镜像仓库拉取
|
||||
|
||||
::: tip 提示
|
||||
国内服务器拉取 Docker Hub 镜像可能较慢,建议配置镜像加速器或使用国内镜像源。
|
||||
:::
|
||||
|
||||
## 删除镜像
|
||||
|
||||
选中镜像后点击 **删除** 按钮删除镜像。
|
||||
|
||||
::: warning 注意
|
||||
如果镜像正在被容器使用,需要先删除相关容器才能删除镜像。
|
||||
:::
|
||||
|
||||
## 清理镜像
|
||||
|
||||
点击 **清理镜像** 可以删除所有未被使用的镜像,释放磁盘空间。
|
||||
|
||||
清理操作会删除:
|
||||
|
||||
- 悬空镜像(dangling images)
|
||||
- 未被任何容器使用的镜像
|
||||
|
||||
## 镜像来源
|
||||
|
||||
### Docker Hub
|
||||
|
||||
Docker 官方镜像仓库,包含大量官方和社区镜像。
|
||||
|
||||
常用官方镜像:
|
||||
- `nginx` - Web 服务器
|
||||
- `mysql` / `mariadb` - 数据库
|
||||
- `redis` - 缓存
|
||||
- `postgres` - PostgreSQL 数据库
|
||||
- `node` - Node.js 运行环境
|
||||
- `python` - Python 运行环境
|
||||
|
||||
### 国内镜像源
|
||||
|
||||
- 阿里云:`registry.cn-hangzhou.aliyuncs.com`
|
||||
- 腾讯云:`ccr.ccs.tencentyun.com`
|
||||
- 华为云:`swr.cn-north-4.myhuaweicloud.com`
|
||||
|
||||
### 私有仓库
|
||||
|
||||
如果你有私有镜像仓库,可以直接使用完整的镜像地址拉取。
|
||||
74
en/advanced/container/network.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# 网络
|
||||
|
||||
Docker 网络用于容器之间的通信。通过网络管理页面,你可以创建、查看和删除网络。
|
||||
|
||||
## 网络列表
|
||||
|
||||
进入 **容器** > **网络** 标签页查看网络列表。
|
||||
|
||||

|
||||
|
||||
列表显示以下信息:
|
||||
|
||||
- **名称**:网络名称
|
||||
- **驱动**:网络驱动类型
|
||||
- **范围**:网络范围
|
||||
- **子网**:网络的子网地址
|
||||
- **网关**:网络的网关地址
|
||||
- **创建时间**:创建时间
|
||||
- **操作**:删除
|
||||
|
||||
## 默认网络
|
||||
|
||||
Docker 安装后会自动创建以下网络:
|
||||
|
||||
| 网络名称 | 驱动 | 说明 |
|
||||
|----------|------|------|
|
||||
| bridge | bridge | 默认网络,容器通过 NAT 访问外部网络 |
|
||||
| host | host | 容器直接使用主机网络,无网络隔离 |
|
||||
| none | null | 无网络,容器完全隔离 |
|
||||
|
||||
AcePanel 还会创建 `acepanel-network` 网络,用于面板编排模版部署的容器,请勿删除。
|
||||
|
||||
## 创建网络
|
||||
|
||||
1. 点击 **创建网络** 按钮
|
||||
2. 输入网络名称
|
||||
3. 选择网络驱动
|
||||
4. 配置子网和网关(可选)
|
||||
5. 点击创建
|
||||
|
||||
### 网络驱动
|
||||
|
||||
- **bridge**:桥接网络,最常用的网络类型。容器通过虚拟网桥连接,可以相互通信。
|
||||
- **host**:主机网络,容器直接使用主机的网络栈,性能最好但无隔离。
|
||||
- **overlay**:覆盖网络,用于跨主机的容器通信(Swarm 模式)。
|
||||
- **macvlan**:MAC VLAN 网络,为容器分配独立的 MAC 地址。
|
||||
|
||||
## 网络使用
|
||||
|
||||
### 创建容器时指定网络
|
||||
|
||||
创建容器时,在 **网络** 选项中选择要使用的网络。
|
||||
|
||||
### 容器间通信
|
||||
|
||||
同一网络中的容器可以通过容器名称相互访问。
|
||||
|
||||
例如,在 `acepanel-network` 网络中:
|
||||
- 容器 A 名称为 `web`
|
||||
- 容器 B 名称为 `db`
|
||||
- 容器 A 可以通过 `db:3306` 访问容器 B 的数据库
|
||||
|
||||
## 删除网络
|
||||
|
||||
选中网络后点击 **删除** 按钮删除网络。
|
||||
|
||||
::: warning 注意
|
||||
- 默认网络(bridge、host、none)和 `acepanel-network` 不能删除
|
||||
- 如果网络中有容器,需要先删除或断开容器才能删除网络
|
||||
:::
|
||||
|
||||
## 清理网络
|
||||
|
||||
点击 **清理网络** 可以删除所有未被使用的自定义网络。
|
||||
76
en/advanced/container/volume.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# 卷
|
||||
|
||||
卷(Volume)是 Docker 管理的数据存储,用于持久化容器数据。与直接挂载主机目录相比,卷由 Docker 管理,更加安全和便携。
|
||||
|
||||
## 卷列表
|
||||
|
||||
进入 **容器** > **卷** 标签页查看卷列表。
|
||||
|
||||

|
||||
|
||||
列表显示以下信息:
|
||||
|
||||
- **名称**:卷名称
|
||||
- **驱动**:存储驱动
|
||||
- **范围**:卷的范围
|
||||
- **挂载点**:卷在主机上的实际存储路径
|
||||
- **创建时间**:创建时间
|
||||
- **操作**:删除
|
||||
|
||||
## 创建卷
|
||||
|
||||
1. 点击 **创建卷** 按钮
|
||||
2. 输入卷名称
|
||||
3. 选择驱动(默认 local)
|
||||
4. 点击创建
|
||||
|
||||
## 使用卷
|
||||
|
||||
### 创建容器时挂载卷
|
||||
|
||||
创建容器时,在 **卷** 选项中添加卷挂载:
|
||||
|
||||
- **卷名称:容器路径** - 使用命名卷
|
||||
- **主机路径:容器路径** - 直接挂载主机目录
|
||||
|
||||
例如:
|
||||
- `mysql_data:/var/lib/mysql` - 将 mysql_data 卷挂载到容器的 /var/lib/mysql
|
||||
- `/opt/ace/data:/data` - 将主机的 /opt/ace/data 目录挂载到容器的 /data
|
||||
|
||||
### 卷 vs 绑定挂载
|
||||
|
||||
| 特性 | 卷(Volume) | 绑定挂载(Bind Mount) |
|
||||
|------|-------------|----------------------|
|
||||
| 管理方式 | Docker 管理 | 用户管理 |
|
||||
| 存储位置 | Docker 数据目录 | 任意主机路径 |
|
||||
| 备份 | 需要通过 Docker 命令 | 直接备份目录 |
|
||||
| 可移植性 | 高 | 依赖主机路径 |
|
||||
| 适用场景 | 数据库等需要持久化的数据 | 配置文件、代码目录 |
|
||||
|
||||
## 删除卷
|
||||
|
||||
选中卷后点击 **删除** 按钮删除卷。
|
||||
|
||||
::: danger 警告
|
||||
删除卷会永久删除卷中的所有数据,此操作不可恢复!
|
||||
:::
|
||||
|
||||
::: warning 注意
|
||||
如果卷正在被容器使用,需要先删除相关容器才能删除卷。
|
||||
:::
|
||||
|
||||
## 清理卷
|
||||
|
||||
点击 **清理卷** 可以删除所有未被使用的卷,释放磁盘空间。
|
||||
|
||||
::: tip 提示
|
||||
清理前请确认未使用的卷中没有重要数据。
|
||||
:::
|
||||
|
||||
## 数据备份
|
||||
|
||||
卷数据存储在 Docker 数据目录中(通常是 `/var/lib/docker/volumes/`),可以通过以下方式备份:
|
||||
|
||||
1. 使用 `docker run` 创建临时容器挂载卷并导出数据
|
||||
2. 直接备份 Docker 数据目录(需要停止 Docker 服务)
|
||||
3. (开发中)使用 AcePanel 的 [备份功能](../backup) 进行备份
|
||||
77
en/advanced/database.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# 数据库
|
||||
|
||||
数据库模块用于管理 MySQL、MariaDB、PostgreSQL 等数据库。支持创建数据库、管理用户和配置数据库服务器。
|
||||
|
||||
## 前置要求
|
||||
|
||||
使用数据库功能前,需要先安装数据库软件:
|
||||
|
||||
1. 进入 **应用** > **原生应用**
|
||||
2. 安装 Percona、MySQL、MariaDB 或 PostgreSQL
|
||||
|
||||
## 功能概览
|
||||
|
||||
数据库模块分为三个部分:
|
||||
|
||||
| 功能 | 说明 |
|
||||
|------|------|
|
||||
| [数据库](./database/database) | 创建和管理数据库 |
|
||||
| [用户](./database/user) | 管理数据库用户和权限 |
|
||||
| [服务器](./database/server) | 管理数据库服务器连接 |
|
||||
|
||||

|
||||
|
||||
## 支持的数据库
|
||||
|
||||
| 数据库 | 说明 |
|
||||
|--------|------|
|
||||
| Percona | MySQL 的高性能分支,适合高负载场景 |
|
||||
| MySQL | 世界上最流行的开源关系型数据库 |
|
||||
| MariaDB | MySQL 的开源分支,完全兼容 MySQL |
|
||||
| PostgreSQL | 功能强大的开源对象关系型数据库 |
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 创建数据库
|
||||
|
||||
1. 进入 **数据库** 页面
|
||||
2. 点击 **创建数据库**
|
||||
3. 选择数据库类型和服务器
|
||||
4. 输入数据库名称
|
||||
5. 选择是否创建用户并设置权限
|
||||
6. 点击创建
|
||||
|
||||
### 创建用户
|
||||
|
||||
1. 切换到 **用户** 标签
|
||||
2. 点击 **创建用户**
|
||||
3. 输入用户名和密码
|
||||
4. 设置访问权限
|
||||
5. 点击创建
|
||||
|
||||
## 连接数据库
|
||||
|
||||
### 本地连接
|
||||
|
||||
```
|
||||
主机:127.0.0.1 或 localhost
|
||||
端口:Percona/MySQL/MariaDB 3306,PostgreSQL 5432
|
||||
Socket:Percona/MySQL/MariaDB /tmp/mysql.sock,PostgreSQL /tmp/.s.PGSQL.5432
|
||||
```
|
||||
|
||||
### 远程连接
|
||||
|
||||
如需远程连接数据库:
|
||||
|
||||
1. 在防火墙中开放数据库端口
|
||||
2. 创建允许远程访问的用户(主机设为 `%`)
|
||||
|
||||
::: warning 安全提示
|
||||
不建议将数据库端口暴露到公网,如需远程管理建议使用 SSH 隧道或 VPN。
|
||||
:::
|
||||
|
||||
## 下一步
|
||||
|
||||
- [数据库管理](./database/database) - 了解如何创建和管理数据库
|
||||
- [用户管理](./database/user) - 了解如何管理数据库用户
|
||||
- [服务器管理](./database/server) - 了解如何管理数据库服务器
|
||||
58
en/advanced/database/database.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# 数据库管理
|
||||
|
||||
数据库管理页面用于创建、查看和删除数据库,AcePanel 已全面默认使用 UTF-8 编码创建数据库。
|
||||
|
||||
## 数据库列表
|
||||
|
||||
进入 **数据库** 页面,默认显示数据库列表。
|
||||
|
||||

|
||||
|
||||
列表显示以下信息:
|
||||
|
||||
- **类型**:数据库类型(MySQL/PostgreSQL)
|
||||
- **数据库名称**:数据库名称
|
||||
- **服务器**:所属的数据库服务器
|
||||
- **编码**:字符编码
|
||||
- **注释**:备注信息(PostgreSQL 支持)
|
||||
- **操作**:删除
|
||||
|
||||
## 创建数据库
|
||||
|
||||
1. 点击 **创建数据库** 按钮
|
||||
2. 填写配置:
|
||||
- **服务器**:选择数据库服务器
|
||||
- **数据库名称**:只能使用字母、数字和下划线
|
||||
3. 选择是否创建用户并设置权限(可选)
|
||||
4. 点击创建
|
||||
|
||||
## 删除数据库
|
||||
|
||||
点击数据库右侧的 **删除** 按钮删除数据库。
|
||||
|
||||
::: danger 警告
|
||||
删除数据库会永久删除该数据库中的所有数据,此操作不可恢复!请务必提前备份重要数据。
|
||||
:::
|
||||
|
||||
## 数据库命名规范
|
||||
|
||||
- 只能使用字母、数字和下划线
|
||||
- 不能以数字开头
|
||||
- 避免使用数据库保留字
|
||||
- 建议使用有意义的名称,如 `wordpress`、`myapp_production`
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 创建数据库失败
|
||||
|
||||
- 检查数据库名称是否符合命名规范
|
||||
- 检查是否已存在同名数据库
|
||||
- 检查数据库服务是否正常运行
|
||||
|
||||
### 数据库编码问题
|
||||
|
||||
如果出现乱码,检查:
|
||||
|
||||
1. 数据库编码是否正确
|
||||
2. 连接时是否指定了正确的编码
|
||||
3. 应用程序的编码设置
|
||||
86
en/advanced/database/server.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# 服务器管理
|
||||
|
||||
服务器管理页面用于管理数据库服务器连接,支持本地和远程数据库服务器。
|
||||
|
||||
## 服务器列表
|
||||
|
||||
进入 **数据库** > **服务器** 标签页查看服务器列表。
|
||||
|
||||

|
||||
|
||||
列表显示以下信息:
|
||||
|
||||
- **类型**:数据库类型(MySQL/PostgreSQL)
|
||||
- **名称**:服务器名称
|
||||
- **用户名**:管理员用户名
|
||||
- **密码**:管理员密码
|
||||
- **主机**:服务器地址和端口
|
||||
- **注释**:备注信息
|
||||
- **状态**:连接状态
|
||||
- **更新日期**:最后更新时间
|
||||
- **操作**:终端、同步、修改、删除
|
||||
|
||||
## 本地服务器
|
||||
|
||||
安装数据库软件后,AcePanel 会自动添加本地服务器,此类服务器不支持自行删除:
|
||||
|
||||
- **local_mysql**:本地 Percona/MySQL/MariaDB 服务器
|
||||
- **local_postgresql**:本地 PostgreSQL 服务器
|
||||
|
||||
## 添加远程服务器
|
||||
|
||||
1. 点击 **添加服务器** 按钮
|
||||
2. 填写配置:
|
||||
- **类型**:选择数据库类型
|
||||
- **名称**:服务器名称(用于标识)
|
||||
- **主机**:服务器地址
|
||||
- **端口**:数据库端口
|
||||
- **用户名**:管理员用户名
|
||||
- **密码**:管理员密码
|
||||
3. 点击添加
|
||||
|
||||
### 远程服务器使用场景
|
||||
|
||||
- 连接云数据库(如阿里云 RDS、腾讯云 CDB)
|
||||
- 连接容器中的数据库服务
|
||||
- 连接其他服务器上的数据库
|
||||
- 数据库读写分离架构
|
||||
|
||||
## 服务器操作
|
||||
|
||||
### 终端
|
||||
|
||||
点击 **终端** 按钮打开数据库命令行终端,可以直接执行 SQL 语句。
|
||||
|
||||
### 同步
|
||||
|
||||
点击 **同步** 按钮同步数据库和用户信息。当直接在数据库中创建了数据库或用户时,可以使用此功能同步到面板。
|
||||
|
||||
### 修改
|
||||
|
||||
点击 **修改** 按钮可以修改服务器连接信息,如密码、主机地址等。
|
||||
|
||||
### 删除
|
||||
|
||||
点击 **删除** 按钮删除服务器配置。
|
||||
|
||||
::: warning 注意
|
||||
删除服务器配置不会删除实际的数据库服务,只是从面板中移除该服务器的管理。
|
||||
:::
|
||||
|
||||
## 连接测试
|
||||
|
||||
添加或修改服务器后,系统会自动测试连接。如果连接失败,请检查:
|
||||
|
||||
1. 服务器地址和端口是否正确
|
||||
2. 用户名和密码是否正确
|
||||
3. 防火墙是否允许连接
|
||||
4. 数据库服务是否正常运行
|
||||
5. 数据库用户是否允许从当前主机连接
|
||||
|
||||
## 默认端口
|
||||
|
||||
| 数据库 | 默认端口 |
|
||||
|-----------------------|----------|
|
||||
| Percona/MySQL/MariaDB | 3306 |
|
||||
| PostgreSQL | 5432 |
|
||||
83
en/advanced/database/user.md
Normal file
@@ -0,0 +1,83 @@
|
||||
# 用户管理
|
||||
|
||||
用户管理页面用于创建和管理数据库用户,设置用户权限。
|
||||
|
||||
## 用户列表
|
||||
|
||||
进入 **数据库** > **用户** 标签页查看用户列表。
|
||||
|
||||

|
||||
|
||||
列表显示以下信息:
|
||||
|
||||
- **类型**:数据库类型
|
||||
- **用户名**:数据库用户名
|
||||
- **密码**:用户密码(点击复制)
|
||||
- **主机**:允许连接的主机
|
||||
- **服务器**:所属的数据库服务器
|
||||
- **权限**:用户拥有权限的数据库
|
||||
- **注释**:备注信息
|
||||
- **状态**:用户状态
|
||||
- **更新日期**:最后更新时间
|
||||
- **操作**:修改、删除
|
||||
|
||||
## 创建用户
|
||||
|
||||
1. 点击 **创建用户** 按钮
|
||||
2. 填写配置:
|
||||
- **服务器**:选择数据库服务器
|
||||
- **用户名**:数据库用户名
|
||||
- **密码**:用户密码(建议使用强密码)
|
||||
- **主机**:允许连接的主机地址
|
||||
- **权限**:选择用户可以访问的数据库
|
||||
3. 点击创建
|
||||
|
||||
### 主机设置
|
||||
|
||||
| 值 | 说明 |
|
||||
|------|------|
|
||||
| `localhost` | 只允许本地连接 |
|
||||
| `127.0.0.1` | 只允许本地 IP 连接 |
|
||||
| `%` | 允许任意主机连接 |
|
||||
| `192.168.1.%` | 允许指定网段连接 |
|
||||
| `192.168.1.100` | 只允许指定 IP 连接 |
|
||||
|
||||
::: warning 安全提示
|
||||
生产环境不建议使用 `%` 允许任意主机连接,应限制为具体的 IP 地址或网段。
|
||||
:::
|
||||
|
||||
## 修改用户
|
||||
|
||||
点击用户右侧的 **修改** 按钮可以:
|
||||
|
||||
- 修改密码
|
||||
- 修改允许连接的主机
|
||||
- 修改数据库权限
|
||||
|
||||
## 删除用户
|
||||
|
||||
点击用户右侧的 **删除** 按钮删除用户。
|
||||
|
||||
::: warning 注意
|
||||
删除用户后,使用该用户连接数据库的应用将无法正常工作。
|
||||
:::
|
||||
|
||||
## 权限说明
|
||||
|
||||
### Percona/MySQL/MariaDB 权限
|
||||
|
||||
创建用户时可以选择授予权限的数据库:
|
||||
|
||||
- 选择具体数据库:用户只能访问选中的数据库
|
||||
- 不选择:用户没有任何数据库权限
|
||||
|
||||
### PostgreSQL 权限
|
||||
|
||||
PostgreSQL 的权限管理更加细粒度,可以自行针对数据库、模式、表等设置不同权限,面板仅支持授予数据库访问权限。
|
||||
|
||||
## 密码安全
|
||||
|
||||
- 使用强密码,包含大小写字母、数字和特殊字符
|
||||
- 密码长度建议 16 位以上
|
||||
- 不同应用使用不同的数据库用户
|
||||
- 定期更换密码
|
||||
198
en/advanced/file.md
Normal file
@@ -0,0 +1,198 @@
|
||||
# 文件
|
||||
|
||||
文件模块提供了功能强大的图形化文件管理器,设计理念是尽可能还原 Windows 资源管理器的操作体验,支持右键菜单、拖拽上传、快捷键等特性。
|
||||
|
||||
## 文件管理器
|
||||
|
||||

|
||||
|
||||
## 核心特性
|
||||
|
||||
### 类 Windows 操作体验
|
||||
|
||||
- **右键菜单**:右键点击文件或目录弹出操作菜单
|
||||
- **拖拽上传**:直接将本地文件拖拽到浏览器窗口即可上传
|
||||
- **多选操作**:支持 Ctrl+点击 多选,Shift+点击 范围选择
|
||||
- **快捷键支持**:常用操作都有对应的快捷键
|
||||
|
||||
### 快捷键
|
||||
|
||||
| 快捷键 | 功能 |
|
||||
|--------|------|
|
||||
| `Ctrl+C` | 复制 |
|
||||
| `Ctrl+X` | 剪切 |
|
||||
| `Ctrl+V` | 粘贴 |
|
||||
| `Delete` | 删除 |
|
||||
| `F2` | 重命名 |
|
||||
| `Ctrl+A` | 全选 |
|
||||
|
||||
## 导航
|
||||
|
||||
### 路径导航
|
||||
|
||||
顶部显示当前路径的面包屑导航,点击可以快速跳转到任意上级目录。
|
||||
|
||||
### 快捷按钮
|
||||
|
||||
- **后退**:返回上一个访问的目录
|
||||
- **前进**:前进到下一个目录
|
||||
- **上级目录**:返回上级目录
|
||||
- **刷新**:刷新当前目录
|
||||
- **主目录**:返回默认目录
|
||||
|
||||
## 文件列表
|
||||
|
||||
文件列表显示以下信息:
|
||||
|
||||
| 列 | 说明 |
|
||||
|------|------|
|
||||
| 名称 | 文件或目录名称 |
|
||||
| 大小 | 文件大小,目录显示"计算"可点击计算 |
|
||||
| 权限 | 文件权限(如 0755) |
|
||||
| 所有者/组 | 文件的所有者和所属组 |
|
||||
| 修改时间 | 最后修改时间 |
|
||||
| 操作 | 打开、压缩、重命名、删除、更多 |
|
||||
|
||||
### 选择文件
|
||||
|
||||

|
||||
|
||||
选择文件后,顶部会显示批量操作按钮:
|
||||
|
||||
- **复制**:复制选中的文件
|
||||
- **移动**:移动选中的文件
|
||||
- **压缩**:压缩选中的文件
|
||||
- **权限**:修改权限
|
||||
- **删除**:删除选中的文件
|
||||
|
||||
### 更多操作
|
||||
|
||||
点击文件行的 **更多** 按钮,显示更多操作选项:
|
||||
|
||||

|
||||
|
||||
- **复制**:复制文件到其他目录
|
||||
- **移动**:移动文件到其他目录
|
||||
- **权限**:修改文件权限和所有者
|
||||
- **压缩**:压缩文件
|
||||
- **复制路径**:复制文件的完整路径
|
||||
- **属性**:查看文件详细属性
|
||||
|
||||
## 工具栏
|
||||
|
||||
### 新建
|
||||
|
||||
点击 **新建** 按钮可以:
|
||||
- 新建文件
|
||||
- 新建目录
|
||||
|
||||
### 上传
|
||||
|
||||
点击 **上传** 按钮上传本地文件到服务器。
|
||||
|
||||
支持的上传方式:
|
||||
- 点击选择文件上传
|
||||
- **拖拽上传**:直接将文件拖拽到页面即可上传
|
||||
|
||||
### 远程下载
|
||||
|
||||
点击 **远程下载** 按钮,输入 URL 地址,将远程文件下载到当前目录。
|
||||
|
||||
适用场景:
|
||||
- 下载软件安装包
|
||||
- 下载远程备份文件
|
||||
- 从其他服务器获取文件
|
||||
|
||||
### 搜索
|
||||
|
||||
在搜索框输入关键词搜索文件:
|
||||
- 默认搜索当前目录
|
||||
- 勾选 **包括子目录** 可以递归搜索
|
||||
|
||||
### 终端
|
||||
|
||||
点击 **终端** 按钮可以在当前目录打开终端,方便执行命令行操作。
|
||||
|
||||
### 排序
|
||||
|
||||
点击 **排序** 按钮可以按不同字段排序文件列表。
|
||||
|
||||
## 文件编辑器
|
||||
|
||||
AcePanel 内置了功能强大的代码编辑器,基于 Monaco Editor(VS Code 同款编辑器内核)。
|
||||
|
||||

|
||||
|
||||
### 编辑器特性
|
||||
|
||||
- **语法高亮**:支持各种编程语言的语法高亮
|
||||
- **代码折叠**:支持代码块折叠
|
||||
- **行号显示**:显示行号,方便定位
|
||||
- **小地图**:右侧显示代码缩略图
|
||||
- **自动换行**:可切换自动换行模式
|
||||
- **多文件编辑**:支持同时打开多个文件,标签页切换
|
||||
|
||||
### 编辑器快捷键
|
||||
|
||||
| 快捷键 | 功能 |
|
||||
|--------|------|
|
||||
| `Ctrl+S` | 保存当前文件 |
|
||||
| `Ctrl+Shift+S` | 保存所有文件 |
|
||||
| `Ctrl+F` | 搜索 |
|
||||
| `Ctrl+H` | 替换 |
|
||||
| `Ctrl+G` | 转到指定行 |
|
||||
|
||||
### 编辑器工具栏
|
||||
|
||||
- **保存**:保存当前文件
|
||||
- **保存所有**:保存所有修改的文件
|
||||
- **刷新**:重新加载文件内容
|
||||
- **搜索**:打开搜索面板
|
||||
- **替换**:打开替换面板
|
||||
- **转到**:跳转到指定行
|
||||
- **字体大小**:调整编辑器字体大小
|
||||
- **切换自动换行**:开启/关闭自动换行
|
||||
- **切换小地图**:显示/隐藏右侧小地图
|
||||
- **设置**:编辑器设置
|
||||
|
||||
### 全屏模式
|
||||
|
||||
点击 **最大化** 按钮可以全屏编辑,获得更大的编辑空间:
|
||||
|
||||

|
||||
|
||||
### 侧边栏文件树
|
||||
|
||||
编辑器左侧显示当前目录的文件树,可以:
|
||||
- 快速切换编辑其他文件
|
||||
- 新建文件
|
||||
- 搜索文件
|
||||
|
||||
### 状态栏
|
||||
|
||||
编辑器底部状态栏显示:
|
||||
- 文件完整路径
|
||||
- 换行符类型(LF/CRLF)
|
||||
- 光标位置(行、列)
|
||||
- 缩进设置(空格/Tab)
|
||||
- 文件语言类型
|
||||
|
||||
## 权限说明
|
||||
|
||||
Linux 文件权限由三组数字表示:
|
||||
|
||||
| 权限 | 数字 | 说明 |
|
||||
|------|------|------|
|
||||
| r | 4 | 读取 |
|
||||
| w | 2 | 写入 |
|
||||
| x | 1 | 执行 |
|
||||
|
||||
例如 `0755`:
|
||||
- 所有者:7 (4+2+1) = 读+写+执行
|
||||
- 所属组:5 (4+1) = 读+执行
|
||||
- 其他用户:5 (4+1) = 读+执行
|
||||
|
||||
常用权限:
|
||||
- `0644`:普通文件
|
||||
- `0755`:可执行文件和目录
|
||||
- `0600`:私密文件(如密钥)
|
||||
99
en/advanced/monitor.md
Normal file
@@ -0,0 +1,99 @@
|
||||
# 监控
|
||||
|
||||
监控模块用于记录和查看服务器的性能数据,包括 CPU、内存、磁盘 I/O 和网络流量。
|
||||
|
||||
## 监控页面
|
||||
|
||||

|
||||
|
||||
## 监控设置
|
||||
|
||||
### 启用监控
|
||||
|
||||
开启 **启用监控** 开关后,系统会定期采集性能数据。
|
||||
|
||||
### 保存天数
|
||||
|
||||
设置监控数据的保留时间,默认 30 天。超过保留时间的数据会自动清理。
|
||||
|
||||
### 清除监控记录
|
||||
|
||||
点击 **清除监控记录** 按钮可以手动清除所有历史监控数据。
|
||||
|
||||
## 监控指标
|
||||
|
||||
### 负载(Load Average)
|
||||
|
||||
系统负载反映了 CPU 的繁忙程度:
|
||||
|
||||
- **1 分钟负载**:最近 1 分钟的平均负载
|
||||
- **5 分钟负载**:最近 5 分钟的平均负载
|
||||
- **15 分钟负载**:最近 15 分钟的平均负载
|
||||
|
||||
负载值的参考:
|
||||
- 负载 < CPU 核心数:系统运行流畅
|
||||
- 负载 = CPU 核心数:系统满负荷运行
|
||||
- 负载 > CPU 核心数:系统过载,可能出现卡顿
|
||||
|
||||
### CPU 使用率
|
||||
|
||||
显示 CPU 的使用百分比,包括:
|
||||
- 用户态使用率
|
||||
- 系统态使用率
|
||||
- 空闲率
|
||||
|
||||
### 内存使用
|
||||
|
||||
显示内存的使用情况:
|
||||
- 已使用内存
|
||||
- 可用内存
|
||||
- 缓存/缓冲区
|
||||
|
||||
### 磁盘 I/O
|
||||
|
||||
显示磁盘的读写速度:
|
||||
- 读取速度(KB/s 或 MB/s)
|
||||
- 写入速度(KB/s 或 MB/s)
|
||||
|
||||
可以选择要监控的磁盘设备。
|
||||
|
||||
### 网络流量
|
||||
|
||||
显示网络接口的流量:
|
||||
- 发送速度
|
||||
- 接收速度
|
||||
|
||||
可以选择要监控的网络接口。
|
||||
|
||||
## 时间范围
|
||||
|
||||
每个监控图表都支持选择时间范围:
|
||||
|
||||
- **昨天**:查看昨天的数据
|
||||
- **今天**:查看今天的数据
|
||||
- **近 7 天**:查看最近一周的数据
|
||||
- **自定义**:选择任意时间范围
|
||||
|
||||
## 使用场景
|
||||
|
||||
### 性能分析
|
||||
|
||||
通过监控数据分析服务器性能瓶颈:
|
||||
- CPU 持续高负载:考虑优化程序或升级 CPU
|
||||
- 内存不足:考虑增加内存或优化内存使用
|
||||
- 磁盘 I/O 高:考虑使用 SSD 或优化数据库查询
|
||||
- 网络带宽不足:考虑升级带宽
|
||||
|
||||
### 故障排查
|
||||
|
||||
出现问题时,查看历史监控数据定位问题发生的时间和原因。
|
||||
|
||||
### 容量规划
|
||||
|
||||
根据历史数据趋势,预测未来的资源需求,提前进行扩容。
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 监控数据会占用一定的磁盘空间
|
||||
- 保存天数越长,占用空间越大
|
||||
- 建议根据实际需求设置合适的保存天数
|
||||
156
en/advanced/project.md
Normal file
@@ -0,0 +1,156 @@
|
||||
# 项目
|
||||
|
||||
项目模块用于管理后端应用程序,支持 Go、Java、Node.js、PHP、Python 等多种语言。项目会作为系统服务运行,支持自动重启、开机自启等功能。
|
||||
|
||||
## 项目类型
|
||||
|
||||
| 类型 | 说明 | 适用场景 |
|
||||
|------|------|----------|
|
||||
| [Go](./project/go) | Go 语言项目 | Gin、Echo、Fiber 等框架 |
|
||||
| [Java](./project/java) | Java 项目 | Spring Boot、Tomcat 等 |
|
||||
| [Node.js](./project/nodejs) | Node.js 项目 | Express、Koa、NestJS 等 |
|
||||
| [PHP](./project/php) | PHP 项目 | Laravel Octane、Swoole 等 |
|
||||
| [Python](./project/python) | Python 项目 | Django、Flask、FastAPI 等 |
|
||||
| [通用](./project/general) | 其他类型项目 | 任意可执行程序 |
|
||||
|
||||

|
||||
|
||||
## 项目 vs 网站
|
||||
|
||||
| 特性 | 项目 | 网站 |
|
||||
|------|------|------|
|
||||
| 运行方式 | 独立进程 | 依赖 Web 服务器 |
|
||||
| 进程管理 | 自动重启、开机自启 | 由 Web 服务器管理 |
|
||||
| 适用场景 | 后端服务、API | 传统 Web 应用 |
|
||||
| 对外访问 | 需要配合反向代理 | 直接访问 |
|
||||
|
||||
## 创建项目
|
||||
|
||||
1. 进入 **项目** 页面
|
||||
2. 点击 **创建项目**
|
||||
|
||||

|
||||
|
||||
### 配置项
|
||||
|
||||
- **项目名**:项目标识,用作服务名称
|
||||
- **项目目录**:项目文件所在目录
|
||||
- **运行用户**:运行项目的系统用户,默认 www
|
||||
- **启动命令**:启动项目的命令
|
||||
- **反向代理**:是否自动创建反向代理网站
|
||||
|
||||
## 项目管理
|
||||
|
||||
项目列表显示以下信息:
|
||||
|
||||
- **名称**:项目名称
|
||||
- **描述**:项目描述
|
||||
- **类型**:项目类型(Go/Java/Node.js 等)
|
||||
- **状态**:运行状态
|
||||
- **自启动**:是否开机自启
|
||||
- **目录**:项目目录
|
||||
- **操作**:启动、停止、重启、日志等
|
||||
|
||||
### 项目操作
|
||||
|
||||
- **启动**:启动项目
|
||||
- **停止**:停止项目
|
||||
- **重启**:重启项目
|
||||
- **日志**:查看项目运行日志
|
||||
- **编辑**:修改项目配置
|
||||
- **删除**:删除项目
|
||||
|
||||
## 编辑项目
|
||||
|
||||
点击项目列表中的 **编辑** 按钮,可以修改项目配置。编辑对话框包含多个标签页:
|
||||
|
||||
### 基本设置
|
||||
|
||||
配置项目的基本信息:
|
||||
|
||||

|
||||
|
||||
- **项目名**:项目标识,用作服务名称
|
||||
- **描述**:项目描述信息
|
||||
- **项目目录**:项目文件所在目录
|
||||
- **工作目录**:程序运行时的工作目录,默认为项目目录
|
||||
- **运行用户**:运行项目的系统用户
|
||||
|
||||
### 运行设置
|
||||
|
||||
配置项目的运行参数:
|
||||
|
||||

|
||||
|
||||
- **启动命令**:启动项目的命令
|
||||
- **预启动命令**:启动前运行的命令(可选)
|
||||
- **启动后命令**:启动后运行的命令(可选)
|
||||
- **停止命令**:自定义停止命令(可选)
|
||||
- **重载命令**:自定义重载命令(可选)
|
||||
- **重启策略**:失败时重启、总是重启、不重启
|
||||
- **重启间隔**:重启之间的等待时间
|
||||
- **最大重启次数**:连续重启的最大次数
|
||||
- **启动超时**:等待服务启动的超时时间
|
||||
- **停止超时**:等待服务停止的超时时间
|
||||
- **标准输出**:标准输出的处理方式
|
||||
- **标准错误**:标准错误的处理方式
|
||||
- **环境变量**:设置项目运行时的环境变量
|
||||
|
||||
### 依赖
|
||||
|
||||
配置服务依赖关系以控制启动顺序:
|
||||
|
||||

|
||||
|
||||
- **Requires**:强依赖,如果这些服务不可用,项目将会失败
|
||||
- **Wants**:弱依赖,如果这些服务失败,项目仍然会启动
|
||||
- **After**:在指定服务之后启动此项目
|
||||
- **Before**:在指定服务之前启动此项目
|
||||
|
||||
常见服务:`network.target`、`mysqld.service`、`postgresql.service`、`redis.service`
|
||||
|
||||
### 资源限制
|
||||
|
||||
设置资源限制以防止服务消耗过多系统资源:
|
||||
|
||||

|
||||
|
||||
- **内存限制**:限制项目使用的最大内存,0 表示无限制
|
||||
- **CPU 配额**:限制 CPU 使用率,100% = 1 个 CPU 核心
|
||||
|
||||
### 安全设置
|
||||
|
||||
增强服务隔离的安全选项:
|
||||
|
||||

|
||||
|
||||
- **没有新权限**:防止进程获取新的权限
|
||||
- **保护 /tmp**:为服务创建私有的 /tmp 目录
|
||||
- **保护 /home**:限制对 /home 目录的访问
|
||||
- **保护系统**:设置系统目录的只读保护级别
|
||||
- `true`:/usr、/boot 为只读
|
||||
- `full`:+ /etc 为只读
|
||||
- `strict`:整个文件系统为只读
|
||||
- **读写路径**:服务可以读写的路径
|
||||
- **只读路径**:服务只能读取的路径
|
||||
|
||||
::: warning 注意
|
||||
安全设置可能会影响某些功能,请在启用之前进行充分测试。
|
||||
:::
|
||||
|
||||
## 进程管理
|
||||
|
||||
项目使用 systemd 进行进程管理,具有以下特性:
|
||||
|
||||
- **自动重启**:进程异常退出后自动重启
|
||||
- **开机自启**:系统启动时自动启动项目
|
||||
- **日志管理**:自动记录标准输出和错误输出
|
||||
|
||||
## 下一步
|
||||
|
||||
- [Go 项目](./project/go) - 部署 Go 应用
|
||||
- [Java 项目](./project/java) - 部署 Java 应用
|
||||
- [Node.js 项目](./project/nodejs) - 部署 Node.js 应用
|
||||
- [PHP 项目](./project/php) - 部署 PHP 应用
|
||||
- [Python 项目](./project/python) - 部署 Python 应用
|
||||
- [通用项目](./project/general) - 部署其他类型应用
|
||||
132
en/advanced/project/general.md
Normal file
@@ -0,0 +1,132 @@
|
||||
# 通用项目
|
||||
|
||||
通用项目用于部署任意类型的可执行程序,不限于特定编程语言。
|
||||
|
||||
## 适用场景
|
||||
|
||||
- Rust 应用
|
||||
- C/C++ 应用
|
||||
- Shell 脚本
|
||||
- 其他编译型语言应用
|
||||
- 自定义启动脚本
|
||||
|
||||
## 创建通用项目
|
||||
|
||||
1. 进入 **项目** 页面
|
||||
2. 点击 **创建项目**
|
||||
3. 填写配置:
|
||||
- **项目名**:项目标识
|
||||
- **项目目录**:可执行文件所在目录
|
||||
- **启动命令**:启动程序的命令
|
||||
4. 根据需要开启 **反向代理**
|
||||
|
||||
## 启动命令示例
|
||||
|
||||
### Rust 应用
|
||||
|
||||
```bash
|
||||
# 运行编译好的二进制文件
|
||||
./myapp
|
||||
|
||||
# 带参数运行
|
||||
./myapp --config config.toml --port 8080
|
||||
```
|
||||
|
||||
### Shell 脚本
|
||||
|
||||
```bash
|
||||
# 运行脚本
|
||||
/bin/bash start.sh
|
||||
|
||||
# 或直接运行(需要 shebang 和执行权限)
|
||||
./start.sh
|
||||
```
|
||||
|
||||
### 自定义启动脚本
|
||||
|
||||
创建 `start.sh`:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
cd /opt/ace/project/myapp
|
||||
export ENV=production
|
||||
./myapp
|
||||
```
|
||||
|
||||
启动命令:`/bin/bash start.sh`
|
||||
|
||||
## 环境变量
|
||||
|
||||
可以在启动命令中设置环境变量:
|
||||
|
||||
```bash
|
||||
# 单个环境变量
|
||||
ENV=production ./myapp
|
||||
|
||||
# 多个环境变量
|
||||
ENV=production PORT=8080 ./myapp
|
||||
```
|
||||
|
||||
或直接编辑项目,在 **运行设置** 中添加环境变量。
|
||||
|
||||
## 工作目录
|
||||
|
||||
项目会在指定的项目目录下运行,相对路径会基于该目录解析。
|
||||
|
||||
如果需要切换目录,可以在启动命令中使用 `cd`:
|
||||
|
||||
```bash
|
||||
cd /opt/ace/project/myapp/bin && ./myapp
|
||||
```
|
||||
|
||||
## 权限设置
|
||||
|
||||
确保可执行文件有执行权限:
|
||||
|
||||
```bash
|
||||
chmod +x myapp
|
||||
chmod +x start.sh
|
||||
```
|
||||
|
||||
## 运行用户
|
||||
|
||||
默认使用 `www` 用户运行项目。如果程序需要特殊权限,可以选择其他用户。
|
||||
|
||||
::: warning 注意
|
||||
使用 root 用户运行可能带来安全风险,请谨慎选择。
|
||||
:::
|
||||
|
||||
## 日志输出
|
||||
|
||||
程序的标准输出(stdout)和标准错误(stderr)会被记录到日志中,可以在项目管理页面查看。
|
||||
|
||||
建议程序将日志输出到标准输出,而非写入文件,便于统一管理。
|
||||
|
||||
## 信号处理
|
||||
|
||||
项目停止时会发送 SIGTERM 信号,程序应正确处理该信号以实现优雅关闭:
|
||||
|
||||
```rust
|
||||
// Rust 示例
|
||||
use signal_hook::{consts::SIGTERM, iterator::Signals};
|
||||
|
||||
fn main() {
|
||||
let mut signals = Signals::new(&[SIGTERM]).unwrap();
|
||||
// 处理 SIGTERM 信号
|
||||
}
|
||||
```
|
||||
|
||||
```c
|
||||
// C 示例
|
||||
#include <signal.h>
|
||||
|
||||
void handle_sigterm(int sig) {
|
||||
// 清理资源
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int main() {
|
||||
signal(SIGTERM, handle_sigterm);
|
||||
// ...
|
||||
}
|
||||
```
|
||||
120
en/advanced/project/go.md
Normal file
@@ -0,0 +1,120 @@
|
||||
# Go 项目
|
||||
|
||||
Go 项目用于部署使用 Go 语言开发的后端应用,如 Gin、Echo、Fiber 等框架。
|
||||
|
||||
## 前置要求
|
||||
|
||||
1. 安装 Go 运行环境:**应用** > **运行环境** > **Go**
|
||||
2. 编译好的 Go 可执行文件或源代码
|
||||
|
||||
## 部署方式
|
||||
|
||||
### 方式一:部署编译好的二进制文件
|
||||
|
||||
1. 在本地编译 Go 项目:
|
||||
|
||||
```bash
|
||||
# 交叉编译为 Linux amd64
|
||||
GOOS=linux GOARCH=amd64 go build -o myapp
|
||||
```
|
||||
|
||||
2. 上传二进制文件到服务器
|
||||
3. 创建项目,启动命令填写:`./myapp`
|
||||
|
||||
### 方式二:在服务器上编译
|
||||
|
||||
1. 上传源代码到服务器
|
||||
2. 在终端中编译:
|
||||
|
||||
```bash
|
||||
cd /opt/ace/project/myapp
|
||||
go build -o myapp
|
||||
```
|
||||
|
||||
3. 创建项目,启动命令填写:`./myapp`
|
||||
|
||||
## 创建 Go 项目
|
||||
|
||||
1. 进入 **项目** 页面
|
||||
2. 点击 **创建项目**
|
||||
3. 填写配置:
|
||||
- **项目名**:`myapp`
|
||||
- **项目目录**:`/opt/ace/project/myapp`
|
||||
- **启动命令**:`./myapp` 或 `go1.24 run main.go`
|
||||
4. 开启 **反向代理** 以便外部访问
|
||||
|
||||
## 启动命令示例
|
||||
|
||||
```bash
|
||||
# 运行编译好的二进制文件
|
||||
./myapp
|
||||
|
||||
# 使用指定版本的 Go 运行
|
||||
go1.24 run main.go
|
||||
|
||||
# 带参数运行
|
||||
./myapp -port 8080 -config ./config.yaml
|
||||
|
||||
# 设置环境变量
|
||||
GIN_MODE=release ./myapp
|
||||
```
|
||||
|
||||
## 常用框架
|
||||
|
||||
### Gin
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import "github.com/gin-gonic/gin"
|
||||
|
||||
func main() {
|
||||
r := gin.Default()
|
||||
r.GET("/", func(c *gin.Context) {
|
||||
c.JSON(200, gin.H{"message": "Hello"})
|
||||
})
|
||||
r.Run(":8080")
|
||||
}
|
||||
```
|
||||
|
||||
启动命令:`GIN_MODE=release ./myapp`
|
||||
|
||||
### Echo
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
func main() {
|
||||
e := echo.New()
|
||||
e.GET("/", func(c echo.Context) error {
|
||||
return c.String(200, "Hello")
|
||||
})
|
||||
e.Start(":8080")
|
||||
}
|
||||
```
|
||||
|
||||
### Fiber
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import "github.com/gofiber/fiber/v2"
|
||||
|
||||
func main() {
|
||||
app := fiber.New()
|
||||
app.Get("/", func(c *fiber.Ctx) error {
|
||||
return c.SendString("Hello")
|
||||
})
|
||||
app.Listen(":8080")
|
||||
}
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 确保二进制文件有执行权限:`chmod +x myapp`
|
||||
2. 生产环境建议使用编译好的二进制文件,而非 `go run`
|
||||
3. 建议使用环境变量或配置文件管理配置,避免硬编码
|
||||
111
en/advanced/project/java.md
Normal file
@@ -0,0 +1,111 @@
|
||||
# Java 项目
|
||||
|
||||
Java 项目用于部署 Spring Boot、Tomcat 等 Java 应用。
|
||||
|
||||
## 前置要求
|
||||
|
||||
1. 安装 Java 运行环境:**应用** > **运行环境** > **Java**(Corretto JDK)
|
||||
2. 打包好的 JAR 文件或 WAR 文件
|
||||
|
||||
## 部署 Spring Boot 应用
|
||||
|
||||
### 打包项目
|
||||
|
||||
```bash
|
||||
# Maven
|
||||
mvn clean package -DskipTests
|
||||
|
||||
# Gradle
|
||||
./gradlew build -x test
|
||||
```
|
||||
|
||||
### 上传并部署
|
||||
|
||||
1. 上传 JAR 文件到服务器(如 `/opt/ace/project/myapp/app.jar`)
|
||||
2. 创建项目:
|
||||
- **项目名**:`myapp`
|
||||
- **项目目录**:`/opt/ace/project/myapp`
|
||||
- **启动命令**:`java21 -jar app.jar`
|
||||
3. 开启 **反向代理**
|
||||
|
||||
## 启动命令示例
|
||||
|
||||
```bash
|
||||
# 基本启动
|
||||
java21 -jar app.jar
|
||||
|
||||
# 指定配置文件
|
||||
java21 -jar app.jar --spring.profiles.active=prod
|
||||
|
||||
# 设置 JVM 参数
|
||||
java21 -Xms512m -Xmx1024m -jar app.jar
|
||||
|
||||
# 指定端口
|
||||
java21 -jar app.jar --server.port=8080
|
||||
```
|
||||
|
||||
## JVM 参数建议
|
||||
|
||||
```bash
|
||||
# 生产环境推荐配置
|
||||
java21 \
|
||||
-Xms512m \
|
||||
-Xmx1024m \
|
||||
-XX:+UseG1GC \
|
||||
-XX:MaxGCPauseMillis=200 \
|
||||
-jar app.jar
|
||||
```
|
||||
|
||||
常用参数说明:
|
||||
|
||||
| 参数 | 说明 |
|
||||
|------|------|
|
||||
| `-Xms` | 初始堆内存大小 |
|
||||
| `-Xmx` | 最大堆内存大小 |
|
||||
| `-XX:+UseG1GC` | 使用 G1 垃圾收集器 |
|
||||
| `-XX:MaxGCPauseMillis` | 最大 GC 停顿时间 |
|
||||
|
||||
## 多版本 JDK
|
||||
|
||||
AcePanel 支持安装多个 JDK 版本,路径如 `/opt/ace/server/java/{version}/bin/java`,已默认链接 `java{version}` 命令方便使用。
|
||||
|
||||
## 配置文件
|
||||
|
||||
Spring Boot 配置文件 `application.yml` 示例:
|
||||
|
||||
```yaml
|
||||
server:
|
||||
port: 8080
|
||||
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:mysql://localhost:3306/mydb
|
||||
username: root
|
||||
password: your_password
|
||||
```
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 内存不足
|
||||
|
||||
增加 JVM 堆内存:
|
||||
|
||||
```bash
|
||||
java21 -Xms1g -Xmx2g -jar app.jar
|
||||
```
|
||||
|
||||
### 端口冲突
|
||||
|
||||
修改启动端口:
|
||||
|
||||
```bash
|
||||
java21 -jar app.jar --server.port=8081
|
||||
```
|
||||
|
||||
### 启动慢
|
||||
|
||||
检查是否有外部依赖连接超时,或添加以下参数加速启动:
|
||||
|
||||
```bash
|
||||
-XX:TieredStopAtLevel=1 -noverify
|
||||
```
|
||||
135
en/advanced/project/nodejs.md
Normal file
@@ -0,0 +1,135 @@
|
||||
# Node.js 项目
|
||||
|
||||
Node.js 项目用于部署 Express、Koa、NestJS、Next.js 等 Node.js 应用。
|
||||
|
||||
## 前置要求
|
||||
|
||||
1. 安装 Node.js 运行环境:**应用** > **运行环境** > **Node.js**
|
||||
2. 项目源代码
|
||||
|
||||
## 部署步骤
|
||||
|
||||
1. 上传项目代码到服务器
|
||||
2. 安装依赖:
|
||||
|
||||
```bash
|
||||
cd /opt/ace/project/myapp
|
||||
npm24 install
|
||||
```
|
||||
|
||||
3. 创建项目:
|
||||
- **项目名**:`myapp`
|
||||
- **项目目录**:`/opt/ace/project/myapp`
|
||||
- **启动命令**:`node24 app.js`
|
||||
4. 开启 **反向代理**
|
||||
|
||||
## 启动命令示例
|
||||
|
||||
```bash
|
||||
# 直接运行
|
||||
node24 app.js
|
||||
|
||||
# 使用 npm scripts
|
||||
npm24 start
|
||||
|
||||
# 使用 npm run
|
||||
npm24 run start:prod
|
||||
|
||||
# 设置环境变量
|
||||
NODE_ENV=production node24 app.js
|
||||
|
||||
# 指定端口
|
||||
PORT=3000 node24 app.js
|
||||
```
|
||||
|
||||
## 常用框架
|
||||
|
||||
### Express
|
||||
|
||||
```javascript
|
||||
const express = require('express');
|
||||
const app = express();
|
||||
|
||||
app.get('/', (req, res) => {
|
||||
res.send('Hello World');
|
||||
});
|
||||
|
||||
app.listen(3000);
|
||||
```
|
||||
|
||||
启动命令:`node24 app.js`
|
||||
|
||||
### NestJS
|
||||
|
||||
```bash
|
||||
# 构建
|
||||
npm24 run build
|
||||
```
|
||||
|
||||
启动命令:`node24 dist/main.js`
|
||||
|
||||
### Next.js
|
||||
|
||||
```bash
|
||||
# 构建
|
||||
npm24 run build
|
||||
```
|
||||
|
||||
启动命令:`npm24 start`
|
||||
|
||||
### Nuxt.js
|
||||
|
||||
```bash
|
||||
# 构建
|
||||
npm24 run build
|
||||
```
|
||||
|
||||
启动命令:`node24 .output/server/index.mjs`
|
||||
|
||||
## 进程管理
|
||||
|
||||
AcePanel 使用 systemd 管理 Node.js 进程,自动处理:
|
||||
|
||||
- 进程崩溃自动重启
|
||||
- 开机自动启动
|
||||
- 日志记录
|
||||
|
||||
## 环境变量
|
||||
|
||||
推荐使用 `.env` 文件管理环境变量:
|
||||
|
||||
```bash
|
||||
# .env
|
||||
NODE_ENV=production
|
||||
PORT=3000
|
||||
DATABASE_URL=mysql://localhost:3306/mydb
|
||||
```
|
||||
|
||||
使用 `dotenv` 包加载:
|
||||
|
||||
```javascript
|
||||
require('dotenv').config();
|
||||
```
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 依赖安装失败
|
||||
|
||||
尝试清除缓存重新安装:
|
||||
|
||||
```bash
|
||||
rm -rf node_modules package-lock.json
|
||||
npm24 install
|
||||
```
|
||||
|
||||
### 内存不足
|
||||
|
||||
增加 Node.js 内存限制:
|
||||
|
||||
```bash
|
||||
NODE_OPTIONS="--max-old-space-size=4096" node24 app.js
|
||||
```
|
||||
|
||||
### 端口被占用
|
||||
|
||||
修改应用监听的端口,或检查是否有其他进程占用。
|
||||
97
en/advanced/project/php.md
Normal file
@@ -0,0 +1,97 @@
|
||||
# PHP 项目
|
||||
|
||||
PHP 项目用于部署需要常驻进程的 PHP 应用,如 Laravel Octane、Swoole、Workerman 等。
|
||||
|
||||
::: tip 提示
|
||||
传统的 PHP-FPM 应用(如 WordPress、Laravel)应使用 [PHP 网站](../website/php) 方式部署,而非项目。
|
||||
:::
|
||||
|
||||
## 适用场景
|
||||
|
||||
- Laravel Octane(Swoole/RoadRunner)
|
||||
- Swoole 应用
|
||||
- Workerman 应用
|
||||
- ReactPHP 应用
|
||||
- 其他需要常驻进程的 PHP 应用
|
||||
|
||||
## 前置要求
|
||||
|
||||
1. 安装 PHP 运行环境:**应用** > **运行环境** > **PHP**
|
||||
2. 根据需要安装 Swoole 等模块
|
||||
|
||||
## 部署 Laravel Octane
|
||||
|
||||
### 创建项目
|
||||
|
||||
1. 创建项目:
|
||||
- **项目名**:`myapp`
|
||||
- **项目目录**:`/opt/ace/project/myapp`
|
||||
- **启动命令**:`php84 artisan octane:start --host=0.0.0.0 --port=8000`
|
||||
2. 开启 **反向代理**
|
||||
|
||||
## 启动命令示例
|
||||
|
||||
```bash
|
||||
# Laravel Octane (Swoole)
|
||||
php84 artisan octane:start --host=0.0.0.0 --port=8000
|
||||
|
||||
# Laravel Octane (RoadRunner)
|
||||
php84 artisan octane:start --server=roadrunner --host=0.0.0.0 --port=8000
|
||||
|
||||
# Swoole HTTP Server
|
||||
php84 server.php
|
||||
|
||||
# Workerman
|
||||
php84 start.php start
|
||||
|
||||
# Laravel Queue Worker
|
||||
php84 artisan queue:work --daemon
|
||||
```
|
||||
|
||||
## Swoole 应用示例
|
||||
|
||||
```php
|
||||
<?php
|
||||
$server = new Swoole\HTTP\Server("0.0.0.0", 9501);
|
||||
|
||||
$server->on("request", function ($request, $response) {
|
||||
$response->header("Content-Type", "text/plain");
|
||||
$response->end("Hello World");
|
||||
});
|
||||
|
||||
$server->start();
|
||||
```
|
||||
|
||||
启动命令:`php84 server.php`
|
||||
|
||||
## Workerman 应用示例
|
||||
|
||||
```php
|
||||
<?php
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
use Workerman\Worker;
|
||||
|
||||
$worker = new Worker("http://0.0.0.0:8080");
|
||||
$worker->onMessage = function($connection, $request) {
|
||||
$connection->send("Hello World");
|
||||
};
|
||||
|
||||
Worker::runAll();
|
||||
```
|
||||
|
||||
启动命令:`php84 start.php start`
|
||||
|
||||
## 队列处理
|
||||
|
||||
Laravel 队列 Worker 也可以作为项目运行:
|
||||
|
||||
```bash
|
||||
php84 artisan queue:work --daemon --tries=3
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 常驻进程的 PHP 应用需要注意内存泄漏问题
|
||||
2. 代码更新后需要重启项目才能生效
|
||||
3. 建议配置进程监控,异常时自动重启
|
||||
149
en/advanced/project/python.md
Normal file
@@ -0,0 +1,149 @@
|
||||
# Python 项目
|
||||
|
||||
Python 项目用于部署 Django、Flask、FastAPI 等 Python Web 应用。
|
||||
|
||||
## 前置要求
|
||||
|
||||
1. 安装 Python 运行环境:**应用** > **运行环境** > **Python**
|
||||
2. 项目源代码
|
||||
|
||||
## 部署步骤
|
||||
|
||||
1. 上传项目代码到服务器
|
||||
2. 创建虚拟环境并安装依赖:
|
||||
|
||||
```bash
|
||||
cd /opt/ace/project/myapp
|
||||
python3.13 -m venv venv
|
||||
source venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
3. 创建项目:
|
||||
- **项目名**:`myapp`
|
||||
- **项目目录**:`/opt/ace/project/myapp`
|
||||
- **启动命令**:见下方示例
|
||||
4. 开启 **反向代理**
|
||||
|
||||
## 启动命令示例
|
||||
|
||||
### Django
|
||||
|
||||
```bash
|
||||
# 开发服务器(不推荐生产使用)
|
||||
/opt/ace/project/myapp/venv/bin/python manage.py runserver 0.0.0.0:8000
|
||||
|
||||
# 使用 Gunicorn(推荐)
|
||||
/opt/ace/project/myapp/venv/bin/gunicorn myproject.wsgi:application -b 0.0.0.0:8000 -w 4
|
||||
|
||||
# 使用 uWSGI
|
||||
/opt/ace/project/myapp/venv/bin/uwsgi --http 0.0.0.0:8000 --module myproject.wsgi
|
||||
```
|
||||
|
||||
### Flask
|
||||
|
||||
```bash
|
||||
# 开发服务器(不推荐生产使用)
|
||||
/opt/ace/project/myapp/venv/bin/python app.py
|
||||
|
||||
# 使用 Gunicorn(推荐)
|
||||
/opt/ace/project/myapp/venv/bin/gunicorn app:app -b 0.0.0.0:8000 -w 4
|
||||
```
|
||||
|
||||
### FastAPI
|
||||
|
||||
```bash
|
||||
# 使用 Uvicorn
|
||||
/opt/ace/project/myapp/venv/bin/uvicorn main:app --host 0.0.0.0 --port 8000
|
||||
|
||||
# 使用 Gunicorn + Uvicorn Workers(推荐)
|
||||
/opt/ace/project/myapp/venv/bin/gunicorn main:app -b 0.0.0.0:8000 -w 4 -k uvicorn.workers.UvicornWorker
|
||||
```
|
||||
|
||||
## 常用框架配置
|
||||
|
||||
### Django 生产配置
|
||||
|
||||
`settings.py`:
|
||||
|
||||
```python
|
||||
DEBUG = False
|
||||
ALLOWED_HOSTS = ['your-domain.com']
|
||||
STATIC_ROOT = '/opt/ace/project/myapp/static/'
|
||||
```
|
||||
|
||||
收集静态文件:
|
||||
|
||||
```bash
|
||||
/opt/ace/project/myapp/venv/bin/python manage.py collectstatic
|
||||
```
|
||||
|
||||
### FastAPI 示例
|
||||
|
||||
```python
|
||||
from fastapi import FastAPI
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
@app.get("/")
|
||||
def read_root():
|
||||
return {"Hello": "World"}
|
||||
```
|
||||
|
||||
## Gunicorn 配置
|
||||
|
||||
创建 `gunicorn.conf.py`:
|
||||
|
||||
```python
|
||||
bind = "0.0.0.0:8000"
|
||||
workers = 4
|
||||
worker_class = "sync" # 或 "uvicorn.workers.UvicornWorker" for FastAPI
|
||||
timeout = 30
|
||||
keepalive = 2
|
||||
```
|
||||
|
||||
启动命令:
|
||||
|
||||
```bash
|
||||
/opt/ace/project/myapp/venv/bin/gunicorn -c gunicorn.conf.py myproject.wsgi:application
|
||||
```
|
||||
|
||||
## 虚拟环境
|
||||
|
||||
强烈建议使用虚拟环境隔离项目依赖:
|
||||
|
||||
```bash
|
||||
# 创建虚拟环境
|
||||
python3.13 -m venv venv
|
||||
|
||||
# 激活虚拟环境
|
||||
source venv/bin/activate
|
||||
|
||||
# 安装依赖
|
||||
pip install -r requirements.txt
|
||||
|
||||
# 退出虚拟环境
|
||||
deactivate
|
||||
```
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 依赖安装失败
|
||||
|
||||
某些包需要编译,确保安装了必要的系统依赖:
|
||||
|
||||
```bash
|
||||
# AlmaLinux/Rocky Linux
|
||||
yum install gcc python3-devel
|
||||
|
||||
# Ubuntu/Debian
|
||||
apt install gcc python3-dev
|
||||
```
|
||||
|
||||
### 静态文件 404
|
||||
|
||||
Django 生产环境需要配置 Nginx 直接提供静态文件,或使用 WhiteNoise。
|
||||
|
||||
### 数据库连接问题
|
||||
|
||||
检查数据库配置和网络连接,确保数据库服务正常运行。
|
||||
@@ -1,32 +1,29 @@
|
||||
# Security Recommendations
|
||||
# 安全建议
|
||||
|
||||
With the following security measures, almost all hacking/malware issues can be prevented.
|
||||
## 网站安全
|
||||
|
||||
### Website Aspects
|
||||
大多数入侵和挂马事件源于程序漏洞,与面板或环境无关。
|
||||
|
||||
Based on experience, most hacking and malware incidents are caused by program vulnerabilities, unrelated to the Panel or environment. For website security, you should:
|
||||
- 不使用盗版程序,因为无法确认是否被篡改
|
||||
- 及时更新网站程序和运行环境
|
||||
- 后台密码使用随机生成的 20 位以上混合字符,启用两步验证
|
||||
- 配置定时备份
|
||||
- 保留 PHP 默认禁用的高危函数(`disable_functions`)
|
||||
|
||||
1. Avoid using pirated programs or software, especially when you cannot determine if they have been tampered with.
|
||||
2. Regularly update website programs and software environments; don't use outdated software due to inconvenience, as their security cannot be guaranteed.
|
||||
3. Never use weak passwords for website admin areas. Passwords are strongly recommended to be generated using a random generator with more than 20 mixed characters and stored in a secure location. If possible, enable 2FA for your programs.
|
||||
4. Set up scheduled backups of all site data; don't operate without backups.
|
||||
5. PHP has disabled some high-risk functions by default; don't remove these restrictions unless absolutely necessary.
|
||||
## 系统安全
|
||||
|
||||
### System Aspects
|
||||
- 定期更新系统:`dnf update` 或 `apt upgrade`
|
||||
- SSH 禁用默认 22 端口,使用强密码或密钥认证
|
||||
- 安装 Fail2ban 防止暴力破解
|
||||
- 不随意设置 777 权限或给 www 用户执行权限
|
||||
- 有 VNC 的情况下可考虑关闭 SSH
|
||||
|
||||
The probability of serious security vulnerabilities in modern systems is low, but you should still:
|
||||
## 面板安全
|
||||
|
||||
1. Regularly update system software. (Use `yum update` or `apt upgrade`).
|
||||
2. Prohibit weak passwords and the default port 22 for SSH. Passwords are strongly recommended to be generated using a random generator with more than 20 mixed characters and stored in a secure location. If possible, consider installing Fail2ban for targeted protection.
|
||||
3. Don't arbitrarily assign 777 permissions or execution permissions to the www user, as this may cause major security risks.
|
||||
4. If your service provider offers VNC server management, consider disabling SSH to solve the problem at the source.
|
||||
AcePanel 拥有 root 权限,需重点保护。
|
||||
|
||||
### Panel Aspects
|
||||
|
||||
AcePanel has the same privileges as root, and improper management can cause serious security problems. You should:
|
||||
|
||||
1. Regularly update the Panel and applications installed through it. We recommend following our channel or group to receive various update messages promptly.
|
||||
2. Prohibit weak passwords and the default 8888 port for the Panel. Passwords are strongly recommended to be generated using a random generator with more than 20 mixed characters and stored in a secure location.
|
||||
3. Consider modifying the Panel entry point and enabling HTTPS for the Panel to prevent scanner detection and man-in-the-middle attacks.
|
||||
4. Unless necessary, do not allow firewall access to internal service ports (Redis 6379, MySQL 3306, PostgreSQL 5432, etc.), as this may cause serious security risks. (Local website connections don't require firewall access; connection issues are program problems).
|
||||
5. For high-security requirements, consider stopping the Panel operation routinely and starting it only when needed (stopping the Panel will not affect websites, scheduled tasks, etc.).
|
||||
- 保持面板和应用更新
|
||||
- 修改默认端口,使用强密码
|
||||
- 启用安全入口,开启 HTTPS
|
||||
- 内部服务端口(Redis 6379、MySQL 3306、PostgreSQL 5432 等)不要对外开放
|
||||
- 高安全要求场景可在不使用时停止面板进程,不影响已部署的服务
|
||||
|
||||
58
en/advanced/setting/basic.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# 基本设置
|
||||
|
||||
基本设置页面用于配置面板的基础参数。
|
||||
|
||||

|
||||
|
||||
## 面板名称
|
||||
|
||||
自定义面板显示的名称,默认为 "AcePanel"。修改后刷新页面会显示在浏览器标题和面板左上角。
|
||||
|
||||
## 语言
|
||||
|
||||
选择面板界面语言:
|
||||
|
||||
- 简体中文
|
||||
- 繁体中文
|
||||
- English
|
||||
|
||||
## 更新渠道
|
||||
|
||||
选择面板更新的版本渠道:
|
||||
|
||||
- **稳定版**:经过充分测试的正式版本,推荐生产环境使用
|
||||
- **测试版**:包含最新功能但可能存在问题,适合尝鲜用户
|
||||
|
||||
## 端口
|
||||
|
||||
面板的访问端口,默认为 8888。修改端口后需要:
|
||||
|
||||
1. 确保新端口未被占用
|
||||
2. 在服务器安全组中开放新端口
|
||||
3. 保存后面板会自动重启
|
||||
|
||||
::: warning 注意
|
||||
修改端口前请确保服务器安全组已开放新端口,否则可能无法访问面板。
|
||||
:::
|
||||
|
||||
## 默认目录
|
||||
|
||||
配置各类资源的默认存储路径:
|
||||
|
||||
| 设置项 | 默认值 | 说明 |
|
||||
|--------|--------|------|
|
||||
| 默认网站目录 | /opt/ace/sites | 网站文件存放目录 |
|
||||
| 默认备份目录 | /opt/ace/backup | 备份文件存放目录 |
|
||||
| 默认项目目录 | /opt/ace/projects | 项目文件存放目录 |
|
||||
|
||||
修改目录后,新创建的网站/备份/项目会使用新目录,已有的不受影响。
|
||||
|
||||
## 自定义 Logo
|
||||
|
||||
输入图片的完整 URL 地址,可以替换面板左上角的 Logo。支持 PNG、JPG、SVG 等格式。
|
||||
|
||||
## 隐藏菜单
|
||||
|
||||
选择要隐藏的菜单项。隐藏后的菜单不会显示在左侧导航栏中,但功能仍然可用(通过直接访问 URL)。
|
||||
|
||||
适用于简化界面或限制普通用户可见的功能范围。
|
||||
97
en/advanced/setting/safe.md
Normal file
@@ -0,0 +1,97 @@
|
||||
# 安全设置
|
||||
|
||||
安全设置页面用于配置面板的安全相关选项,保护面板免受未授权访问。
|
||||
|
||||

|
||||
|
||||
## 登录超时
|
||||
|
||||
设置登录会话的有效时间,单位为分钟。超过该时间未操作将自动退出登录,需要重新认证。
|
||||
|
||||
默认值为 120 分钟。
|
||||
|
||||
## 访问入口
|
||||
|
||||
设置面板的访问路径,设置访问入口后需要通过 `https://IP:端口/入口路径` 才能访问。
|
||||
|
||||
例如设置为 `/admin`,则访问地址变为 `https://IP:端口/admin`。
|
||||
|
||||
这是一个简单但有效的安全措施,可以防止面板被扫描器发现。
|
||||
|
||||
## 入口错误页
|
||||
|
||||
当访问错误的入口路径时返回的 HTTP 状态码:
|
||||
|
||||
- **418 I'm a teapot**:返回一个有趣的错误码与错误页
|
||||
- **Nginx 404**:返回 Nginx 同款 404 页面
|
||||
- **关闭连接**:直接关闭连接不返回任何内容
|
||||
|
||||
## 登录验证码
|
||||
|
||||
开启后登录时多次输入错误密码会触发验证码,防止暴力破解。
|
||||
|
||||
## 请求 IP 头
|
||||
|
||||
当面板部署在反向代理(如 Nginx、CDN)后面时,需要设置正确的 IP 头才能获取真实的客户端 IP。
|
||||
|
||||
常用值:
|
||||
- `X-Real-IP`:Nginx 默认使用
|
||||
- `X-Forwarded-For`:标准代理头
|
||||
- `CF-Connecting-IP`:Cloudflare 使用
|
||||
|
||||
## 绑定域名
|
||||
|
||||
限制只能通过指定域名访问面板。添加域名后,通过 IP 或其他域名将无法访问。
|
||||
|
||||
适用于:
|
||||
- 提高安全性
|
||||
- 配合 SSL 证书使用
|
||||
|
||||
## 绑定 IP
|
||||
|
||||
限制只能从指定 IP 地址访问面板。可以添加多个 IP 地址。
|
||||
|
||||
适用于:
|
||||
- 固定办公网络
|
||||
- 跳板机访问
|
||||
|
||||
::: warning 注意
|
||||
绑定 IP 前请确保你的 IP 地址是固定的,否则可能导致无法访问面板。
|
||||
:::
|
||||
|
||||
## 绑定 UA
|
||||
|
||||
限制只能使用指定 User-Agent 的浏览器访问面板。
|
||||
|
||||
这是一个高级安全选项,可以配合自定义浏览器插件使用。
|
||||
|
||||
## 离线模式
|
||||
|
||||
开启后面板将不会连接外部网络,包括:
|
||||
- 检查更新
|
||||
- 下载应用
|
||||
- 同步缓存数据
|
||||
|
||||
适用于内网环境或有严格网络限制的场景。
|
||||
|
||||
## 自动更新
|
||||
|
||||
开启后面板会每日自动检查并安装更新。建议保持开启以获取最新的安全修复。
|
||||
|
||||
## 面板 HTTPS
|
||||
|
||||
为面板启用 HTTPS 加密访问:
|
||||
|
||||
- **禁用**:使用 HTTP 访问
|
||||
- **ACME(自动)**:自动申请和续签 Let's Encrypt 证书,需要 IP 支持 80 端口访问
|
||||
- **自定义证书**:使用自己的 SSL 证书
|
||||
|
||||
::: tip 推荐
|
||||
生产环境建议启用 HTTPS,保护登录凭据和敏感数据的传输安全。
|
||||
:::
|
||||
|
||||
## 面板公网 IP
|
||||
|
||||
配置面板的公网 IP 地址,目前主要用于向 Let's Encrypt 申请 IP 证书。
|
||||
|
||||
支持 IPv4 和 IPv6 地址。
|
||||
74
en/advanced/setting/user.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# 用户管理
|
||||
|
||||
用户管理页面用于管理面板的登录用户。
|
||||
|
||||

|
||||
|
||||
## 用户列表
|
||||
|
||||
列表显示所有面板用户的信息:
|
||||
|
||||
| 字段 | 说明 |
|
||||
|------|------|
|
||||
| 用户名 | 登录用户名,可直接在表格中修改 |
|
||||
| 邮箱 | 用户邮箱,用于找回密码等功能 |
|
||||
| 两步验证 | 是否启用 TOTP 两步验证 |
|
||||
| 创建时间 | 用户创建时间 |
|
||||
|
||||
## 创建用户
|
||||
|
||||
点击 **创建用户** 按钮添加新用户:
|
||||
|
||||

|
||||
|
||||
填写以下信息:
|
||||
|
||||
- **用户名**:登录用户名
|
||||
- **密码**:登录密码
|
||||
- **邮箱**:用户邮箱地址
|
||||
|
||||
## 用户操作
|
||||
|
||||
### 访问令牌
|
||||
|
||||
生成 API 访问令牌,用于通过 API 接口访问面板功能。
|
||||
|
||||
令牌具有与用户相同的权限,请妥善保管。
|
||||
|
||||
### 更改密码
|
||||
|
||||
修改用户的登录密码。建议定期更换密码。
|
||||
|
||||
### 删除用户
|
||||
|
||||
删除用户账号。删除后该用户将无法登录面板。
|
||||
|
||||
::: warning 注意
|
||||
至少需要保留一个用户,无法删除最后一个用户。
|
||||
:::
|
||||
|
||||
## 两步验证
|
||||
|
||||
两步验证(2FA)为账号提供额外的安全保护。启用后登录时除了密码还需要输入动态验证码。
|
||||
|
||||
### 启用两步验证
|
||||
|
||||
1. 点击两步验证开关
|
||||
2. 使用 Google Authenticator、Microsoft Authenticator 等应用扫描二维码
|
||||
3. 输入应用显示的 6 位验证码确认
|
||||
|
||||
### 支持的验证器应用
|
||||
|
||||
- Google Authenticator
|
||||
- Microsoft Authenticator
|
||||
- Authy
|
||||
- 1Password
|
||||
- 其他支持 TOTP 的应用
|
||||
|
||||
## 安全建议
|
||||
|
||||
1. 使用强密码,包含大小写字母、数字和特殊字符
|
||||
2. 启用两步验证
|
||||
3. 定期更换密码
|
||||
4. 不要共享账号
|
||||
5. 及时删除不再使用的账号
|
||||
96
en/advanced/ssh.md
Normal file
@@ -0,0 +1,96 @@
|
||||
# 终端
|
||||
|
||||
终端模块提供了基于 Web 的 SSH 终端,可以直接在浏览器中连接服务器执行命令。
|
||||
|
||||
## 终端页面
|
||||
|
||||

|
||||
|
||||
## 创建主机
|
||||
|
||||
点击 **创建主机** 按钮添加 SSH 连接:
|
||||
|
||||
### 配置项
|
||||
|
||||
- **名称**:连接名称,用于标识
|
||||
- **主机**:服务器 IP 地址或域名
|
||||
- **端口**:SSH 端口,默认 22
|
||||
- **认证方式**:密码或密钥
|
||||
- **用户名**:SSH 用户名
|
||||
- **密码/密钥**:认证凭证
|
||||
- **备注**:可选备注
|
||||
|
||||
### 认证方式
|
||||
|
||||
| 方式 | 说明 |
|
||||
|------|------|
|
||||
| 密码 | 使用用户名和密码认证 |
|
||||
| 密钥 | 使用 SSH 私钥认证 |
|
||||
|
||||
::: tip 推荐
|
||||
生产环境建议使用密钥认证,更加安全。
|
||||
:::
|
||||
|
||||
## 连接服务器
|
||||
|
||||
1. 在左侧主机列表中选择要连接的主机
|
||||
2. 点击主机名称打开终端
|
||||
3. 开始执行命令
|
||||
|
||||
## 终端功能
|
||||
|
||||
### 多标签
|
||||
|
||||
支持同时打开多个终端标签,方便在多个会话间切换。
|
||||
|
||||
### 复制粘贴
|
||||
|
||||
- **复制**:选中文本后自动复制,或使用 `Ctrl+Shift+C`
|
||||
- **粘贴**:右键粘贴,或使用 `Ctrl+Shift+V`
|
||||
|
||||
### 全屏模式
|
||||
|
||||
点击全屏按钮可以进入全屏模式,获得更大的终端空间。
|
||||
|
||||
### 字体设置
|
||||
|
||||
可以调整终端的字体大小和字体类型。
|
||||
|
||||
## 本地终端
|
||||
|
||||
默认会显示本地服务器的终端连接,可以直接连接到当前服务器。
|
||||
|
||||
## 远程主机
|
||||
|
||||
可以添加多个远程主机,方便管理多台服务器:
|
||||
|
||||
1. 点击 **创建主机**
|
||||
2. 填写远程服务器信息
|
||||
3. 保存后在列表中选择连接
|
||||
|
||||
## 安全建议
|
||||
|
||||
1. 使用强密码或密钥认证
|
||||
2. 修改默认 SSH 端口
|
||||
3. 限制 SSH 访问的 IP 地址
|
||||
4. 定期更换密码或密钥
|
||||
5. 使用非 root 用户登录
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 连接超时
|
||||
|
||||
- 检查服务器 IP 和端口是否正确
|
||||
- 检查防火墙是否允许 SSH 连接
|
||||
- 检查 SSH 服务是否正常运行
|
||||
|
||||
### 认证失败
|
||||
|
||||
- 检查用户名和密码是否正确
|
||||
- 检查密钥格式是否正确
|
||||
- 检查用户是否有 SSH 登录权限
|
||||
|
||||
### 中文乱码
|
||||
|
||||
- 检查服务器的 locale 设置
|
||||
- 确保终端编码为 UTF-8
|
||||
84
en/advanced/task/panel.md
Normal file
@@ -0,0 +1,84 @@
|
||||
# 面板任务
|
||||
|
||||
面板任务显示 AcePanel 执行的后台任务,如应用安装、环境安装等。
|
||||
|
||||
## 任务列表
|
||||
|
||||
进入 **任务** > **面板任务** 标签页查看面板任务列表。
|
||||
|
||||

|
||||
|
||||
列表显示以下信息:
|
||||
|
||||
- **任务名称**:任务描述
|
||||
- **状态**:运行中/已完成/失败
|
||||
- **创建时间**:任务开始时间
|
||||
- **完成时间**:任务结束时间
|
||||
- **操作**:查看日志、删除
|
||||
|
||||
## 任务状态
|
||||
|
||||
| 状态 | 说明 |
|
||||
|------|------|
|
||||
| 运行中 | 任务正在执行 |
|
||||
| 已完成 | 任务执行成功 |
|
||||
| 失败 | 任务执行失败 |
|
||||
|
||||
## 常见任务类型
|
||||
|
||||
### 应用安装
|
||||
|
||||
安装原生应用时会创建安装任务:
|
||||
- 安装应用 Nginx
|
||||
- 安装应用 MySQL
|
||||
- 安装应用 Docker
|
||||
|
||||
### 应用卸载
|
||||
|
||||
卸载应用时会创建卸载任务:
|
||||
- 卸载应用 MariaDB
|
||||
- 卸载应用 Redis
|
||||
|
||||
### 环境安装
|
||||
|
||||
安装运行环境时会创建安装任务:
|
||||
- 安装环境 PHP 8.4
|
||||
- 安装环境 Node.js 20
|
||||
- 安装环境 Go 1.24
|
||||
|
||||
## 查看日志
|
||||
|
||||
点击 **日志** 按钮查看任务的详细执行日志,包括:
|
||||
- 命令输出
|
||||
- 错误信息
|
||||
|
||||
日志对于排查任务失败原因非常有用。
|
||||
|
||||
## 删除任务
|
||||
|
||||
已完成或失败的任务可以删除。运行中的任务无法删除。
|
||||
|
||||
::: tip 提示
|
||||
删除任务只是从列表中移除记录,不会影响已安装的应用或环境。
|
||||
:::
|
||||
|
||||
## 任务失败处理
|
||||
|
||||
如果任务失败:
|
||||
|
||||
1. 点击 **日志** 查看错误信息
|
||||
2. 根据错误信息排查问题
|
||||
3. 解决问题后重新执行操作
|
||||
|
||||
常见失败原因:
|
||||
- 网络问题导致下载失败
|
||||
- 磁盘空间不足
|
||||
- 依赖包缺失
|
||||
- 端口被占用
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 安装任务可能需要较长时间,请耐心等待
|
||||
2. 任务执行期间可以关闭浏览器
|
||||
3. 如果任务长时间无响应,可以刷新页面查看状态
|
||||
4. 建议定期清理已完成的任务记录
|
||||
118
en/advanced/task/schedule.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# 计划任务
|
||||
|
||||
计划任务用于设置定时执行的任务,如定时备份、定时执行脚本等。
|
||||
|
||||
## 任务列表
|
||||
|
||||
进入 **任务** 页面,默认显示计划任务列表。
|
||||
|
||||

|
||||
|
||||
列表显示以下信息:
|
||||
|
||||
- **任务名称**:任务名称
|
||||
- **任务类型**:Shell/备份等
|
||||
- **已启用**:是否启用
|
||||
- **任务周期**:执行周期
|
||||
- **创建时间**:创建时间
|
||||
- **最后更新时间**:最后执行时间
|
||||
- **操作**:编辑、执行、删除等
|
||||
|
||||
## 创建任务
|
||||
|
||||
点击 **创建任务** 按钮创建新的计划任务。
|
||||
|
||||
### 任务类型
|
||||
|
||||
| 类型 | 说明 |
|
||||
|-------|------|
|
||||
| Shell | 执行 Shell 命令或脚本 |
|
||||
| 备份网站 | 定时备份网站文件 |
|
||||
| 备份数据库 | 定时备份数据库 |
|
||||
| 日志切割 | 定时切割日志文件 |
|
||||
|
||||
### 执行周期
|
||||
|
||||
支持多种周期设置:
|
||||
|
||||
- **每分钟**:每分钟执行一次
|
||||
- **每小时**:每小时执行一次
|
||||
- **每天**:每天指定时间执行
|
||||
- **每周**:每周指定日期和时间执行
|
||||
- **每月**:每月指定日期和时间执行
|
||||
- **自定义**:使用 Cron 表达式
|
||||
|
||||
### Cron 表达式
|
||||
|
||||
Cron 表达式格式:`分 时 日 月 周`
|
||||
|
||||
```
|
||||
* * * * *
|
||||
│ │ │ │ │
|
||||
│ │ │ │ └── 周几 (0-7, 0和7都是周日)
|
||||
│ │ │ └─────── 月份 (1-12)
|
||||
│ │ └──────────── 日期 (1-31)
|
||||
│ └───────────────── 小时 (0-23)
|
||||
└────────────────────── 分钟 (0-59)
|
||||
```
|
||||
|
||||
常用示例:
|
||||
|
||||
| 表达式 | 说明 |
|
||||
|--------|------|
|
||||
| `0 2 * * *` | 每天凌晨 2 点 |
|
||||
| `0 */6 * * *` | 每 6 小时 |
|
||||
| `0 0 * * 0` | 每周日凌晨 |
|
||||
| `0 0 1 * *` | 每月 1 号凌晨 |
|
||||
| `*/5 * * * *` | 每 5 分钟 |
|
||||
|
||||
不会写?直接找个 AI 描述清楚需求让它帮你生成一个。
|
||||
|
||||
## Shell 任务示例
|
||||
|
||||
### 清理临时文件
|
||||
|
||||
```bash
|
||||
find /tmp -type f -mtime +7 -delete
|
||||
```
|
||||
|
||||
### 重启服务
|
||||
|
||||
```bash
|
||||
systemctl restart nginx
|
||||
```
|
||||
|
||||
### 同步时间
|
||||
|
||||
```bash
|
||||
ntpdate ntp.aliyun.com
|
||||
```
|
||||
|
||||
## 任务操作
|
||||
|
||||
### 启用/禁用
|
||||
|
||||
通过开关控制任务是否启用。禁用的任务不会执行。
|
||||
|
||||
### 立即执行
|
||||
|
||||
点击 **运行** 按钮可以立即执行任务,不等待计划时间。
|
||||
|
||||
### 查看日志
|
||||
|
||||
点击 **日志** 按钮查看任务的执行日志。
|
||||
|
||||
### 编辑任务
|
||||
|
||||
点击 **编辑** 按钮修改任务配置。
|
||||
|
||||
### 删除任务
|
||||
|
||||
点击 **删除** 按钮删除任务。
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 任务执行时间基于服务器时区
|
||||
2. 长时间运行的任务可能影响下次执行
|
||||
3. 建议为重要任务设置通知提醒
|
||||
4. 定期检查任务执行状态
|
||||
27
en/advanced/toolbox.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# 工具箱
|
||||
|
||||
工具箱提供了一系列系统管理工具,包括进程管理、系统信息、SSH 配置、磁盘管理等。
|
||||
|
||||
## 功能列表
|
||||
|
||||
| 功能 | 说明 |
|
||||
|------|------|
|
||||
| [进程](./toolbox/process) | 查看和管理系统进程 |
|
||||
| [系统](./toolbox/system) | 查看系统信息和配置 |
|
||||
| [SSH](./toolbox/ssh) | SSH 服务配置 |
|
||||
| [磁盘](./toolbox/disk) | 磁盘使用情况和管理 |
|
||||
| [日志清理](./toolbox/log) | 清理系统日志 |
|
||||
| [Web 钩子](./toolbox/webhook) | 配置 Webhook 通知 |
|
||||
| [跑分](./toolbox/benchmark) | 服务器性能测试 |
|
||||
|
||||

|
||||
|
||||
## 下一步
|
||||
|
||||
- [进程管理](./toolbox/process) - 查看和管理系统进程
|
||||
- [系统信息](./toolbox/system) - 查看系统配置
|
||||
- [SSH 配置](./toolbox/ssh) - 配置 SSH 服务
|
||||
- [磁盘管理](./toolbox/disk) - 管理磁盘空间
|
||||
- [日志清理](./toolbox/log) - 清理系统日志
|
||||
- [Web 钩子](./toolbox/webhook) - 配置通知
|
||||
- [跑分测试](./toolbox/benchmark) - 测试服务器性能
|
||||
46
en/advanced/toolbox/benchmark.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# 跑分测试
|
||||
|
||||
跑分功能用于测试服务器的 CPU、内存和磁盘性能,帮助你了解服务器的实际性能表现。
|
||||
|
||||

|
||||
|
||||
## 测试项目
|
||||
|
||||
### CPU 测试
|
||||
|
||||
测试 CPU 的计算能力,通过执行大量数学运算来评估处理器性能。
|
||||
|
||||
### 内存测试
|
||||
|
||||
测试内存的读写速度,评估内存子系统的性能表现。
|
||||
|
||||
### 磁盘测试
|
||||
|
||||
测试磁盘的读写速度,评估存储设备的 I/O 性能。
|
||||
|
||||
## 使用方法
|
||||
|
||||
点击 **开始跑分** 按钮,系统会依次执行 CPU、内存和磁盘测试。测试完成后会显示各项得分。
|
||||
|
||||
## 结果说明
|
||||
|
||||
跑分结果以数值形式展示,数值越高表示性能越好。
|
||||
|
||||
::: warning 注意
|
||||
跑分结果仅供参考。由于系统资源调度、缓存和其他因素的影响,测试结果可能与实际使用中的性能有所差异。
|
||||
:::
|
||||
|
||||
## 测试建议
|
||||
|
||||
1. 测试前关闭不必要的服务和进程
|
||||
2. 避免在业务高峰期进行测试
|
||||
3. 多次测试取平均值更准确
|
||||
4. 不同时间段的测试结果可能有波动
|
||||
|
||||
## 性能优化参考
|
||||
|
||||
如果跑分结果不理想,可以考虑:
|
||||
|
||||
- **CPU 性能低**:检查是否有进程占用过高 CPU
|
||||
- **内存性能低**:检查内存使用情况,是否存在内存泄漏
|
||||
- **磁盘性能低**:检查磁盘健康状态,考虑升级到 SSD
|
||||
117
en/advanced/toolbox/disk.md
Normal file
@@ -0,0 +1,117 @@
|
||||
# 磁盘
|
||||
|
||||
磁盘页面提供磁盘分区管理和 LVM 逻辑卷管理功能。
|
||||
|
||||
## 磁盘管理
|
||||
|
||||

|
||||
|
||||
### 磁盘信息
|
||||
|
||||
页面顶部显示每个磁盘的基本信息:
|
||||
|
||||
- **磁盘名**:如 vda、sda
|
||||
- **类型**:系统盘或数据盘
|
||||
- **大小**:磁盘总容量
|
||||
- **分区数**:分区数量
|
||||
- **磁盘类型**:HDD、SSD 等
|
||||
|
||||
### 分区列表
|
||||
|
||||
每个磁盘下显示其分区信息:
|
||||
|
||||
| 列 | 说明 |
|
||||
|------|------|
|
||||
| 分区名 | 分区设备名,如 vda1、vda2 |
|
||||
| 大小 | 分区容量 |
|
||||
| 已用 | 已使用空间 |
|
||||
| 可用 | 可用空间 |
|
||||
| 使用率 | 使用百分比 |
|
||||
| 挂载点 | 挂载目录,如 `/`、`/data` |
|
||||
| 文件系统 | 文件系统类型,如 ext4、xfs |
|
||||
| 操作 | 卸载等操作 |
|
||||
|
||||
### 挂载分区
|
||||
|
||||
将未挂载的分区挂载到指定目录:
|
||||
|
||||
- **分区**:选择要挂载的分区
|
||||
- **挂载路径**:挂载目录,如 `/mnt/data`
|
||||
- **挂载选项**:挂载参数,如 `defaults,noatime`
|
||||
- **启动时自动挂载**:是否写入 fstab 开机自动挂载
|
||||
|
||||
### 格式化分区
|
||||
|
||||
::: danger 警告
|
||||
格式化将清除分区上的所有数据!
|
||||
:::
|
||||
|
||||
- **分区**:选择要格式化的分区
|
||||
- **文件系统类型**:ext4、xfs、btrfs 等
|
||||
|
||||
### 初始化磁盘
|
||||
|
||||
::: danger 警告
|
||||
初始化将删除磁盘上的所有分区和数据!
|
||||
:::
|
||||
|
||||
将整个磁盘初始化为单个分区:
|
||||
|
||||
- **磁盘**:选择要初始化的磁盘
|
||||
- **文件系统类型**:ext4、xfs、btrfs 等
|
||||
|
||||
### 自动挂载配置(fstab)
|
||||
|
||||
显示 `/etc/fstab` 中的挂载配置:
|
||||
|
||||
- **设备**:设备名或 UUID
|
||||
- **挂载点**:挂载目录
|
||||
- **文件系统**:文件系统类型
|
||||
- **选项**:挂载选项
|
||||
- **操作**:移除配置
|
||||
|
||||
## LVM 管理
|
||||
|
||||

|
||||
|
||||
LVM(Logical Volume Manager)提供灵活的磁盘空间管理,支持动态调整分区大小。
|
||||
|
||||
### 物理卷(PV)
|
||||
|
||||
物理卷是 LVM 的基础,通常是一个磁盘分区或整个磁盘。
|
||||
|
||||
**创建物理卷**:
|
||||
1. 选择设备(未使用的分区或磁盘)
|
||||
2. 点击 **创建物理卷**
|
||||
|
||||
### 卷组(VG)
|
||||
|
||||
卷组由一个或多个物理卷组成,是存储池的概念。
|
||||
|
||||
**创建卷组**:
|
||||
1. 输入卷组名
|
||||
2. 选择要加入的物理卷
|
||||
3. 点击 **创建卷组**
|
||||
|
||||
### 逻辑卷(LV)
|
||||
|
||||
逻辑卷从卷组中分配空间,相当于传统的分区。
|
||||
|
||||
**创建逻辑卷**:
|
||||
1. 输入逻辑卷名
|
||||
2. 选择卷组
|
||||
3. 设置大小(GB)
|
||||
4. 点击 **创建逻辑卷**
|
||||
|
||||
### 扩展逻辑卷
|
||||
|
||||
动态扩展逻辑卷的大小:
|
||||
|
||||
1. 选择要扩展的逻辑卷
|
||||
2. 输入扩展大小(GB)
|
||||
3. 勾选 **自动调整文件系统大小**(推荐)
|
||||
4. 点击 **扩展逻辑卷**
|
||||
|
||||
::: tip 提示
|
||||
LVM 的优势在于可以在线扩展逻辑卷,无需卸载分区或重启系统。
|
||||
:::
|
||||
79
en/advanced/toolbox/log.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# 日志清理
|
||||
|
||||
日志清理功能用于扫描和清理系统及应用产生的日志文件,释放磁盘空间。
|
||||
|
||||

|
||||
|
||||
## 功能概览
|
||||
|
||||
页面顶部提供批量操作按钮:
|
||||
|
||||
- **扫描所有**:扫描所有类型的日志
|
||||
- **清理所有**:清理所有已扫描的日志
|
||||
|
||||
## 日志类型
|
||||
|
||||
### 面板日志
|
||||
|
||||
面板运行产生的日志文件。
|
||||
|
||||
- 点击 **扫描** 检查日志大小
|
||||
- 点击 **清理** 删除日志文件
|
||||
|
||||
### 网站日志
|
||||
|
||||
网站的访问日志和错误日志,包括:
|
||||
|
||||
- Nginx 访问日志(access.log)
|
||||
- Nginx 错误日志(error.log)
|
||||
- 各网站的独立日志
|
||||
|
||||
::: tip 提示
|
||||
网站日志通常是占用空间最大的日志类型,建议定期清理。
|
||||
:::
|
||||
|
||||
### MySQL 日志
|
||||
|
||||
Percona/MySQL/MariaDB 数据库的日志文件:
|
||||
|
||||
- 慢查询日志(slow query log)
|
||||
- 二进制日志(binlog)
|
||||
- 错误日志
|
||||
|
||||
::: warning 注意
|
||||
二进制日志用于数据恢复和主从复制,清理前请确认不再需要。
|
||||
:::
|
||||
|
||||
### Docker
|
||||
|
||||
Docker 相关的日志和未使用资源:
|
||||
|
||||
- 容器日志
|
||||
- 未使用的镜像
|
||||
- 构建缓存
|
||||
|
||||
### 系统日志
|
||||
|
||||
系统级别的日志文件:
|
||||
|
||||
- systemd journal 日志
|
||||
- `/var/log` 下的系统日志
|
||||
- 内核日志
|
||||
|
||||
## 使用方法
|
||||
|
||||
1. 点击各类型的 **扫描** 按钮,查看日志占用空间
|
||||
2. 确认要清理的日志类型
|
||||
3. 点击 **清理** 按钮删除日志
|
||||
|
||||
或者:
|
||||
|
||||
1. 点击 **扫描所有** 一次性扫描所有日志
|
||||
2. 查看各类型的占用情况
|
||||
3. 点击 **清理所有** 批量清理
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 清理操作不可恢复,请确认日志不再需要
|
||||
2. 重要日志建议先备份
|
||||
3. 生产环境建议保留最近的日志用于问题排查
|
||||
61
en/advanced/toolbox/process.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# 进程管理
|
||||
|
||||
进程管理页面用于查看和管理系统中运行的进程。
|
||||
|
||||
## 进程列表
|
||||
|
||||

|
||||
|
||||
页面以表格形式展示所有运行中的进程。
|
||||
|
||||
列表显示以下信息:
|
||||
|
||||
- **PID**:进程 ID
|
||||
- **名称**:进程名称
|
||||
- **父进程 PID**:父进程的 PID
|
||||
- **线程**:线程数量
|
||||
- **用户**:运行进程的用户
|
||||
- **状态**:进程状态
|
||||
- **CPU**:CPU 使用率
|
||||
- **内存**:内存使用量
|
||||
- **启动时间**:进程启动时间
|
||||
|
||||
## 进程状态
|
||||
|
||||
| 状态 | 说明 |
|
||||
|------|------|
|
||||
| 运行中 | 进程正在执行 |
|
||||
| 睡眠 | 进程等待事件 |
|
||||
| 空闲 | 内核线程空闲 |
|
||||
| 停止 | 进程已停止 |
|
||||
| 僵尸 | 进程已结束但未被回收 |
|
||||
|
||||
## 搜索和筛选
|
||||
|
||||
- **搜索**:按 PID 或进程名称搜索
|
||||
- **状态筛选**:筛选特定状态的进程
|
||||
|
||||
## 进程操作
|
||||
|
||||
右键点击进程可以:
|
||||
|
||||
- **结束进程**:发送 SIGTERM 信号
|
||||
- **强制结束**:发送 SIGKILL 信号
|
||||
- **查看详情**:查看进程详细信息
|
||||
|
||||
## 常见进程
|
||||
|
||||
| 进程 | 说明 |
|
||||
|----------|------|
|
||||
| nginx | Nginx Web 服务器 |
|
||||
| php-fpm | PHP FastCGI 进程管理器 |
|
||||
| mysqld | MySQL 数据库服务 |
|
||||
| postgres | PostgreSQL 数据库服务 |
|
||||
| dockerd | Docker 守护进程 |
|
||||
| ace | AcePanel 面板进程 |
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 结束系统关键进程可能导致系统不稳定
|
||||
2. 结束面板进程会导致面板无法访问
|
||||
3. 建议只结束确认无用的进程
|
||||
80
en/advanced/toolbox/ssh.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# SSH
|
||||
|
||||
SSH 页面用于管理服务器的 SSH 服务配置,包括服务状态、认证方式和 Root 账户设置。
|
||||
|
||||

|
||||
|
||||
## 运行状态
|
||||
|
||||
显示 SSH 服务的当前状态,并提供以下操作:
|
||||
|
||||
- **启动**:启动 SSH 服务
|
||||
- **停止**:停止 SSH 服务
|
||||
- **重启**:重启 SSH 服务
|
||||
|
||||
::: danger 警告
|
||||
停止 SSH 服务后将无法通过 SSH 远程连接服务器,请确保有其他方式访问服务器(如 VNC、带外管理)后再操作。
|
||||
:::
|
||||
|
||||
## SSH 设置
|
||||
|
||||
### SSH 密码登录
|
||||
|
||||
控制是否允许使用密码进行 SSH 认证。
|
||||
|
||||
- **开启**:允许使用密码登录
|
||||
- **关闭**:禁止密码登录,只能使用密钥
|
||||
|
||||
### SSH 密钥登录
|
||||
|
||||
控制是否允许使用 SSH 密钥进行认证。
|
||||
|
||||
- **开启**:允许使用密钥登录
|
||||
- **关闭**:禁止密钥登录
|
||||
|
||||
::: tip 安全建议
|
||||
推荐开启密钥登录并关闭密码登录,可以有效防止暴力破解攻击。
|
||||
:::
|
||||
|
||||
### SSH 端口
|
||||
|
||||
修改 SSH 服务监听的端口,默认为 `22`。
|
||||
|
||||
修改端口后:
|
||||
1. 点击 **保存** 按钮
|
||||
2. 确保防火墙已放行新端口
|
||||
3. 使用新端口连接测试
|
||||
4. 确认可以连接后再关闭旧端口
|
||||
|
||||
::: warning 注意
|
||||
修改端口前请确保新端口已在防火墙中放行,否则可能导致无法连接。
|
||||
:::
|
||||
|
||||
## Root 设置
|
||||
|
||||
### Root 密码登录设置
|
||||
|
||||
控制 Root 用户的 SSH 登录权限:
|
||||
|
||||
- **允许 SSH 登录**:Root 可以通过 SSH 登录
|
||||
- **禁止 SSH 登录**:Root 无法通过 SSH 登录
|
||||
- **仅允许密钥登录**:Root 只能使用密钥登录
|
||||
|
||||
### Root 密码
|
||||
|
||||
重置 Root 用户的密码。
|
||||
|
||||
- 输入新密码后点击 **重置** 按钮
|
||||
- 建议使用包含大小写字母、数字和特殊字符的复杂密码
|
||||
- 刷新页面将清除密码输入框
|
||||
|
||||
### Root 密钥
|
||||
|
||||
管理 Root 用户的 SSH 密钥:
|
||||
|
||||
- **查看密钥**:查看当前配置的公钥
|
||||
- **下载**:下载私钥文件
|
||||
|
||||
::: tip 安全建议
|
||||
推荐使用密钥登录并禁用密码,可以显著提高服务器安全性。
|
||||
:::
|
||||
98
en/advanced/toolbox/system.md
Normal file
@@ -0,0 +1,98 @@
|
||||
# 系统
|
||||
|
||||
系统页面提供服务器基础配置的管理功能,包括 DNS、SWAP、主机名和时间设置。
|
||||
|
||||
## DNS
|
||||
|
||||
配置系统的 DNS 服务器。
|
||||
|
||||

|
||||
|
||||
### 配置项
|
||||
|
||||
- **DNS1**:主 DNS 服务器地址
|
||||
- **DNS2**:辅 DNS 服务器地址
|
||||
|
||||
### 常用 DNS 服务器
|
||||
|
||||
| 服务商 | DNS1 | DNS2 |
|
||||
|--------|------|------|
|
||||
| 阿里云 | 223.5.5.5 | 223.6.6.6 |
|
||||
| 腾讯云 | 119.29.29.29 | 119.28.28.28 |
|
||||
| 114 DNS | 114.114.114.114 | 114.114.115.115 |
|
||||
| Google | 8.8.8.8 | 8.8.4.4 |
|
||||
| Cloudflare | 1.1.1.1 | 1.0.0.1 |
|
||||
|
||||
## SWAP
|
||||
|
||||
管理系统的 SWAP 交换空间。
|
||||
|
||||

|
||||
|
||||
页面显示当前 SWAP 使用情况:
|
||||
- 系统总计
|
||||
- 已使用
|
||||
- 可用
|
||||
|
||||
### 配置面板 SWAP
|
||||
|
||||
设置面板管理的 SWAP 文件大小(单位:MB)。
|
||||
|
||||
- 设置为 `0` 表示禁用面板 SWAP
|
||||
- 建议根据服务器内存大小设置,通常为内存的 1-2 倍
|
||||
|
||||
::: tip 提示
|
||||
SWAP 可以在物理内存不足时提供额外的虚拟内存,但性能低于物理内存。对于内存充足的服务器,可以不启用 SWAP。
|
||||
:::
|
||||
|
||||
## 主机
|
||||
|
||||
配置系统主机名和 Hosts 文件。
|
||||
|
||||

|
||||
|
||||
### 系统主机名
|
||||
|
||||
修改服务器的主机名,例如 `myserver`、`web-01` 等。
|
||||
|
||||
### Hosts
|
||||
|
||||
编辑系统的 `/etc/hosts` 文件,用于配置本地域名解析。
|
||||
|
||||
常见用途:
|
||||
- 屏蔽特定域名
|
||||
- 配置本地开发域名
|
||||
- 加速特定域名的解析
|
||||
|
||||
## 时间
|
||||
|
||||
配置系统时区和时间同步。
|
||||
|
||||

|
||||
|
||||
### 选择时区
|
||||
|
||||
从下拉列表中选择服务器所在的时区,例如 `Asia/Shanghai`。
|
||||
|
||||
### 修改时间
|
||||
|
||||
手动设置系统时间。
|
||||
|
||||
::: warning 注意
|
||||
手动更改时间后,系统自动时间同步可能仍会覆盖设置。
|
||||
:::
|
||||
|
||||
### NTP 服务器
|
||||
|
||||
配置 NTP 时间同步服务器。留空则使用系统默认服务器。
|
||||
|
||||
常用 NTP 服务器:
|
||||
- `ntp.aliyun.com` - 阿里云
|
||||
- `ntp.tencent.com` - 腾讯云
|
||||
- `cn.pool.ntp.org` - 中国 NTP 池
|
||||
|
||||
### 操作按钮
|
||||
|
||||
- **配置默认服务器**:恢复使用系统默认的 NTP 服务器
|
||||
- **保存**:保存时区和时间设置
|
||||
- **同步时间**:立即与 NTP 服务器同步时间
|
||||
80
en/advanced/toolbox/webhook.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# Web 钩子
|
||||
|
||||
Web 钩子(Webhook)允许你通过 HTTP 请求触发服务器上的脚本执行,实现自动化部署、CI/CD 集成等功能。
|
||||
|
||||

|
||||
|
||||
## 创建 Web 钩子
|
||||
|
||||
点击 **创建 Web 钩子** 按钮,填写以下信息:
|
||||
|
||||

|
||||
|
||||
- **名称**:Web 钩子的名称,用于标识用途
|
||||
- **用户**:执行脚本的系统用户,默认为 root
|
||||
- **原始输出**:开启后返回脚本的原始输出,关闭则返回 JSON 格式
|
||||
- **脚本**:要执行的 Shell 脚本内容
|
||||
|
||||
## 使用方式
|
||||
|
||||
创建完成后,系统会生成一个唯一的 Key。通过访问以下 URL 即可触发脚本执行:
|
||||
|
||||
```
|
||||
https://your-panel-domain/api/webhook/{key}
|
||||
```
|
||||
|
||||
支持 GET 和 POST 请求。
|
||||
|
||||
## 应用场景
|
||||
|
||||
### Git 自动部署
|
||||
|
||||
配合 GitHub/GitLab 的 Webhook 功能,实现代码推送后自动部署:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
cd /opt/ace/projects/myproject
|
||||
git pull origin main
|
||||
npm install
|
||||
npm run build
|
||||
```
|
||||
|
||||
### 定时任务触发
|
||||
|
||||
通过外部服务(如监控系统)触发特定操作:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# 清理临时文件
|
||||
rm -rf /tmp/cache/*
|
||||
# 重启服务
|
||||
systemctl restart myapp
|
||||
```
|
||||
|
||||
### CI/CD 集成
|
||||
|
||||
在 CI/CD 流水线中调用 Webhook 完成部署:
|
||||
|
||||
```bash
|
||||
# 在 CI 脚本中
|
||||
curl -X POST https://panel.example.com/api/webhook/your-key
|
||||
```
|
||||
|
||||
## 列表说明
|
||||
|
||||
| 字段 | 说明 |
|
||||
|------|------|
|
||||
| 名称 | Web 钩子名称 |
|
||||
| Key | 唯一标识,用于构建调用 URL |
|
||||
| 运行用户 | 执行脚本的系统用户 |
|
||||
| 原始输出 | 是否返回原始文本输出 |
|
||||
| 已启用 | 是否启用该 Web 钩子 |
|
||||
| 调用次数 | 累计被调用的次数 |
|
||||
| 最后调用 | 最后一次调用时间 |
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. Key 是敏感信息,不要泄露给不信任的人
|
||||
2. 脚本以指定用户身份执行,注意权限控制
|
||||
3. 建议在脚本中添加必要的错误处理
|
||||
4. 可以通过禁用开关临时停用 Web 钩子
|
||||
66
en/advanced/website.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# 网站
|
||||
|
||||
网站模块用于管理 Web 服务器上的站点配置。AcePanel 支持三种类型的网站:反向代理、PHP 和纯静态。
|
||||
|
||||
## 前置要求
|
||||
|
||||
使用网站功能前,需要先安装 Web 服务器:
|
||||
|
||||
1. 进入 **应用** > **原生应用**
|
||||
2. 安装 Nginx、OpenResty 或 Apache
|
||||
|
||||
## 网站类型
|
||||
|
||||
| 类型 | 说明 | 适用场景 |
|
||||
|------|------|----------|
|
||||
| [反向代理](./website/proxy) | 将请求转发到后端服务 | Node.js、Go、Java 等应用 |
|
||||
| [PHP](./website/php) | 运行 PHP 程序 | WordPress、Laravel 等 |
|
||||
| [纯静态](./website/static) | 托管静态文件 | HTML、Vue/React 构建产物 |
|
||||
|
||||
## 网站列表
|
||||
|
||||
网站列表显示以下信息:
|
||||
|
||||
- **网站名称**:站点的唯一标识
|
||||
- **运行中**:站点是否启用
|
||||
- **目录**:网站文件所在目录
|
||||
- **HTTPS**:是否启用 HTTPS
|
||||
- **证书有效期**:SSL 证书的到期时间
|
||||
- **备注**:自定义备注信息
|
||||
- **操作**:管理、删除等
|
||||
|
||||
## 创建网站
|
||||
|
||||
1. 进入 **网站** 页面
|
||||
2. 选择网站类型标签(反向代理/PHP/纯静态)
|
||||
3. 点击 **创建网站**
|
||||
4. 填写网站信息
|
||||
5. 点击创建
|
||||
|
||||
### 通用配置项
|
||||
|
||||
- **名称**:网站的唯一标识,只能使用英文,创建后不可修改
|
||||
- **域名**:绑定的域名,可添加多个
|
||||
- **端口**:监听的端口,默认 80
|
||||
- **备注**:可选的备注信息
|
||||
|
||||
## 网站管理
|
||||
|
||||
点击网站的 **管理** 按钮进入管理页面,可以进行以下操作:
|
||||
|
||||
- 修改域名和端口
|
||||
- 配置 SSL 证书
|
||||
- 设置伪静态规则
|
||||
- 配置防盗链
|
||||
- 查看访问日志
|
||||
- 修改 Nginx 配置
|
||||
|
||||
## 批量创建
|
||||
|
||||
点击 **批量创建网站** 可以一次创建多个网站,适合需要快速部署多个站点的场景。
|
||||
|
||||
## 下一步
|
||||
|
||||
- [反向代理](./website/proxy) - 了解如何创建反向代理网站
|
||||
- [PHP 网站](./website/php) - 了解如何创建 PHP 网站
|
||||
- [纯静态网站](./website/static) - 了解如何创建静态网站
|
||||
123
en/advanced/website/php.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# PHP 网站
|
||||
|
||||
PHP 网站用于运行 PHP 程序,如 WordPress、Laravel、ThinkPHP 等。
|
||||
|
||||
## 前置要求
|
||||
|
||||
创建 PHP 网站前,需要先安装:
|
||||
|
||||
1. **Web 服务器**:Nginx、OpenResty 或 Apache
|
||||
2. **PHP 运行环境**:在 **应用** > **运行环境** 中安装所需的 PHP 版本
|
||||
|
||||
## 创建 PHP 网站
|
||||
|
||||
1. 进入 **网站** 页面
|
||||
2. 点击 **PHP** 标签
|
||||
3. 点击 **创建网站**
|
||||
|
||||
### 配置项
|
||||
|
||||
- **名称**:网站标识,如 `wordpress`
|
||||
- **域名**:绑定的域名,如 `blog.example.com`
|
||||
- **端口**:监听端口,默认 80
|
||||
- **PHP 版本**:选择已安装的 PHP 版本
|
||||
- **网站目录**:网站文件存放路径
|
||||
- **备注**:可选备注
|
||||
|
||||
## 编辑 PHP 网站
|
||||
|
||||
点击网站列表中的 **编辑** 按钮进入编辑页面。
|
||||
|
||||
### 域名和监听
|
||||
|
||||
配置网站的域名和监听端口。
|
||||
|
||||

|
||||
|
||||
### 基本设置
|
||||
|
||||
配置网站目录、PHP 版本等基本信息。
|
||||
|
||||

|
||||
|
||||
- **网站目录**:网站文件存放的绝对路径
|
||||
- **运行目录**:Laravel 等框架需要设置运行目录
|
||||
- **默认文档**:默认首页文件,如 `index.php`、`index.html`
|
||||
- **PHP 版本**:选择已安装的 PHP 版本
|
||||
- **防跨站攻击**:启用后限制 PHP 只能访问网站目录内的文件
|
||||
|
||||
### 伪静态配置
|
||||
|
||||
伪静态用于 URL 重写,支持常见 PHP 程序的预设规则。
|
||||
|
||||

|
||||
|
||||
点击预设下拉框可以选择常见程序的伪静态规则:
|
||||
|
||||

|
||||
|
||||
支持的预设包括:WordPress、Laravel、ThinkPHP、Discuz、Drupal、ECShop 等常见 PHP 程序。
|
||||
|
||||
## 网站目录结构
|
||||
|
||||
创建网站后,默认目录结构:
|
||||
|
||||
```
|
||||
/opt/ace/sites/网站名称/public
|
||||
├── index.php # 入口文件
|
||||
├── .user.ini # PHP 配置
|
||||
└── ...
|
||||
```
|
||||
|
||||
## PHP 版本切换
|
||||
|
||||
在网站编辑页面的 **基本设置** 中可以切换 PHP 版本:
|
||||
|
||||
1. 进入网站编辑页面
|
||||
2. 点击 **基本设置** 标签
|
||||
3. 在 **PHP 版本** 下拉框中选择新版本
|
||||
4. 点击 **保存**
|
||||
|
||||
::: warning 注意
|
||||
切换 PHP 版本可能导致程序不兼容,请先在测试环境验证。
|
||||
:::
|
||||
|
||||
## PHP 配置
|
||||
|
||||
### php.ini 配置
|
||||
|
||||
在 **应用** > **原生应用** > **PHP** 管理页面可以修改 php.ini 配置。
|
||||
|
||||
常用配置项:
|
||||
|
||||
```ini
|
||||
upload_max_filesize = 50M # 最大上传文件大小
|
||||
post_max_size = 50M # POST 数据最大大小
|
||||
max_execution_time = 300 # 最大执行时间
|
||||
memory_limit = 256M # 内存限制
|
||||
```
|
||||
|
||||
### 禁用函数
|
||||
|
||||
PHP 默认禁用了一些危险函数,如 `exec`、`system`、`passthru` 等。如需启用,请在 php.ini 中修改 `disable_functions` 配置。
|
||||
|
||||
::: danger 警告
|
||||
启用危险函数可能带来安全风险,请谨慎操作。
|
||||
:::
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 502 Bad Gateway
|
||||
|
||||
- 检查 PHP-FPM 是否正常运行
|
||||
- 检查 PHP 版本是否正确配置
|
||||
|
||||
### 文件上传失败
|
||||
|
||||
- 检查 `upload_max_filesize` 和 `post_max_size` 配置
|
||||
- 检查目录权限
|
||||
|
||||
### 页面空白
|
||||
|
||||
- 开启 PHP 错误显示
|
||||
- 查看 PHP 错误日志
|
||||
135
en/advanced/website/proxy.md
Normal file
@@ -0,0 +1,135 @@
|
||||
# 反向代理
|
||||
|
||||
反向代理网站用于将外部请求转发到后端服务,常用于部署 Node.js、Go、Java、Python 等应用。
|
||||
|
||||
## 工作原理
|
||||
|
||||
```
|
||||
用户请求 -> Nginx (反向代理) -> 后端应用 (如 localhost:3000)
|
||||
```
|
||||
|
||||
Nginx 接收用户的 HTTP/HTTPS 请求,然后将请求转发到指定的后端地址。
|
||||
|
||||
## 创建反向代理网站
|
||||
|
||||
1. 进入 **网站** 页面
|
||||
2. 确保选中 **反向代理** 标签
|
||||
3. 点击 **创建网站**
|
||||
|
||||
### 配置项
|
||||
|
||||
- **名称**:网站标识,如 `myapp`
|
||||
- **域名**:绑定的域名,如 `app.example.com`
|
||||
- **端口**:监听端口,默认 80
|
||||
- **代理目标**:后端服务地址,如 `http://127.0.0.1:3000`
|
||||
- **备注**:可选备注
|
||||
|
||||
### 代理目标格式
|
||||
|
||||
```
|
||||
http://127.0.0.1:3000 # 本地服务
|
||||
http://localhost:8080 # 本地服务
|
||||
http://172.18.0.2:80 # Docker 容器
|
||||
https://backend.internal # 内部 HTTPS 服务
|
||||
```
|
||||
|
||||
## 编辑反向代理网站
|
||||
|
||||
点击网站列表中的 **编辑** 按钮进入编辑页面。
|
||||
|
||||
### 域名和监听
|
||||
|
||||
配置网站的域名和监听端口,支持添加多个域名和端口。
|
||||
|
||||

|
||||
|
||||
- **域名**:可添加多个域名
|
||||
- **监听地址**:可配置多个端口,支持 HTTPS 和 QUIC(HTTP3)
|
||||
|
||||
### 上游配置
|
||||
|
||||
上游(Upstream)定义了后端服务器地址,支持配置多个后端实现负载均衡。
|
||||
|
||||

|
||||
|
||||
- **上游名称**:上游的标识名称
|
||||
- **负载均衡算法**:支持轮询(默认)、IP Hash 等算法
|
||||
- **保持活动连接**:与后端保持的长连接数量
|
||||
- **DNS 解析器**:自定义 DNS 解析器
|
||||
|
||||
点击 **添加服务器** 按钮可以添加后端服务器:
|
||||
|
||||

|
||||
|
||||
- **服务器地址**:后端服务器地址,如 `127.0.0.1:8080`
|
||||
- **选项**:可选参数,如 `weight=5`(权重)、`backup`(备用服务器)等
|
||||
|
||||
### 代理配置
|
||||
|
||||
配置代理行为和请求头传递。
|
||||
|
||||

|
||||
|
||||
- **匹配类型**:匹配类型,如前缀匹配、正则匹配等
|
||||
- **匹配表达式**:匹配的 URL 表达式
|
||||
- **代理目标**:填写上游名称或直接填写后端地址
|
||||
- **启用缓存**:是否启用代理缓存
|
||||
- **启用缓冲区**:是否启用缓冲区,AI 应用建议关闭否则可能影响流式输出
|
||||
- **代理 SNI**:是否启用 SNI(仅 HTTPS 代理有效)
|
||||
- **自定义请求头**:添加或修改传递给后端的请求头
|
||||
- **响应内容替换**:可替换响应内容中的字符串
|
||||
|
||||
## 使用场景
|
||||
|
||||
### Node.js 应用
|
||||
|
||||
```bash
|
||||
# 启动 Node.js 应用
|
||||
node app.js # 监听 3000 端口
|
||||
```
|
||||
|
||||
代理目标:`http://127.0.0.1:3000`
|
||||
|
||||
### Docker 容器
|
||||
|
||||
如果后端是 Docker 容器,可以使用容器的 IP 地址或容器名称(同一网络内)。
|
||||
|
||||
代理目标:`http://容器名:端口` 或 `http://容器IP:端口`
|
||||
|
||||
### 多个后端(负载均衡)
|
||||
|
||||
在上游配置中添加多个后端地址,实现负载均衡。
|
||||
|
||||
代理目标:`http://上游名称`
|
||||
|
||||
## 常见配置
|
||||
|
||||
### WebSocket 支持
|
||||
|
||||
反向代理默认支持 WebSocket,无需额外配置。
|
||||
|
||||
### 传递真实 IP
|
||||
|
||||
AcePanel 会自动配置以下请求头,将用户真实 IP 传递给后端:
|
||||
|
||||
- `X-Real-IP`
|
||||
- `X-Forwarded-For`
|
||||
- `X-Forwarded-Proto`
|
||||
|
||||
### 自定义配置
|
||||
|
||||
在网站管理页面可以编辑 Nginx 配置,添加自定义配置:
|
||||
|
||||
```nginx
|
||||
proxy_connect_timeout 60s;
|
||||
proxy_read_timeout 60s;
|
||||
proxy_send_timeout 60s;
|
||||
proxy_buffer_size 64k;
|
||||
proxy_buffers 4 64k;
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 确保后端服务已启动并监听指定端口
|
||||
2. 如果后端是 Docker 容器,确保端口已正确映射或使用 Docker 网络
|
||||
3. 后端服务崩溃时,Nginx 会返回 502 错误
|
||||
119
en/advanced/website/static.md
Normal file
@@ -0,0 +1,119 @@
|
||||
# 纯静态网站
|
||||
|
||||
纯静态网站用于托管 HTML、CSS、JavaScript 等静态文件,适合部署前端项目构建产物、文档站点等。
|
||||
|
||||
## 创建静态网站
|
||||
|
||||
1. 进入 **网站** 页面
|
||||
2. 点击 **纯静态** 标签
|
||||
3. 点击 **创建网站**
|
||||
|
||||
### 配置项
|
||||
|
||||
- **名称**:网站标识,如 `docs`
|
||||
- **域名**:绑定的域名,如 `docs.example.com`
|
||||
- **端口**:监听端口,默认 80
|
||||
- **网站目录**:静态文件存放路径
|
||||
- **备注**:可选备注
|
||||
|
||||
## 编辑静态网站
|
||||
|
||||
点击网站列表中的 **编辑** 按钮进入编辑页面。
|
||||
|
||||
### 域名和监听
|
||||
|
||||
配置网站的域名和监听端口。
|
||||
|
||||

|
||||
|
||||
### 高级设置
|
||||
|
||||
配置网站目录、默认文档等高级选项。
|
||||
|
||||

|
||||
|
||||
- **网站目录**:静态文件存放的绝对路径
|
||||
- **默认文档**:默认首页文件,如 `index.html`
|
||||
|
||||
### 自定义配置(伪静态)
|
||||
|
||||
在 **自定义配置** 标签中可以添加 Nginx 配置,用于 URL 重写等功能。
|
||||
|
||||

|
||||
|
||||
点击 **添加自定义配置** 按钮可以添加配置:
|
||||
|
||||

|
||||
|
||||
- **名称**:配置名称,支持字母、数字、下划线、破折号
|
||||
- **范围**:配置生效范围,可选择"此网站"或"全局"
|
||||
- **内容**:Nginx 配置内容,如 `location` 块
|
||||
|
||||
## 适用场景
|
||||
|
||||
### 前端项目
|
||||
|
||||
Vue、React、Angular 等前端框架的构建产物:
|
||||
|
||||
```bash
|
||||
# Vue 项目
|
||||
npm run build
|
||||
# 将 dist 目录内容上传到网站目录
|
||||
|
||||
# React 项目
|
||||
npm run build
|
||||
# 将 build 目录内容上传到网站目录
|
||||
```
|
||||
|
||||
### 文档站点
|
||||
|
||||
VitePress、Docusaurus、Hugo 等静态站点生成器:
|
||||
|
||||
```bash
|
||||
# VitePress
|
||||
npm run docs:build
|
||||
# 将 .vitepress/dist 目录内容上传到网站目录
|
||||
```
|
||||
|
||||
### 单页应用(SPA)
|
||||
|
||||
单页应用需要配置伪静态规则,将所有路由指向 index.html。在 **自定义配置** 中添加:
|
||||
|
||||
```nginx
|
||||
location / {
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
```
|
||||
|
||||
## 目录结构
|
||||
|
||||
典型的静态网站目录结构:
|
||||
|
||||
```
|
||||
/opt/ace/sites/网站名称/public
|
||||
├── index.html # 首页
|
||||
├── assets/ # 静态资源
|
||||
│ ├── css/
|
||||
│ ├── js/
|
||||
│ └── images/
|
||||
├── favicon.ico # 网站图标
|
||||
└── ...
|
||||
```
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 404 错误
|
||||
|
||||
- 检查文件是否存在于网站目录
|
||||
- 检查文件名大小写(Linux 区分大小写)
|
||||
- 单页应用需要配置伪静态规则
|
||||
|
||||
### 资源加载失败
|
||||
|
||||
- 检查资源路径是否正确
|
||||
- 检查是否使用了绝对路径
|
||||
- 检查 CORS 配置
|
||||
|
||||
### 中文文件名乱码
|
||||
|
||||
- 确保文件使用 UTF-8 编码
|
||||
505
en/cert.md
@@ -1,212 +1,369 @@
|
||||
---
|
||||
sidebar: false
|
||||
aside: false
|
||||
prev: false
|
||||
next: false
|
||||
---
|
||||
|
||||
# Certificates
|
||||
|
||||
If the 3-month free certificate cannot meet your needs, you can choose to purchase higher-level certificates. We offer DV single-domain certificates and DV wildcard certificates for your selection.
|
||||
|
||||
Due to pricing policy restrictions, please contact our sales team directly through the group link in the upper right corner for specific prices and purchases.
|
||||
|
||||
<style>
|
||||
.cert-cards-container {
|
||||
display: flex;
|
||||
gap: 20px;
|
||||
margin-bottom: 40px;
|
||||
.cert-hero {
|
||||
text-align: center;
|
||||
padding: 40px 0 60px;
|
||||
}
|
||||
|
||||
.cert-hero h1 {
|
||||
font-size: 36px;
|
||||
margin-bottom: 16px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.cert-hero p {
|
||||
font-size: 18px;
|
||||
opacity: 0.8;
|
||||
max-width: 600px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.cert-cards {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 24px;
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.cert-cards {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.cert-card {
|
||||
flex: 1;
|
||||
padding: 24px;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.cert-card-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.cert-card-title {
|
||||
margin: 0!important;
|
||||
border-top: unset!important;
|
||||
padding-top: unset!important;
|
||||
min-height: 60px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.cert-subtitle {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.cert-price {
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.cert-price span {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.cert-features {
|
||||
margin-bottom: 24px;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.cert-feature-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.cert-buy-button {
|
||||
color: white;
|
||||
width: 100%;
|
||||
padding: 12px;
|
||||
background: #4080ff;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
font-size: 16px;
|
||||
margin-top: auto;
|
||||
}
|
||||
|
||||
.cert-buy-button:hover {
|
||||
background: #3570e0;
|
||||
}
|
||||
|
||||
.cert-features-section {
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.cert-features-grid {
|
||||
display: grid;
|
||||
}
|
||||
|
||||
.cert-card {
|
||||
position: relative;
|
||||
padding: 32px;
|
||||
border-radius: 16px;
|
||||
background: var(--vp-c-bg-soft);
|
||||
border: 1px solid var(--vp-c-divider);
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.cert-card:hover {
|
||||
transform: translateY(-4px);
|
||||
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
|
||||
border-color: var(--vp-c-brand);
|
||||
}
|
||||
|
||||
.cert-card.featured {
|
||||
border: 2px solid var(--vp-c-brand);
|
||||
}
|
||||
|
||||
.cert-card.featured::before {
|
||||
content: "推荐";
|
||||
position: absolute;
|
||||
top: -12px;
|
||||
right: 24px;
|
||||
background: var(--vp-c-brand);
|
||||
color: white;
|
||||
padding: 4px 16px;
|
||||
border-radius: 20px;
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.cert-card-icon {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 12px;
|
||||
background: var(--vp-c-brand);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 24px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.cert-card h3 {
|
||||
font-size: 22px;
|
||||
margin: 0 0 8px 0;
|
||||
border: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.cert-card-desc {
|
||||
font-size: 14px;
|
||||
opacity: 0.7;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.cert-price {
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.cert-price-value {
|
||||
font-size: 42px;
|
||||
font-weight: 700;
|
||||
color: var(--vp-c-brand);
|
||||
}
|
||||
|
||||
.cert-price-unit {
|
||||
font-size: 16px;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.cert-features {
|
||||
margin-bottom: 28px;
|
||||
}
|
||||
|
||||
.cert-feature {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
padding: 10px 0;
|
||||
border-bottom: 1px solid var(--vp-c-divider);
|
||||
}
|
||||
|
||||
.cert-feature:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.cert-feature-check {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 50%;
|
||||
background: #10b981;
|
||||
color: white;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 12px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.cert-card a.cert-btn {
|
||||
display: block !important;
|
||||
width: 100% !important;
|
||||
padding: 14px 24px !important;
|
||||
border-radius: 8px !important;
|
||||
font-size: 16px !important;
|
||||
font-weight: 600 !important;
|
||||
text-align: center !important;
|
||||
text-decoration: none !important;
|
||||
transition: all 0.2s ease !important;
|
||||
cursor: pointer !important;
|
||||
background: var(--vp-c-bg-soft) !important;
|
||||
color: var(--vp-c-text-1) !important;
|
||||
border: 1px solid var(--vp-c-divider) !important;
|
||||
}
|
||||
|
||||
.cert-card a.cert-btn:hover {
|
||||
border-color: var(--vp-c-brand) !important;
|
||||
color: var(--vp-c-brand) !important;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.cert-card.featured a.cert-btn {
|
||||
background: var(--vp-c-brand) !important;
|
||||
color: white !important;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.cert-card.featured a.cert-btn:hover {
|
||||
opacity: 0.9 !important;
|
||||
transform: translateY(-1px) !important;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
.cert-why {
|
||||
margin-top: 60px;
|
||||
}
|
||||
|
||||
.cert-why h2 {
|
||||
text-align: center;
|
||||
font-size: 28px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.cert-why-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
gap: 24px;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.cert-why-grid {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 24px;
|
||||
}
|
||||
|
||||
.cert-feature-card {
|
||||
display: flex;
|
||||
gap: 16px;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.cert-feature-icon {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.cert-feature-content h3 {
|
||||
margin: 8px 0!important;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.cert-feature-content p {
|
||||
line-height: 1.5;
|
||||
}
|
||||
}
|
||||
|
||||
.cert-why-item {
|
||||
text-align: center;
|
||||
padding: 24px 16px;
|
||||
border-radius: 12px;
|
||||
background: var(--vp-c-bg-soft);
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.cert-why-item:hover {
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.cert-why-icon {
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
margin: 0 auto 16px;
|
||||
border-radius: 14px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
.cert-why-icon.shield { background: #3b82f6; }
|
||||
.cert-why-icon.bolt { background: #f59e0b; }
|
||||
.cert-why-icon.globe { background: #10b981; }
|
||||
.cert-why-icon.support { background: #8b5cf6; }
|
||||
|
||||
.cert-why-item h4 {
|
||||
font-size: 16px;
|
||||
margin: 0 0 8px 0;
|
||||
}
|
||||
|
||||
.cert-why-item p {
|
||||
font-size: 14px;
|
||||
opacity: 0.7;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.cert-contact {
|
||||
margin-top: 60px;
|
||||
text-align: center;
|
||||
padding: 40px;
|
||||
border-radius: 16px;
|
||||
background: var(--vp-c-brand);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.cert-contact h3 {
|
||||
font-size: 24px;
|
||||
margin: 0 0 12px 0;
|
||||
color: white;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.cert-contact p {
|
||||
opacity: 0.9;
|
||||
margin: 0 0 24px 0;
|
||||
}
|
||||
|
||||
.cert-contact-btn {
|
||||
display: inline-block;
|
||||
padding: 12px 32px;
|
||||
background: white;
|
||||
color: var(--vp-c-brand);
|
||||
border-radius: 8px;
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.cert-contact-btn:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
</style>
|
||||
|
||||
## Choose Certificates
|
||||
<div class="cert-hero">
|
||||
<h1>SSL 证书服务</h1>
|
||||
<p>免费证书有效期仅 3 个月且需要频繁续签,付费证书一年有效期,省心省力</p>
|
||||
</div>
|
||||
|
||||
<div class="cert-cards-container">
|
||||
<div class="cert-cards">
|
||||
<div class="cert-card">
|
||||
<div class="cert-card-header">
|
||||
<h2 class="cert-card-title">DV Single-domain Certificate</h2>
|
||||
<div class="cert-card-icon">🔒</div>
|
||||
<h3>DV 单域名证书</h3>
|
||||
<div class="cert-card-desc">适合单个网站使用</div>
|
||||
<div class="cert-price">
|
||||
<span class="cert-price-value">¥1X</span>
|
||||
<span class="cert-price-unit"> / 年</span>
|
||||
</div>
|
||||
<div class="cert-subtitle">Internationally recognized brand certificate</div>
|
||||
<div class="cert-price">¥ 1X<span>/year</span></div>
|
||||
<div class="cert-features">
|
||||
<div class="cert-feature-item">
|
||||
<span class="cert-check-icon">✓</span>
|
||||
<span>Domain Validation (DV) Certificate</span>
|
||||
<div class="cert-feature">
|
||||
<span class="cert-feature-check">✓</span>
|
||||
<span>域名验证 (DV) 证书</span>
|
||||
</div>
|
||||
<div class="cert-feature-item">
|
||||
<span class="cert-check-icon">✓</span>
|
||||
<span>Supports one domain</span>
|
||||
<div class="cert-feature">
|
||||
<span class="cert-feature-check">✓</span>
|
||||
<span>保护单个域名</span>
|
||||
</div>
|
||||
<div class="cert-feature-item">
|
||||
<span class="cert-check-icon">✓</span>
|
||||
<span>One-year validity</span>
|
||||
<div class="cert-feature">
|
||||
<span class="cert-feature-check">✓</span>
|
||||
<span>一年有效期</span>
|
||||
</div>
|
||||
<div class="cert-feature-item">
|
||||
<span class="cert-check-icon">✓</span>
|
||||
<span>Rapid issuance</span>
|
||||
<div class="cert-feature">
|
||||
<span class="cert-feature-check">✓</span>
|
||||
<span>国际认可品牌</span>
|
||||
</div>
|
||||
</div>
|
||||
<button class="cert-buy-button">Contact sales in the upper right corner</button>
|
||||
<a href="https://jq.qq.com/?_wv=1027&k=I1oJKSTH" target="_blank" class="cert-btn cert-btn-secondary">联系购买</a>
|
||||
</div>
|
||||
<div class="cert-card">
|
||||
<div class="cert-card-header">
|
||||
<h2 class="cert-card-title">DV Wildcard Certificate</h2>
|
||||
|
||||
<div class="cert-card featured">
|
||||
<div class="cert-card-icon">🛡️</div>
|
||||
<h3>DV 泛域名证书</h3>
|
||||
<div class="cert-card-desc">一张证书保护所有子域名</div>
|
||||
<div class="cert-price">
|
||||
<span class="cert-price-value">¥1XX</span>
|
||||
<span class="cert-price-unit"> / 年</span>
|
||||
</div>
|
||||
<div class="cert-subtitle">Internationally recognized brand certificate</div>
|
||||
<div class="cert-price">¥ 1XX<span>/year</span></div>
|
||||
<div class="cert-features">
|
||||
<div class="cert-feature-item">
|
||||
<span class="cert-check-icon">✓</span>
|
||||
<span>Domain Validation (DV) Certificate</span>
|
||||
<div class="cert-feature">
|
||||
<span class="cert-feature-check">✓</span>
|
||||
<span>域名验证 (DV) 证书</span>
|
||||
</div>
|
||||
<div class="cert-feature-item">
|
||||
<span class="cert-check-icon">✓</span>
|
||||
<span>Covers all subdomains</span>
|
||||
<div class="cert-feature">
|
||||
<span class="cert-feature-check">✓</span>
|
||||
<span>保护所有子域名 (*.domain.com)</span>
|
||||
</div>
|
||||
<div class="cert-feature-item">
|
||||
<span class="cert-check-icon">✓</span>
|
||||
<span>One-year validity</span>
|
||||
<div class="cert-feature">
|
||||
<span class="cert-feature-check">✓</span>
|
||||
<span>一年有效期</span>
|
||||
</div>
|
||||
<div class="cert-feature-item">
|
||||
<span class="cert-check-icon">✓</span>
|
||||
<span>Rapid issuance</span>
|
||||
<div class="cert-feature">
|
||||
<span class="cert-feature-check">✓</span>
|
||||
<span>国际认可品牌</span>
|
||||
</div>
|
||||
</div>
|
||||
<button class="cert-buy-button">Contact sales in the upper right corner</button>
|
||||
<a href="https://jq.qq.com/?_wv=1027&k=I1oJKSTH" target="_blank" class="cert-btn cert-btn-primary">联系购买</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Certificate Features
|
||||
|
||||
<div class="cert-features-section">
|
||||
<div class="cert-features-grid">
|
||||
<div class="cert-feature-card">
|
||||
<div class="cert-feature-icon">🛡️</div>
|
||||
<div class="cert-feature-content">
|
||||
<h3>Safe and Reliable</h3>
|
||||
<p>Uses international standards to protect website security</p>
|
||||
</div>
|
||||
<div class="cert-why">
|
||||
<h2>为什么选择付费证书</h2>
|
||||
<div class="cert-why-grid">
|
||||
<div class="cert-why-item">
|
||||
<div class="cert-why-icon shield">🔐</div>
|
||||
<h4>更长有效期</h4>
|
||||
<p>一年有效期,无需频繁续签</p>
|
||||
</div>
|
||||
<div class="cert-feature-card">
|
||||
<div class="cert-feature-icon">⚡</div>
|
||||
<div class="cert-feature-content">
|
||||
<h3>Rapid Issuance</h3>
|
||||
<p>Simplified issuance process for quick certificate delivery</p>
|
||||
</div>
|
||||
<div class="cert-why-item">
|
||||
<div class="cert-why-icon bolt">⚡</div>
|
||||
<h4>快速签发</h4>
|
||||
<p>付款后快速完成签发</p>
|
||||
</div>
|
||||
<div class="cert-feature-card">
|
||||
<div class="cert-feature-icon">💳</div>
|
||||
<div class="cert-feature-content">
|
||||
<h3>Flexible Payment</h3>
|
||||
<p>Multiple specifications available to meet different needs</p>
|
||||
</div>
|
||||
<div class="cert-why-item">
|
||||
<div class="cert-why-icon globe">🌐</div>
|
||||
<h4>国际品牌</h4>
|
||||
<p>全球浏览器信任</p>
|
||||
</div>
|
||||
<div class="cert-feature-card">
|
||||
<div class="cert-feature-icon">👨💻</div>
|
||||
<div class="cert-feature-content">
|
||||
<h3>Professional Service</h3>
|
||||
<p>Professional technical support ensures worry-free usage</p>
|
||||
</div>
|
||||
<div class="cert-why-item">
|
||||
<div class="cert-why-icon support">💬</div>
|
||||
<h4>专业支持</h4>
|
||||
<p>遇到问题随时咨询</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cert-contact">
|
||||
<h3>需要帮助?</h3>
|
||||
<p>如有任何问题,欢迎加入 QQ 群咨询</p>
|
||||
<a href="https://jq.qq.com/?_wv=1027&k=I1oJKSTH" target="_blank" class="cert-contact-btn">加入 QQ 群 12370907</a>
|
||||
</div>
|
||||
|
||||
@@ -1,11 +1,73 @@
|
||||
## Supervisor 常见问题
|
||||
# 应用常见问题
|
||||
|
||||
> 启动项目报错`run supervisorctl start xxx failed`,日志中有`EACCES`之类信息
|
||||
## PHP 模块安装
|
||||
|
||||
这是权限问题,项目建议部署在面板安装目录(/opt/ace)下,而不是/root,如果你执意要部署在/root,则需要使用root用户启动应用并自行承担可能的风险。
|
||||
如果已经移至安装目录下仍报错,请检查项目的所有者和用户组是否为www。
|
||||
「应用」->「运行环境」->「PHP」->「管理」->「模块」,安装需要的模块。
|
||||
|
||||
> 启动项目报错`run supervisorctl start xxx failed`,日志中有`'node': No such file or directory`或`'npm': No such file or directory`之类信息
|
||||
部分模块需要编译安装,耗时较长,可在「任务」页面查看进度。
|
||||
|
||||
如果你的Node.js是通过nvm之类的安装的(官方安装法),那么默认是找不到Node.js和npm的(没有链接到/usr/local/bin),这种情况下需要在Supervisor管理器编辑配置文件,末尾换行添加`environment=PATH="/root/.nvm/versions/node/版本/bin:/usr/local/bin:/usr/bin:/bin"`补充Node.js位置。
|
||||
Node.js具体位置和版本可以通过`whereis nodejs`查看。
|
||||
## PHP 函数被禁用
|
||||
|
||||
默认禁用了部分高危函数。如需启用:
|
||||
|
||||
「应用」->「运行环境」->「PHP」->「管理」->「配置」
|
||||
|
||||
找到 `disable_functions`,删除需要启用的函数名。
|
||||
|
||||
::: warning 安全提示
|
||||
`exec`、`shell_exec`、`system` 等函数有安全风险,启用前需确认必要性。
|
||||
:::
|
||||
|
||||
## Nginx 配置错误
|
||||
|
||||
修改配置后 Nginx 无法启动,查看错误:
|
||||
|
||||
```shell
|
||||
nginx -t
|
||||
```
|
||||
|
||||
修复配置后重启:
|
||||
|
||||
```shell
|
||||
systemctl restart nginx
|
||||
```
|
||||
|
||||
## Supervisor 启动报错
|
||||
|
||||
### EACCES 权限错误
|
||||
|
||||
项目目录权限问题,确保目录所有者为 www:
|
||||
|
||||
```shell
|
||||
chown -R www:www /opt/ace/projects/项目名
|
||||
```
|
||||
|
||||
### 找不到 node/npm
|
||||
|
||||
通过 nvm 安装的 Node.js 不在默认 PATH 中。
|
||||
|
||||
「应用」->「Supervisor 管理器」->「管理」->「配置」,添加:
|
||||
|
||||
```ini
|
||||
environment=PATH="/root/.nvm/versions/node/v24.0.0/bin:/usr/local/bin:/usr/bin:/bin"
|
||||
```
|
||||
|
||||
版本号替换为实际安装的版本,可通过 `whereis node` 查看路径。
|
||||
|
||||
## 应用安装失败
|
||||
|
||||
1. 检查网络连接
|
||||
2. 查看「任务」页面的错误信息
|
||||
3. 尝试「应用」页面点击「更新缓存」后重试
|
||||
|
||||
## 应用无法卸载
|
||||
|
||||
有依赖关系的应用需要先卸载依赖它的应用。
|
||||
|
||||
如 phpMyAdmin 依赖 Nginx,需先卸载 phpMyAdmin。
|
||||
|
||||
## 多版本 PHP 共存
|
||||
|
||||
可同时安装多个 PHP 版本,在创建网站时选择对应版本。
|
||||
|
||||
已有网站切换版本:「编辑」->「基本设置」->「PHP 版本」。
|
||||
|
||||
@@ -1,27 +1,12 @@
|
||||
## Configure Container Image Acceleration
|
||||
# 容器常见问题
|
||||
|
||||
Due to certain reasons, domestic users in China may be unable to connect to Docker Hub to pull container images, thus requiring image acceleration configuration.
|
||||
## 镜像拉取失败
|
||||
|
||||
### For Podman
|
||||
国内服务器无法连接 Docker Hub,需配置镜像加速。
|
||||
|
||||
Open the Podman settings page in the Panel, and navigate to the Registry Configuration tab.
|
||||
### Docker
|
||||
|
||||
Scroll to the bottom of the configuration file, add the following configuration and save:
|
||||
|
||||
```
|
||||
[[registry]]
|
||||
location = "docker.io"
|
||||
[[registry.mirror]]
|
||||
location = "docker.1ms.run"
|
||||
```
|
||||
|
||||
Where docker.1ms.run is the configured image acceleration address. You can refer to other tutorials to set up and use it.
|
||||
|
||||
### For Docker
|
||||
|
||||
Open the Docker settings page in the Panel, and navigate to the Configuration tab.
|
||||
|
||||
Add the following configuration and save:
|
||||
「应用」->「Docker」->「管理」->「配置」,添加:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -29,4 +14,58 @@ Add the following configuration and save:
|
||||
}
|
||||
```
|
||||
|
||||
Where https://docker.1ms.run is the configured image acceleration address. You can refer to other tutorials to set up and use it.
|
||||
### Podman
|
||||
|
||||
「应用」->「Podman」->「管理」->「Registry 配置」,末尾添加:
|
||||
|
||||
```toml
|
||||
[[registry]]
|
||||
location = "docker.io"
|
||||
[[registry.mirror]]
|
||||
location = "docker.1ms.run"
|
||||
```
|
||||
|
||||
镜像加速地址可使用 [毫秒镜像](https://1ms.run/) 或其他服务。
|
||||
|
||||
## 编排启动失败
|
||||
|
||||
1. 点击「日志」查看错误信息
|
||||
2. 常见原因:
|
||||
- 端口被占用:修改映射端口
|
||||
- 镜像拉取失败:配置镜像加速
|
||||
- 配置错误:检查 docker-compose.yml 语法
|
||||
|
||||
## 容器无法访问
|
||||
|
||||
1. 检查容器是否运行:「容器」->「容器」列表查看状态
|
||||
2. 检查端口映射是否正确
|
||||
3. 检查防火墙是否放行映射的主机端口
|
||||
|
||||
## 容器内无法访问外网
|
||||
|
||||
检查 Docker 网络配置:
|
||||
|
||||
```shell
|
||||
docker network ls
|
||||
docker network inspect bridge
|
||||
```
|
||||
|
||||
## 数据持久化
|
||||
|
||||
容器删除后数据会丢失。使用卷挂载持久化数据:
|
||||
|
||||
在编排配置中添加 volumes:
|
||||
|
||||
```yaml
|
||||
volumes:
|
||||
- ./data:/app/data
|
||||
```
|
||||
|
||||
## 查看容器日志
|
||||
|
||||
```shell
|
||||
docker logs 容器名或ID
|
||||
docker logs -f 容器名或ID # 实时查看
|
||||
```
|
||||
|
||||
或在面板「容器」->「容器」列表点击「日志」。
|
||||
|
||||
@@ -1 +1,72 @@
|
||||
待补充完善
|
||||
# 数据库常见问题
|
||||
|
||||
## 忘记数据库密码
|
||||
|
||||
### MySQL/MariaDB/Percona
|
||||
|
||||
在面板「数据库」->「用户」中修改用户密码。
|
||||
|
||||
如果忘记 root 密码,可前往「应用」->「MySQL/MariaDB/Percona」->「管理」中查看/重置。
|
||||
|
||||
### PostgreSQL
|
||||
|
||||
在面板「数据库」->「用户」中修改用户密码。
|
||||
|
||||
如果忘记 postgres 用户密码,可前往「应用」->「PostgreSQL」->「管理」中查看/重置。
|
||||
|
||||
## 远程连接数据库
|
||||
|
||||
默认只允许本地连接。如需远程连接:
|
||||
|
||||
MySQL/MariaDB/Percona:
|
||||
|
||||
1. 在「数据库」->「用户」中,新建一个用户主机为 `%`(允许所有 IP)或指定 IP 的用户
|
||||
2. 在防火墙放行数据库端口 3306
|
||||
|
||||
PostgreSQL:
|
||||
|
||||
1. 前往「应用」->「PostgreSQL」->「管理」中编辑主配置找到`listen_addresses`,取消注释并将其值改为 `'*'`
|
||||
2. 在同一页面编辑用户配置,添加一行:`host all 用户名 (IP地址/掩码/all) scram-sha-256` 并保存
|
||||
3. 重启 PostgreSQL 服务
|
||||
4. 在防火墙放行数据库端口 5432
|
||||
|
||||
::: warning 安全提示
|
||||
不建议将数据库端口暴露到公网,建议使用 SSH 隧道或 VPN 连接。
|
||||
:::
|
||||
|
||||
## 连接被拒绝
|
||||
|
||||
1. 检查数据库服务是否运行
|
||||
2. 检查用户权限和主机设置
|
||||
3. 检查连接地址:本地连接用 `localhost` 或 `127.0.0.1`
|
||||
|
||||
## 导入大文件失败
|
||||
|
||||
phpMyAdmin 有上传限制。大文件建议用命令行导入:
|
||||
|
||||
```shell
|
||||
mysql -u 用户名 -p 数据库名 < 文件.sql
|
||||
```
|
||||
|
||||
或使用面板的文件管理上传后,在终端执行导入。
|
||||
|
||||
## 数据库备份
|
||||
|
||||
1. 「备份」->「创建备份」选择数据库
|
||||
2. 或使用命令行:
|
||||
|
||||
```shell
|
||||
# MySQL
|
||||
mysqldump -u 用户名 -p 数据库名 > backup.sql
|
||||
|
||||
# PostgreSQL
|
||||
pg_dump -U 用户名 数据库名 > backup.sql
|
||||
```
|
||||
|
||||
## 字符集问题
|
||||
|
||||
已有数据库修改字符集:
|
||||
|
||||
```sql
|
||||
ALTER DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
```
|
||||
|
||||
116
en/faq/panel.md
@@ -1,71 +1,99 @@
|
||||
## 面板打不开了怎么办?
|
||||
# 面板常见问题
|
||||
|
||||
不要慌,通常来说问题不大,按以下步骤操作即可:
|
||||
## 面板打不开
|
||||
|
||||
首先尝试 SSH 连接服务器,如果可以连接,进入下一步;如果无法连接,直接联系服务器提供商。
|
||||
SSH 登录服务器,检查面板状态:
|
||||
|
||||
通过 SSH 登录服务器后,首先检查 AcePanel 服务状态,执行以下命令:
|
||||
|
||||
```bash
|
||||
```shell
|
||||
acepanel status
|
||||
```
|
||||
|
||||
如果提示服务已停止,尝试启动服务并再次检查状态:
|
||||
如果服务已停止,启动它:
|
||||
|
||||
```bash
|
||||
acepanel start && sleep 3 && acepanel status
|
||||
```shell
|
||||
acepanel start
|
||||
```
|
||||
|
||||
如果服务无法启动,尝试修复面板并更新到最新版本:
|
||||
如果无法启动,尝试修复:
|
||||
|
||||
```bash
|
||||
```shell
|
||||
acepanel fix && acepanel update
|
||||
```
|
||||
|
||||
如果服务已启动但仍无法访问面板,使用 curl 命令检查面板是否在监听端口:
|
||||
服务正常但仍无法访问,检查防火墙:
|
||||
|
||||
```bash
|
||||
curl -I http://127.0.0.1:<your_panel_port>
|
||||
```
|
||||
```shell
|
||||
# 检查端口是否监听
|
||||
curl -I http://127.0.0.1:面板端口/
|
||||
|
||||
将 `<your_panel_port>` 替换为您面板实际使用的端口号(默认 8888)。如果返回 HTTP 200/307 状态码,说明面板服务正常运行,可能是防火墙或网络问题导致无法访问。
|
||||
|
||||
检查防火墙设置,确保面板端口已开放:
|
||||
|
||||
```bash
|
||||
firewall-cmd --list-all
|
||||
```
|
||||
|
||||
如果端口未开放,执行以下命令开放端口:
|
||||
|
||||
```bash
|
||||
firewall-cmd --add-port=<your_panel_port>/tcp --permanent
|
||||
# 放行端口(firewalld)
|
||||
firewall-cmd --add-port=面板端口/tcp --permanent
|
||||
firewall-cmd --reload
|
||||
```
|
||||
|
||||
服务器的安全组设置也可能阻止访问面板端口,请登录服务器提供商的控制台检查并确保面板端口已开放。
|
||||
云服务器还需检查安全组设置。
|
||||
|
||||
如果以上步骤均无法解决问题,建议查看面板日志获取更多信息或前往[社区发帖](https://tom.moe)联系支持获取帮助:
|
||||
查看面板日志排查问题:
|
||||
|
||||
```bash
|
||||
```shell
|
||||
journalctl -u acepanel -n 100
|
||||
cat /opt/ace/panel/storage/logs/app.log
|
||||
```
|
||||
|
||||
## 无权限执行 `acepanel` 命令
|
||||
## 忘记密码/用户名/地址
|
||||
|
||||
`acepanel` 命令必须以 root 用户运行。如果当前用户没有足够权限,请切换到 root 用户或使用 sudo 执行命令,例如:
|
||||
|
||||
```bash
|
||||
sudo acepanel status
|
||||
```
|
||||
|
||||
## 忘记面板管理员用户/密码/地址怎么办?
|
||||
|
||||
最快最简单的方法是使用命令行工具重新获取管理员用户信息,执行以下命令:
|
||||
|
||||
```bash
|
||||
```shell
|
||||
acepanel info
|
||||
```
|
||||
|
||||
该命令会输出面板的基本信息,包括管理员用户名、登录地址以及生成一个新的随机密码。
|
||||
输出面板地址、用户名,并生成新密码。
|
||||
|
||||
## 修改面板端口
|
||||
|
||||
```shell
|
||||
acepanel port 12345
|
||||
```
|
||||
|
||||
修改后需在服务器安全组/防火墙放行新端口。
|
||||
|
||||
## 关闭安全入口
|
||||
|
||||
如果忘记安全入口路径:
|
||||
|
||||
```shell
|
||||
acepanel entrance off
|
||||
```
|
||||
|
||||
## 关闭域名/IP 绑定
|
||||
|
||||
绑定后无法访问面板:
|
||||
|
||||
```shell
|
||||
acepanel bind-domain off
|
||||
acepanel bind-ip off
|
||||
```
|
||||
|
||||
## 关闭两步验证
|
||||
|
||||
```shell
|
||||
acepanel user 2fa admin
|
||||
```
|
||||
|
||||
## 证书错误
|
||||
|
||||
面板默认使用自签名证书,浏览器会提示不安全,点击「继续访问」即可。
|
||||
|
||||
申请正式证书:
|
||||
|
||||
```shell
|
||||
acepanel https generate
|
||||
```
|
||||
|
||||
需要确保服务器 IP 80 端口可直接访问。
|
||||
|
||||
## acepanel 命令无权限
|
||||
|
||||
必须以 root 用户执行,或使用 sudo:
|
||||
|
||||
```shell
|
||||
sudo acepanel status
|
||||
```
|
||||
|
||||
@@ -1 +1,66 @@
|
||||
待补充完善
|
||||
# 项目常见问题
|
||||
|
||||
## 项目启动失败
|
||||
|
||||
点击「日志」查看错误信息。常见原因:
|
||||
|
||||
### 权限问题
|
||||
|
||||
项目目录应在 `/opt/ace/projects/` 下,所有者为 www:
|
||||
|
||||
```shell
|
||||
chown -R www:www /opt/ace/projects/项目名
|
||||
```
|
||||
|
||||
如果部署在 `/root` 下,需使用 root 用户运行(不推荐)。
|
||||
|
||||
### 找不到命令
|
||||
|
||||
如 `node: No such file or directory`,说明环境变量未配置。
|
||||
|
||||
解决方法:
|
||||
1. 在「编辑」->「依赖」中关联运行环境
|
||||
2. 或在「运行设置」->「环境变量」中添加 PATH
|
||||
|
||||
### 端口被占用
|
||||
|
||||
修改应用监听端口,或停止占用端口的进程:
|
||||
|
||||
```shell
|
||||
lsof -i:3000 # 查看占用端口的进程
|
||||
```
|
||||
|
||||
## 配置环境变量
|
||||
|
||||
「编辑」->「运行设置」->「环境变量」,点击「添加」。
|
||||
|
||||
常用配置:
|
||||
- `NODE_ENV=production`
|
||||
- `PORT=3000`
|
||||
|
||||
## 预启动命令
|
||||
|
||||
在项目启动前执行,如安装依赖:
|
||||
|
||||
- Node.js:`npm install` 或 `yarn`
|
||||
- Python:`pip install -r requirements.txt`
|
||||
- Go:`go build`
|
||||
|
||||
## 查看项目日志
|
||||
|
||||
1. 面板:项目列表点击「日志」
|
||||
2. 命令行:`journalctl -u ace-project-项目名 -f`
|
||||
|
||||
## 项目自动重启
|
||||
|
||||
在「运行设置」中配置:
|
||||
|
||||
- **重启策略**:失败时重启 / 总是重启 / 不重启
|
||||
- **重启间隔**:两次重启之间的等待时间
|
||||
- **最大重启次数**:防止无限重启
|
||||
|
||||
## 反向代理配置
|
||||
|
||||
创建项目时开启「反向代理」,会自动创建一个反向代理网站。
|
||||
|
||||
手动配置:创建反向代理网站,上游地址填 `http://127.0.0.1:项目端口`。
|
||||
|
||||
@@ -1,41 +1,80 @@
|
||||
## Configure QUIC (HTTP3)
|
||||
# 网站常见问题
|
||||
|
||||
AcePanel currently supports automatic QUIC configuration, but for compatibility reasons, the `Alt-Svc` header is not added by default. Browsers will not attempt to use QUIC connections without detecting the `Alt-Svc` header.
|
||||
## 网站无法访问
|
||||
|
||||
If you are not using a CDN, you can add the configuration below to your website's rewrite rules to let browsers know that the website supports and uses QUIC connections.
|
||||
1. 检查域名是否解析到服务器 IP
|
||||
2. 检查防火墙是否放行 80/443 端口
|
||||
3. 检查 Nginx 是否运行:「应用」->「Nginx」->「管理」
|
||||
4. 查看 Nginx 错误日志
|
||||
|
||||
## 403 Forbidden
|
||||
|
||||
通常是权限问题:
|
||||
|
||||
```shell
|
||||
# 修复网站目录权限
|
||||
chown -R www:www /opt/ace/sites/网站名/public
|
||||
chmod -R 755 /opt/ace/sites/网站名/public
|
||||
```
|
||||
|
||||
## 502 Bad Gateway
|
||||
|
||||
PHP 网站出现 502,检查 PHP 是否运行:
|
||||
|
||||
1. 「应用」->「运行环境」->「PHP」->「管理」
|
||||
2. 确认 PHP 版本与网站配置一致
|
||||
3. 查看 PHP 错误日志
|
||||
|
||||
反向代理网站出现 502,检查后端服务是否运行。
|
||||
|
||||
## 伪静态不生效
|
||||
|
||||
1. 确认在「伪静态」标签页选择了正确的预设或填写了规则
|
||||
2. 点击「保存」后 Nginx 会自动重载
|
||||
3. 清除浏览器缓存后测试
|
||||
|
||||
## 配置 QUIC (HTTP/3)
|
||||
|
||||
面板支持 QUIC,但默认不添加 `Alt-Svc` 头。在自定义配置中添加:
|
||||
|
||||
```nginx
|
||||
add_header Alt-Svc 'h3=":$server_port"; ma=2592000';
|
||||
```
|
||||
|
||||
If you are using a CDN or there are proxy servers in front, then QUIC needs to be enabled on the CDN / frontend.
|
||||
确保服务器安全组/防火墙放行 UDP 443 端口。
|
||||
|
||||
If the configuration still doesn't work, please check your browser version and the availability of UDP port 443.
|
||||
## 启用 TLSv1/TLSv1.1
|
||||
|
||||
* According to Nginx's git commit history, all QUIC draft versions have been removed in version 1.25, so there's no need to add draft version numbers to `Alt-Svc`.
|
||||
|
||||
## Configure TLSv1.1 TLSv1
|
||||
|
||||
The current Panel OpenResty is compiled with OpenSSL 3.5, which by default disables the deprecated TLSv1.1 and TLSv1 protocols.
|
||||
|
||||
Of course, if your business must use these two protocols, you can enable them using the SSL configuration below.
|
||||
OpenSSL 3.x 默认禁用旧协议。如必须使用,在「HTTPS」设置中修改密码套件:
|
||||
|
||||
```nginx
|
||||
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
|
||||
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:@SECLEVEL=0;
|
||||
ssl_prefer_server_ciphers on;
|
||||
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:AES128-SHA:AES256-SHA:DES-CBC3-SHA:@SECLEVEL=0;
|
||||
```
|
||||
|
||||
## Configure IPv6
|
||||
## 启用 IPv6
|
||||
|
||||
If you want to enable IPv6 support, you need to add `[::]:80` and `[::]:443` to the website's listening address configuration.
|
||||
在「域名和监听」添加监听地址:`[::]:80` 和 `[::]:443`。
|
||||
|
||||
## CDN 配置 HTTPS 后网站是否需要开启 HTTPS?
|
||||
## CDN 回源与 HTTPS
|
||||
|
||||
取决于 CDN 侧的回源协议配置:
|
||||
| CDN 回源协议 | 网站 HTTPS 配置 |
|
||||
|----------|---------------------|
|
||||
| HTTP | 无需开启 |
|
||||
| HTTPS | 必须开启 |
|
||||
| 协议跟随 | 必须开启,且不能开启 HTTP 重定向 |
|
||||
|
||||
| CDN 回源协议 | 网站 HTTPS 配置 |
|
||||
|----------|---------------------------|
|
||||
| HTTP | 无需开启 HTTPS |
|
||||
| HTTPS | 必须开启 HTTPS |
|
||||
| 协议跟随 | 必须开启 HTTPS 且不能开启 HTTP 重定向 |
|
||||
## 上传文件大小限制
|
||||
|
||||
默认限制 100MB。修改 PHP 配置:
|
||||
|
||||
1. 「应用」->「运行环境」->「PHP」->「管理」->「主配置」
|
||||
2. 修改 `upload_max_filesize` 和 `post_max_size`
|
||||
3. 保存后重启 PHP
|
||||
|
||||
## SSL 证书申请失败
|
||||
|
||||
1. 确认域名已解析到服务器
|
||||
2. 确认 80 端口可访问(Let's Encrypt 验证需要)
|
||||
3. 检查是否超过 Let's Encrypt 速率限制
|
||||
4. 尝试使用 DNS 验证方式
|
||||
5. 更换其他证书提供商
|
||||
|
||||
@@ -1,46 +1,57 @@
|
||||
AcePanel 提供了命令行工具,方便用户在无法访问 Web 界面时进行基本的面板管理操作。
|
||||
# 命令行工具
|
||||
|
||||
## Managing Panel Service
|
||||
AcePanel 提供命令行工具 `acepanel`,用于在无法访问 Web 界面时进行面板管理。
|
||||
|
||||
Do not stop or restart AcePanel while background tasks are still running, as this may cause task stuck or data loss.
|
||||
## 服务管理
|
||||
|
||||
* Start Panel: `acepanel start`
|
||||
* Stop Panel: `acepanel stop`
|
||||
* Restart Panel: `acepanel restart`
|
||||
::: warning 注意
|
||||
后台任务运行时请勿停止或重启面板,可能导致任务中断或数据丢失。
|
||||
:::
|
||||
|
||||
## Panel Command Line
|
||||
|
||||
下表列出了常用的 AcePanel 命令行工具命令:
|
||||
|
||||
| Command | Description |
|
||||
|--------------------------------------------------------|------------------------------------------------------------------------------|
|
||||
| `acepanel status` | Get the current status of the AcePanel service |
|
||||
| `acepanel start` | Start the AcePanel service |
|
||||
| `acepanel stop` | Stop the AcePanel service |
|
||||
| `acepanel restart` | Restart the AcePanel service |
|
||||
| `acepanel update` | Update AcePanel to the latest version |
|
||||
| `acepanel sync` | Sync AcePanel cached data with cloud |
|
||||
| `acepanel fix` | Fix AcePanel upgrade issues |
|
||||
| `acepanel info` | Output AcePanel basic information and generate new password |
|
||||
| `acepanel user list` | List all users |
|
||||
| `acepanel user username <old_username> <new_username>` | Change a user's username |
|
||||
| `acepanel user password <username> <new_password>` | Change a user's password |
|
||||
| `acepanel user 2fa <username>` | Toggle two-factor authentication for a user |
|
||||
| `acepanel https <on/off>` | Enable or disable HTTPS for AcePanel |
|
||||
| `acepanel https generate` | Obtain a free certificate or generate a self-signed certificate for AcePanel |
|
||||
| `acepanel entrance <on/off>` | Enable or disable the AcePanel access entrance |
|
||||
| `acepanel bind-domain off` | Disable domain binding for AcePanel |
|
||||
| `acepanel bind-ip off` | Disable IP binding for AcePanel |
|
||||
| `acepanel bind-ua off` | Disable User-Agent binding for AcePanel |
|
||||
| `acepanel port <new_port>` | Change the AcePanel listening port |
|
||||
| `acepanel sync-time ` | Sync server time with NTP |
|
||||
| `acepanel clear-task` | Clear all tasks in the task queue if they are stuck |
|
||||
| `acepanel help` | Display help information for AcePanel commands |
|
||||
|
||||
For example, to change a user's password, you can use:
|
||||
|
||||
```bash
|
||||
acepanel user password haozi 123456
|
||||
```shell
|
||||
acepanel start # 启动
|
||||
acepanel stop # 停止
|
||||
acepanel restart # 重启
|
||||
acepanel status # 查看状态
|
||||
```
|
||||
|
||||
This will change the password for the user `haozi` to `123456`.
|
||||
## 用户管理
|
||||
|
||||
```shell
|
||||
acepanel user list # 列出所有用户
|
||||
acepanel user username <旧用户名> <新用户名> # 修改用户名
|
||||
acepanel user password <用户名> <新密码> # 修改密码
|
||||
acepanel user 2fa <用户名> # 开关两步验证
|
||||
```
|
||||
|
||||
## 安全设置
|
||||
|
||||
```shell
|
||||
acepanel https on|off # 开关 HTTPS
|
||||
acepanel https generate # 生成证书(自签名或 Let's Encrypt)
|
||||
acepanel entrance on|off # 开关安全入口
|
||||
acepanel port <端口号> # 修改监听端口
|
||||
acepanel bind-domain off # 解除域名绑定
|
||||
acepanel bind-ip off # 解除 IP 绑定
|
||||
acepanel bind-ua off # 解除 UA 绑定
|
||||
```
|
||||
|
||||
## 维护命令
|
||||
|
||||
```shell
|
||||
acepanel update # 更新面板
|
||||
acepanel fix # 修复更新问题
|
||||
acepanel sync # 同步缓存数据
|
||||
acepanel sync-time # 同步服务器时间
|
||||
acepanel clear-task # 清空任务队列
|
||||
acepanel info # 查看面板信息并重置密码
|
||||
acepanel help # 帮助
|
||||
```
|
||||
|
||||
## 示例
|
||||
|
||||
修改用户 `admin` 的密码为 `newpassword`:
|
||||
|
||||
```shell
|
||||
acepanel user password admin newpassword
|
||||
```
|
||||
|
||||
@@ -1,42 +1,45 @@
|
||||
以下演示如何在 AcePanel 使用 Docker 快速部署一个 pgAdmin 4 PostgreSQL 管理工具容器。
|
||||
# 第一个容器:部署 pgAdmin 4
|
||||
|
||||
## 前提条件
|
||||
本文以 pgAdmin 4 为例,演示如何通过 AcePanel 快速部署 Docker 容器。
|
||||
|
||||
- 已安装并运行 AcePanel 面板
|
||||
## 安装 Docker
|
||||
|
||||
## 步骤 1:登录面板
|
||||
进入「应用」页面,在「原生应用」中找到 Docker 并安装。安装进度可在「任务」页面查看。
|
||||
|
||||
使用浏览器访问 AcePanel 面板的地址,输入管理员账号和密码登录。
|
||||
::: tip 国内服务器
|
||||
国内服务器拉取镜像较慢,建议配置 [毫秒镜像](https://1ms.run/) 提供的付费加速源。
|
||||
:::
|
||||
|
||||
## 步骤 2:安装 Docker
|
||||
## 部署容器
|
||||
|
||||
1. 在面板左侧导航栏中,点击「应用」。
|
||||
2. 在「原生应用」列表中,找到并安装 Docker。
|
||||
3. 安装中可前往「任务」页面查看进度。
|
||||
4. 安装完成后,确保 Docker 服务已启动。
|
||||
5. (可选)对于国内服务器,建议配置毫秒镜像提供的付费源以提升下载速度。可前往[官网](https://1ms.run/)获取相关信息。
|
||||
进入「应用」->「容器模板」,找到 pgAdmin 4,点击「部署」。
|
||||
|
||||
## 步骤 3:创建 pgAdmin 4 编排
|
||||

|
||||
|
||||
1. 在面板左侧导航栏中,点击「应用」。
|
||||
2. 切换到「容器编排」标签页。
|
||||
3. 在页面找到「pgAdmin 4」编排模板,点击「部署」按钮。
|
||||
4. 弹窗中选择创建新编排并填写以下信息:
|
||||
- **编排名称**:(可选)自行起一个编排名称(例如 `my-pgadmin4`)。
|
||||
- **自动启动**:启用此项以在编排创建完成后自动启动容器。
|
||||
- **自动防火墙**:启用此项以自动添加系统防火墙规则开放对应端口。
|
||||
- **访问端口**:将容器的 `80` 端口映射到主机的某个未被占用的端口(例如 `999`)。
|
||||
- **管理员邮箱**:填写用于登录 pgAdmin 4 的管理员邮箱地址。
|
||||
- **管理员密码**:填写用于登录 pgAdmin 4 的管理员密码。
|
||||
5. 点击「下一步」按钮,进入预览页面,可在此对编排配置进行最终确认与调整。
|
||||
6. 确认无误后点击「创建」按钮,完成编排创建。
|
||||

|
||||
|
||||
## 步骤 4:等待容器下载与启动
|
||||
选择「创建新编排」后填写配置:
|
||||
|
||||
若启用了「自动启动」选项,编排创建完成后容器将自动弹窗显示下载与启动进度。若未启用此选项,可前往「容器」->「编排」页面手动启动容器。
|
||||

|
||||
|
||||
## 步骤 5:访问 pgAdmin 4 服务
|
||||
- **编排名称**:给编排起个名字,如 `pg4admin`
|
||||
- **自动启动**:勾选后创建完成自动拉取镜像并启动
|
||||
- **自动防火墙**:勾选后自动放行端口
|
||||
- **访问端口**:容器 80 端口映射到主机端口,如 `999`
|
||||
- **管理员邮箱/密码**:pgAdmin 4 的登录凭据
|
||||
|
||||
1. 容器启动完成后,使用浏览器访问 `http://服务器IP:映射端口`(例如 `http://x.x.x.x:999`)。
|
||||
2. 在登录页面输入之前设置的管理员邮箱和密码,点击「登录」按钮进入 pgAdmin 4 后台管理界面。
|
||||
3. 恭喜!您已成功使用 AcePanel 部署了 pgAdmin 4 容器。
|
||||
点击「下一步」预览编排配置,确认后点击「创建」。
|
||||
|
||||
## 等待启动
|
||||
|
||||
如果勾选了「自动启动」,创建后会弹窗显示拉取和启动进度:
|
||||
|
||||

|
||||
|
||||
也可以在「容器」->「编排」页面手动管理:
|
||||
|
||||

|
||||
|
||||
## 访问服务
|
||||
|
||||
启动完成后,浏览器访问 `http://服务器IP:端口`(如 `http://x.x.x.x:999`),用之前设置的邮箱和密码登录即可。
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
# 第一个项目:部署 Node.js 应用
|
||||
|
||||
本文以一个简单的 Node.js HTTP 服务为例,演示如何通过 AcePanel 部署和管理项目。
|
||||
|
||||
## 准备代码
|
||||
|
||||
先准备一个简单的 Node.js 应用。在项目目录创建 `app.js`:
|
||||
|
||||
```javascript
|
||||
const http = require('http');
|
||||
|
||||
const server = http.createServer((req, res) => {
|
||||
res.writeHead(200, { 'Content-Type': 'text/plain' });
|
||||
res.end('Hello from AcePanel!\n');
|
||||
});
|
||||
|
||||
server.listen(3000, () => {
|
||||
console.log('Server running at http://localhost:3000/');
|
||||
});
|
||||
```
|
||||
|
||||
## 创建项目
|
||||
|
||||
进入「项目」页面,点击「创建项目」。
|
||||
|
||||

|
||||
|
||||
填写配置:
|
||||
|
||||
- **项目名**:项目标识,如 `hello-node`
|
||||
- **项目目录**:留空使用默认路径
|
||||
- **运行用户**:一般选 `www`
|
||||
- **启动命令**:`node app.js`
|
||||
- **反向代理**:如需通过域名访问,可开启自动创建反向代理
|
||||
|
||||
## 上传代码
|
||||
|
||||
项目创建后,进入「文件」页面,导航到项目目录(如 `/opt/ace/projects/hello-node`),上传 `app.js` 文件。
|
||||
|
||||
也可以通过终端用 git clone 拉取代码。
|
||||
|
||||
## 配置项目
|
||||
|
||||
在项目列表点击「编辑」,可以调整更多设置:
|
||||
|
||||

|
||||
|
||||
**运行设置**:
|
||||
- **预启动命令**:启动前执行,如 `npm install`
|
||||
- **重启策略**:进程异常退出时的处理方式
|
||||
- **环境变量**:设置 `NODE_ENV=production` 等
|
||||
|
||||
**依赖**:可以关联 Node.js 运行环境版本。
|
||||
|
||||
## 启动项目
|
||||
|
||||
回到项目列表,点击「启动」按钮。
|
||||
|
||||

|
||||
|
||||
启动后可点击「日志」查看输出,确认服务正常运行。
|
||||
|
||||
## 访问服务
|
||||
|
||||
如果开启了反向代理,通过配置的域名访问即可。
|
||||
|
||||
如果没有,可以通过 `http://服务器IP:3000` 直接访问(需在防火墙放行 3000 端口)。
|
||||
|
||||
::: tip 生产环境
|
||||
生产环境建议:
|
||||
- 开启「自启动」,服务器重启后自动恢复
|
||||
- 配置反向代理,通过 Nginx 转发请求
|
||||
- 在「资源限制」中设置内存上限,防止内存泄漏
|
||||
:::
|
||||
|
||||
@@ -1,48 +1,52 @@
|
||||
以下演示如何在 AcePanel 使用 Nginx + MySQL + PHP 快速部署一个 WordPress 博客网站。
|
||||
# 第一个网站:部署 WordPress
|
||||
|
||||
## 前提条件
|
||||
本文以 WordPress 为例,演示如何通过 AcePanel 快速搭建 PHP 网站。
|
||||
|
||||
- 已安装并运行 AcePanel 面板
|
||||
- 已准备好 WordPress 安装包(可从 [WordPress 官方网站](https://wordpress.org/download/) 下载)
|
||||
## 安装环境
|
||||
|
||||
## 步骤 1:登录面板
|
||||
进入「应用」页面:
|
||||
|
||||
使用浏览器访问 AcePanel 面板的地址,输入管理员账号和密码登录。
|
||||
1. 在「原生应用」中安装 Nginx 和 MySQL(或 Percona/MariaDB)
|
||||
2. 在「运行环境」中安装 PHP(建议 8.0+)
|
||||
|
||||
## 步骤 2:安装环境
|
||||
安装进度可在「任务」页面查看。
|
||||
|
||||
1. 在面板左侧导航栏中,点击「应用」。
|
||||
2. 在「原生应用」列表中,找到并安装 Nginx、Percona/MySQL/MariaDB。
|
||||
3. 在「运行环境」列表中,安装所需版本的 PHP(建议使用 PHP 8.0 或更高版本)。
|
||||
4. 环境安装中可前往「任务」页面查看进度,安装完成后确保各服务均已启动。
|
||||
## 创建网站
|
||||
|
||||
## 步骤 3:创建网站
|
||||
进入「网站」->「PHP」,点击「创建网站」。
|
||||
|
||||
1. 在面板左侧导航栏中,点击「网站」。
|
||||
2. 点击「PHP」标签页,切换到 PHP 网站管理页面。
|
||||
3. 点击页面的「创建网站」按钮。
|
||||
4. 在弹出的对话框中,填写以下信息:
|
||||
- **名称**:自行起一个网站名称(例如 `my-wordpress`),创建完成后不可修改。
|
||||
- **域名**:输入您的域名(例如 `example.com`),若没有域名亦可直接输入服务器 IP 地址。
|
||||
- **根目录**:选择网站根目录(可直接留空使用默认路径)。
|
||||
- **PHP 版本**:选择刚才安装的 PHP 版本。
|
||||
- **数据库**:选择「MySQL」并复制生成的数据库名称、用户名和密码备用。
|
||||
5. 点击「创建」按钮,完成网站创建。
|
||||

|
||||
|
||||
## 步骤 4:上传 WordPress 安装包
|
||||
填写配置:
|
||||
|
||||
1. 网站创建完成后,点击网站列表中的「目录」,进入文件管理页面。
|
||||
2. 点击「上传」按钮,选择并上传之前下载的 WordPress 安装包(通常为 `.zip` 格式)。
|
||||
3. 上传完成后,双击/右键上传的压缩包,点击「解压」按钮,将文件解压到当前目录。
|
||||
4. 进入解压后的 `wordpress` 目录,Ctrl + A 全选所有文件,Ctrl + X 剪切,然后返回上级目录,Ctrl + V 粘贴所有文件到网站根目录。
|
||||
5. 删除解压后的空文件夹和压缩包。
|
||||
- **名称**:网站标识,如 `wordpress`,创建后不可改
|
||||
- **域名**:你的域名,没有域名可填服务器 IP
|
||||
- **根目录**:留空使用默认路径
|
||||
- **PHP 版本**:选择刚安装的版本
|
||||
- **数据库**:选择 MySQL,记下生成的数据库名、用户名、密码
|
||||
|
||||
## 步骤 5:配置 WordPress
|
||||
1. 返回网站列表,点击「编辑」按钮,进入网站配置页面。
|
||||
2. 在「伪静态」标签页中,选择预设的「wordpress」伪静态规则,点击「保存」。
|
||||
3. (可选)在「HTTPS」标签页中,点击「一键签发证书」申请并启用免费的 Let's Encrypt SSL 证书。
|
||||
4. 保存配置后,使用浏览器访问您的域名(例如 `http://example.com` 或 `https://example.com`),进入 WordPress 安装页面。
|
||||
5. 按照页面提示,选择语言,填写网站标题、管理员用户名、密码、电子邮箱等信息。
|
||||
6. 在数据库设置页面,填写之前创建网站时生成的数据库名称、用户名和密码,数据库主机填写 `localhost`,点击「提交」。
|
||||
7. 完成安装后,使用管理员账号登录 WordPress 后台,开始管理和发布内容。
|
||||
8. 恭喜!您已成功使用 AcePanel 部署了一个 WordPress 网站。
|
||||
## 上传 WordPress
|
||||
|
||||
从 [WordPress 官网](https://wordpress.org/download/) 下载安装包。
|
||||
|
||||
在网站列表点击「目录」进入文件管理,上传压缩包并解压。进入 `wordpress` 目录,`Ctrl+A` 全选,`Ctrl+X` 剪切,返回上级目录 `Ctrl+V` 粘贴,把文件移到网站根目录。
|
||||
|
||||
## 配置伪静态
|
||||
|
||||
回到网站列表,点击「编辑」,切换到「伪静态」标签页,选择预设的 `wordpress` 规则并保存。
|
||||
|
||||

|
||||
|
||||
::: tip HTTPS
|
||||
可在「HTTPS」标签页一键签发免费的 Let's Encrypt 证书。
|
||||
:::
|
||||
|
||||
## 安装 WordPress
|
||||
|
||||
浏览器访问你的域名,按提示完成安装:
|
||||
|
||||
1. 选择语言
|
||||
2. 填写站点信息(标题、管理员账号等)
|
||||
3. 数据库配置:填入之前记下的数据库信息,主机填 `localhost`
|
||||
|
||||
安装完成后即可登录 WordPress 后台。
|
||||
|
||||
@@ -1,36 +1,76 @@
|
||||
AcePanel supports the latest two stable releases of mainstream `amd64` and `arm64` architecture systems. Installation of the LNMP environment has been tested on all systems listed in the table below.
|
||||
# 安装
|
||||
|
||||
It is recommended to use systems marked as **Recommended**. Unless there are special circumstances, it is not recommended to use systems marked as **Not Recommended**.
|
||||
## 系统要求
|
||||
|
||||
For systems not listed in the table below, you can try installing on your own, but no free technical support will be provided.
|
||||
- 架构:`amd64` / `arm64`
|
||||
- 内存:≥ 512MB(建议 1GB 以上)
|
||||
- 磁盘:≥ 10GB 可用空间
|
||||
|
||||
| System | Version | Note |
|
||||
|------------------|---------|-----------------|
|
||||
| AlmaLinux | 10 | Recommended |
|
||||
| AlmaLinux | 9 | Supported |
|
||||
| RockyLinux | 10 | Recommended |
|
||||
| RockyLinux | 9 | Supported |
|
||||
| CentOS Stream | 10 | Not Recommended |
|
||||
| CentOS Stream | 9 | Not Recommended |
|
||||
| Ubuntu | 24 | Recommended |
|
||||
| Ubuntu | 22 | Supported |
|
||||
| Debian | 13 | Recommended |
|
||||
| Debian | 12 | Supported |
|
||||
| OpenCloudOS | 9 | Supported |
|
||||
| TencentOS Server | 4 | Supported |
|
||||
## 支持的操作系统
|
||||
|
||||
As system versions continue to update, we may also terminate support for some overly outdated systems to ensure the robustness of the Panel.
|
||||
| 系统 | 版本 | 状态 |
|
||||
|------------------|----|-----|
|
||||
| AlmaLinux | 10 | 推荐 |
|
||||
| AlmaLinux | 9 | 支持 |
|
||||
| RockyLinux | 10 | 推荐 |
|
||||
| RockyLinux | 9 | 支持 |
|
||||
| Debian | 13 | 推荐 |
|
||||
| Debian | 12 | 支持 |
|
||||
| Ubuntu | 24 | 推荐 |
|
||||
| Ubuntu | 22 | 支持 |
|
||||
| OpenCloudOS | 9 | 支持 |
|
||||
| TencentOS Server | 4 | 支持 |
|
||||
| CentOS Stream | 10 | 不推荐 |
|
||||
| CentOS Stream | 9 | 不推荐 |
|
||||
|
||||
## Start Installation
|
||||
未列出的系统可自行尝试安装,但不提供技术支持。
|
||||
|
||||
> If you need to mount partitions, please complete before installing the Panel. Directory migration is not supported after Panel installation.
|
||||
## 安装前准备
|
||||
|
||||
**<span style="color: red;">AcePanel recommends using [LFCloud high-performance AMD EYPC server](https://www.dkdun.cn/aff/MQZZNVHQ) for installation.</span>**
|
||||
- 使用纯净系统安装,避免与已有环境冲突
|
||||
- 如需挂载数据盘,请在安装前完成,安装后不支持目录迁移
|
||||
- 确保服务器能正常访问外网
|
||||
|
||||
Log in to the server as `root` user and run the following command to install the Panel:
|
||||
## 开始安装
|
||||
|
||||
::: tip AcePanel 推荐使用
|
||||
[林枫云高性能 AMD EYPC 服务器](https://www.dkdun.cn/aff/MQZZNVHQ) 服务器安装
|
||||
:::
|
||||
|
||||
以 `root` 用户登录服务器,执行:
|
||||
|
||||
```shell
|
||||
bash <(curl -sSLm 10 https://dl.acepanel.net/helper.sh)
|
||||
```
|
||||
|
||||
Installation is usually completed within 2 minutes. Do not close the terminal during the installation process.
|
||||
安装过程中请勿关闭终端。
|
||||
|
||||
## 安装完成
|
||||
|
||||
安装完成后,终端会输出面板访问地址和初始账号密码:
|
||||
|
||||
```
|
||||
========================================
|
||||
AcePanel 安装完成
|
||||
用户名:xxxxxxxx
|
||||
密码:xxxxxxxxxxxxxxxx
|
||||
端口:xxxxx
|
||||
入口:/xxxxxx
|
||||
========================================
|
||||
```
|
||||
|
||||
首次访问可能需在浏览器信任自签名证书。
|
||||
|
||||
## 常见问题
|
||||
|
||||
**无法访问面板**
|
||||
|
||||
检查云服务器安全组和防火墙设置,确保放行面板端口。
|
||||
|
||||
**忘记用户/密码/地址**
|
||||
|
||||
使用命令行工具一键重置:
|
||||
|
||||
```shell
|
||||
acepanel info
|
||||
```
|
||||
|
||||
@@ -1,38 +1,38 @@
|
||||
AcePanel 是一款专业的服务器运维管理面板,致力于为用户提供简单、高效且安全的服务器管理解决方案。
|
||||
# 产品介绍
|
||||
|
||||
## 产品优势
|
||||
AcePanel 是一款开源的服务器运维管理面板。
|
||||
|
||||
1. 极低占用: Go 语言开发,安装包小,占用低,单文件运行,不会对系统性能造成影响
|
||||
2. 低破坏性: 设计为尽可能减少对系统的额外修改,在同类产品中,我们对系统的修改最少
|
||||
3. 追随时代: 整体设计走在时代前沿,对新系统兼容性好,在同类产品中处于领先地位
|
||||
4. 高效运维: 功能完善,自定义能力强,既可快速部署小型网站,也可基于定制化需求部署复杂应用
|
||||
5. 离线运行: 支持离线模式,甚至可以在部署完成后停止面板进程,不会对已有服务造成任何影响
|
||||
6. 安全稳定: 面板采用业界多种技术保障本体安全性,已在我们的多个生产环境中长期稳定运行
|
||||
7. 全面开源: 少有的全开源面板,您可以在遵守开源协议的前提下对面板自由修改、二次开发
|
||||
8. 永久免费: 承诺面板本体未来不会引入任何收费/授权功能,永久免费使用
|
||||
## 特性
|
||||
|
||||
## 产品功能
|
||||
- **极低占用**:Go 语言开发,单文件运行,资源占用极低
|
||||
- **低破坏性**:尽可能减少对系统的修改,同类产品中最少
|
||||
- **追随时代**:对新系统兼容性好,技术栈保持更新
|
||||
- **高效运维**:功能完善,自定义能力强,适用于简单到复杂的部署场景
|
||||
- **离线运行**:支持离线模式,停止面板不影响已部署的服务
|
||||
- **安全稳定**:多重安全机制,生产环境长期稳定运行
|
||||
- **完整开源**:全部代码开源,可自由修改和二次开发
|
||||
- **永久免费**:面板本体不会引入任何收费功能
|
||||
|
||||
#### 快速建站
|
||||
## 功能
|
||||
|
||||
深度集成 Nginx、MySQL、PHP 等主流服务,一键部署 LNMP 环境,一键搭建反向代理,支持多版本共存切换。
|
||||
**快速建站**
|
||||
|
||||
#### 高效管理
|
||||
深度集成 Nginx、MySQL、PHP 等主流服务,一键部署 LNMP 环境,支持多版本共存。
|
||||
|
||||
提供类似 Windows 资源管理器的文件管理功能,全面支持快捷键操作,支持批量处理文件,支持在线编辑代码。
|
||||
**文件管理**
|
||||
|
||||
#### 一键备份
|
||||
类似 Windows 资源管理器的操作体验,支持快捷键、批量操作、在线编辑。
|
||||
|
||||
支持网站、数据库一键备份与恢复,支持定时备份与远程存储,保障数据安全。
|
||||
**备份恢复**
|
||||
|
||||
## 与同类产品的对比
|
||||
网站、数据库一键备份与恢复,支持定时备份和远程存储。
|
||||
|
||||
## 对比
|
||||
|
||||
| 特性 | AcePanel | 同类产品 1 | 同类产品 B |
|
||||
|------|-----------------|-----------------------|-----------------------------|
|
||||
| 用户界面 | 清爽的现代化设计 | 现代化设计 | 功能繁杂且广告较多 |
|
||||
| 开源情况 | 完整开源,全自动化构建 | 仅开源非专业版部分 | 部分开源,提交记录不完整 |
|
||||
| 性能优化 | 极其高效,单文件运行 | 需 core 及 agent 双倍资源占用 | 资源占用较高,优化差 |
|
||||
| 系统支持 | 主流 Linux 发行版 | 主流 Linux 发行版 | 支持较多但兼容性各异 |
|
||||
| 应用中心 | 原生应用 + 容器编排双重支持 | 仅支持容器编排 | 应用陈旧,更新缓慢 |
|
||||
| 技术栈 | Go 1.25 + Vue 3 | Go 1.24 + Vue 3 | Python 3.7 + Vue 3 + jQuery |
|
||||
| 特性 | AcePanel | 同类产品 1 | 同类产品 B |
|
||||
|------|-----------------|------------------|-----------------------------|
|
||||
| 用户界面 | 清爽现代 | 现代化设计 | 功能繁杂,广告较多 |
|
||||
| 开源情况 | 完整开源 | 仅开源非专业版 | 部分开源,提交记录不完整 |
|
||||
| 资源占用 | 极低,单文件运行 | core + agent 双进程 | 较高 |
|
||||
| 应用中心 | 原生应用 + 容器编排 | 仅容器编排 | 应用陈旧,更新缓慢 |
|
||||
| 技术栈 | Go 1.25 + Vue 3 | Go 1.24 + Vue 3 | Python 3.7 + Vue 3 + jQuery |
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# AcePanel 3.0 正式发布
|
||||
|
||||
好久不见,经过几次跳票延期,AcePanel 3.0 终于在 2026 年初完成开发,经过了约 3 个星期的内测,现在是时候发布了。
|
||||
|
||||
## 升级全新品牌名称 AcePanel
|
||||
|
||||
@@ -1,7 +1,17 @@
|
||||
您可以使用 AcePanel 的帮助工具卸载 AcePanel。
|
||||
# 卸载
|
||||
|
||||
::: danger 警告
|
||||
卸载前请备份所有数据,卸载后数据不可恢复。
|
||||
:::
|
||||
|
||||
## 卸载步骤
|
||||
|
||||
1. 备份网站、数据库等重要数据
|
||||
2. 在面板中卸载所有已安装的应用
|
||||
3. 执行卸载命令:
|
||||
|
||||
```shell
|
||||
bash <(curl -sSLm 10 https://dl.acepanel.net/helper.sh)
|
||||
```
|
||||
|
||||
注意:在卸载面板之前,请务必提前备份所有数据并卸载所有面板应用。卸载后数据将**不可恢复**!
|
||||
选择「卸载面板」选项完成卸载。
|
||||
|
||||
@@ -1,31 +1,33 @@
|
||||
升级面板有自动升级,手动升级和 SSH 升级三种方式,默认安装完成后面板已配置为每日自动升级,通常您无需手动操作即可保持面板为最新版本。
|
||||
# 更新
|
||||
|
||||
## 自动升级
|
||||
## 自动更新
|
||||
|
||||
AcePanel 默认开启自动升级功能,面板会在每天的 2 点左右自动检测更新并进行升级,升级过程中面板会短暂不可用(通常不超过 1 分钟),请您耐心等待。
|
||||
面板默认开启自动更新,每天凌晨 2 点左右会自动检测并更新。更新期间面板短暂不可用(通常不超过 1 分钟)。
|
||||
|
||||
若您希望手动升级,可在面板「设置」->「安全」关闭并保存「自动升级」设置,然后使用手动升级或 SSH 升级方式进行升级。
|
||||
关闭自动更新:「设置」->「安全」->「自动更新」。
|
||||
|
||||
## 手动升级
|
||||
## 手动更新
|
||||
|
||||
您可以在面板「首页」点击右上角的「更新」按钮,若有新版本会弹出升级页面,点击「更新」按钮即可开始升级。
|
||||
### Web 界面
|
||||
|
||||
升级过程中请勿刷新浏览器以及操作面板,升级完成后页面会自动刷新(通常不超过 1 分钟),若页面未自动刷新请手动刷新页面。
|
||||
点击首页右上角「更新」按钮,有新版本时会弹出更新页面。
|
||||
|
||||
## SSH 升级
|
||||
更新过程中请勿刷新浏览器或操作面板,完成后页面自动刷新。
|
||||
|
||||
您也可以通过 SSH 手动升级面板,适用于无法通过面板升级的情况或者面板无法访问的情况。
|
||||
### 命令行
|
||||
|
||||
使用 SSH 登录到服务器,确保您以 root 用户或具有 sudo 权限的用户身份登录,然后执行以下命令:
|
||||
|
||||
```bash
|
||||
```shell
|
||||
acepanel update
|
||||
```
|
||||
|
||||
升级过程中请勿关闭 SSH 连接,升级完成后会有提示信息。
|
||||
适用于面板无法访问的情况。更新过程中请勿关闭终端。
|
||||
|
||||
## 升级注意事项
|
||||
## 更新失败
|
||||
|
||||
1. 升级前请确保已备份重要数据,升级过程通常不会影响数据,但以防万一总是好的。
|
||||
2. 若升级过程中遇到问题,请参考[常见问题](../faq/panel)或前往[社区发帖](https://tom.moe)联系支持获取帮助。
|
||||
3. 升级完成后建议清除浏览器缓存以确保加载最新的前端资源。
|
||||
如果更新后出现问题,尝试修复:
|
||||
|
||||
```shell
|
||||
acepanel fix
|
||||
```
|
||||
|
||||
仍有问题可到 [社区](https://tom.moe) 反馈。
|
||||
|
||||
BIN
public/images/app/app-install-channel.png
Normal file
|
After Width: | Height: | Size: 500 KiB |
BIN
public/images/app/app-install-dialog.png
Normal file
|
After Width: | Height: | Size: 493 KiB |
BIN
public/images/app/app-install-version.png
Normal file
|
After Width: | Height: | Size: 489 KiB |
BIN
public/images/app/app-list.png
Normal file
|
After Width: | Height: | Size: 598 KiB |
BIN
public/images/app/app-manage-config.png
Normal file
|
After Width: | Height: | Size: 490 KiB |
BIN
public/images/app/app-manage.png
Normal file
|
After Width: | Height: | Size: 253 KiB |
BIN
public/images/app/app-runtime-manage.png
Normal file
|
After Width: | Height: | Size: 270 KiB |
BIN
public/images/app/app-runtime-modules.png
Normal file
|
After Width: | Height: | Size: 495 KiB |
BIN
public/images/app/app-runtime-php.png
Normal file
|
After Width: | Height: | Size: 428 KiB |
BIN
public/images/app/app-runtime.png
Normal file
|
After Width: | Height: | Size: 567 KiB |
BIN
public/images/app/app-template-deploy-step1.png
Normal file
|
After Width: | Height: | Size: 415 KiB |
BIN
public/images/app/app-template-deploy-step2.png
Normal file
|
After Width: | Height: | Size: 405 KiB |
BIN
public/images/app/app-template-deploy-step3.png
Normal file
|
After Width: | Height: | Size: 524 KiB |
BIN
public/images/app/app-template-deploy-step4.png
Normal file
|
After Width: | Height: | Size: 391 KiB |
BIN
public/images/app/app-template.png
Normal file
|
After Width: | Height: | Size: 498 KiB |
BIN
public/images/backup/backup-storage.png
Normal file
|
After Width: | Height: | Size: 280 KiB |
BIN
public/images/backup/backup.png
Normal file
|
After Width: | Height: | Size: 291 KiB |
BIN
public/images/cert/cert-account.png
Normal file
|
After Width: | Height: | Size: 272 KiB |
BIN
public/images/cert/cert-dns.png
Normal file
|
After Width: | Height: | Size: 258 KiB |
BIN
public/images/cert/cert-list.png
Normal file
|
After Width: | Height: | Size: 272 KiB |
BIN
public/images/container/compose-create.png
Normal file
|
After Width: | Height: | Size: 306 KiB |
BIN
public/images/container/compose-edit.png
Normal file
|
After Width: | Height: | Size: 472 KiB |
BIN
public/images/container/compose-list.png
Normal file
|
After Width: | Height: | Size: 312 KiB |
BIN
public/images/container/compose-start.png
Normal file
|
After Width: | Height: | Size: 342 KiB |
BIN
public/images/container/compose-starting.png
Normal file
|
After Width: | Height: | Size: 264 KiB |
BIN
public/images/container/container-compose.png
Normal file
|
After Width: | Height: | Size: 264 KiB |
BIN
public/images/container/container-create-port.png
Normal file
|
After Width: | Height: | Size: 363 KiB |
BIN
public/images/container/container-create.png
Normal file
|
After Width: | Height: | Size: 363 KiB |
BIN
public/images/container/container-image.png
Normal file
|
After Width: | Height: | Size: 292 KiB |
BIN
public/images/container/container-list.png
Normal file
|
After Width: | Height: | Size: 359 KiB |
BIN
public/images/container/container-network.png
Normal file
|
After Width: | Height: | Size: 317 KiB |
BIN
public/images/container/container-volume.png
Normal file
|
After Width: | Height: | Size: 258 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 54 KiB |