6 Commits
Author SHA1 Message Date
lxh2875931338 9524e3f057 更新readme 2026-08-06 01:34:17 +08:00
lxh2875931338 ad666ab67e readme更新 2026-08-06 01:29:43 +08:00
lxh2875931338 b8a4b6437b 文档更新 2026-08-06 01:26:41 +08:00
lxh2875931338 f05f87421e 更新 readme.md 2026-08-06 01:18:00 +08:00
lxh2875931338 d1b1a09f0c 调整部分脚本信息 2026-08-06 00:48:55 +08:00
lxh2875931338 5fefb188fc readme索引更新 2026-08-06 00:12:59 +08:00
2 changed files with 112 additions and 49 deletions
+107 -46
View File
@@ -1,73 +1,116 @@
## 🐳 Docker 版安装指南
> 推荐方式:一键脚本自动部署,无需手动编译,无需安装 Go 环境。</br>
> 推荐方式:一键脚本自动部署,无需手动安装 Go 环境,无需预先配置 Docker 镜像源
> ⚠️ **注意**:Docker 版直接从源码构建,使用的是当前 `main` 分支的最新代码,更新进度会远快于 Release 版本。⚠️</br>
> 如需使用特定版本(如 LTS),请查看 [Releases](https://git.whitetop.xyz/lxh2875931338/frpc-console/releases) 确认版本号,并通过二进制方式部署指定版本。
> ⚠️ **注意**:Docker 版直接从源码构建,使用的是当前所选分支(LTS / Preview)的最新代码。如需使用特定 Release 版本,请查看 [Releases](https://git.whitetop.xyz/lxh2875931338/frpc-console/releases) 并通过二进制方式部署。
---
### 一、📥 前置条件
- 已安装 Docker(必须)
- 已安装 curl / wget脚本会自动检查并安装)
- 操作系统:Linuxx86_64 / ARM64 / ARMv7 均可)
- **已安装 Docker**(必须,版本不限
- **curl**(其余依赖脚本会自动检查并安装)
- **操作系统**Linuxx86_64 / ARM64 / ARMv7 / ARMHF 均可)
- **网络**:需能访问 Gitea 仓库(git.whitetop.xyz
> 💡 脚本会自动检测并配置 Docker 镜像加速,无需手动设置。
---
### 二、🚀 一键部署(推荐)
在目标 Linux 服务器上执行:
```bash
curl -sSL https://git.whitetop.xyz/lxh2875931338/frpc-console/raw/main/deploy.sh | sudo bash
curl -sSL https://git.whitetop.xyz/lxh2875931338/frpc-console/raw/main/run-deploy.sh | sudo bash
```
或手动下载执行
部署过程中会提示选择通道
```bash
wget https://git.whitetop.xyz/lxh2875931338/frpc-console/raw/main/deploy.sh
chmod +x deploy.sh
sudo bash deploy.sh
· LTS(稳定版) → main 分支,生产环境推荐
· Preview(技术预览版) → test 分支,尝鲜和新特性验证
脚本会完整执行整个部署流程,包括镜像源自动检测与配置。
---
三、⚙️ 部署引擎自动完成内容
deploy.sh 是一个完整的状态机驱动部署引擎,按时间顺序执行以下操作:
```mermaid
flowchart TD
subgraph 检测阶段
A[检测操作系统] --> B[检测CPU架构]
B --> C[检测必要工具]
C --> D[检测Docker环境]
D --> E[检测镜像源配置]
end
subgraph 决策阶段
E --> F[状态机计算]
F --> G[生成部署计划]
G --> H[用户确认]
end
subgraph 执行阶段
H --> I[拉取源码]
I --> J[配置镜像源]
J --> K[重启Docker]
K --> L[构建镜像]
L --> M[清理旧容器]
M --> N[启动容器]
N --> O[写入版本]
end
subgraph 验证阶段
O --> P[验证镜像内容]
P --> Q[验证数据库]
Q --> R[验证版本]
end
subgraph 清理阶段
R --> S[清理旧镜像]
S --> T[清理临时文件]
end
T --> U[部署完成]
```
---
### 三、⚙️ 脚本自动完成内容
四、📂 数据持久化
| 步骤 | 说明 |
|---|---|
| 检测系统 | 自动识别 OpenSUSE(猫猫特有的夹带私货) / Ubuntu / Debian / CentOS / Alpine |
| 检测 CPU 架构 | 自动适配 x86_64 / ARM64 / ARMv7 |
| 安装依赖 | git / curl / wget(如未安装) |
| 安装 Go | 从国内镜像下载,自动配置代理 |
| 拉取源码 | 从 Gitea 仓库克隆最新代码 |
| 编译二进制 | 根据当前架构编译 Linux 版 |
| 构建 Docker 镜像 | 使用源码中的 Dockerfile 构建 |
| 启动容器 | 挂载数据卷,开机自启 |
脚本默认将数据存储在 /opt/frpc-console/data/
### 四、📂 数据持久化
脚本默认将数据存储在 `/opt/frpc-console/data/`
| 文件 | 说明 |
|---|---|
| `frpc-console.db` | SQLite 数据库(用户、隧道、配置) |
| `frpc.toml` | 生成的 frpc 配置文件 |
| `frpc.log` | frpc 运行日志 |
| `frpc.pid` | frpc 进程 PID |
文件 说明
frpc-console.db SQLite 数据库(用户、隧道、配置)
frpc.toml 当前 frpc 配置文件
frpc.log frpc 运行日志
frpc.pid frpc 进程 PID
version.ini 当前版本标识
升级或重建容器时,数据自动保留,不会丢失。
---
### 五、🔄 升级
五、🔄 升级
**方式一:重新运行脚本**
方式一:重新运行部署脚本(推荐)
```bash
sudo bash deploy.sh
curl -sSL https://git.whitetop.xyz/lxh2875931338/frpc-console/raw/main/run-deploy.sh | sudo bash
```
脚本会自动停止旧容器、拉取最新代码、重新编译并启动新容器,数据卷保持不变。
脚本会自动
**方式二:手动更新**
1. 拉取最新代码
2. 构建新镜像
3. 停止并删除旧容器
4. 启动新容器
5. 数据卷保持不变
方式二:手动更新
```bash
# 停止旧容器
@@ -75,11 +118,14 @@ docker stop frpc-console
docker rm frpc-console
# 重新运行 deploy.sh
sudo bash deploy.sh
curl -sSL https://git.whitetop.xyz/lxh2875931338/frpc-console/raw/main/run-deploy.sh | sudo bash
```
💡 升级时如检测到语义版本降级(如 2.6 → 2.5),脚本会自动备份数据目录,并等待用户确认后再执行。
### 六、🧹 常用命令
---
六、🧹 常用命令
```bash
# 查看日志
@@ -96,10 +142,14 @@ docker stop frpc-console
# 启动容器
docker start frpc-console
# 查看当前版本
cat /opt/frpc-console/data/version.ini
```
---
### 七、🌐 访问地址
七、🌐 访问地址
部署完成后,浏览器打开:
@@ -109,12 +159,13 @@ http://你的服务器IP:9300
首次访问会自动跳转到注册页面,填写用户名和密码,完成管理员账户创建。
登录后,在「隧道列表」页面点击「导入 TOML」,即可将现有的 `frpc.toml` 迁移到 WebUI 中管理。
登录后,在「隧道列表」页面点击「导入 TOML」,即可将现有的 frpc.toml 迁移到 WebUI 中管理。
---
### 八、📌 手动部署(不使用脚本)
八、📌 手动部署(不使用脚本)
如果你已有源码,或想自行定制:
如果你已有源码,或想完全手动控制:
```bash
# 1. 克隆代码
@@ -132,8 +183,18 @@ docker run -d \
--name frpc-console \
--restart=always \
--network host \
-v /opt/frpc-console/data:/app\
-v /opt/frpc-console/data:/app/data \
-e PORT=9300 \
-e TZ=Asia/Shanghai \
frpc-console:latest
```
⚠️ 手动部署不会自动处理镜像源配置、版本管理、容器冲突检测和镜像清理。建议优先使用一键部署脚本。
---
### 九、📖 相关文档
- [部署引擎设计详解](./deployment-engine-design.md) — 了解 `deploy.sh` 的状态机设计与工程决策
- [工程设计哲学](./engineering-philosophy.md) — 理解部署脚本背后的设计理念
- [二进制安装指南](./install_binary.md) — 适用于无 Docker 或边缘设备场景
+5 -3
View File
@@ -12,6 +12,8 @@
一个基于实际工程实践而构建的——轻量级生命周期控制台。
同时也是一个为边缘环境设计的、自包含的、具备发行版级更新策略的 frp 运维基础设施
**安装一次。配置一次。然后——忘记它。**
---
@@ -20,11 +22,11 @@
| 目录 | 简要说明 |
|---|---|
| [📖 工程设计哲学](./Docs/engineering-philosophy.md) | 为什么它会长成今天这样 |
| [🔄 更新策略](./Docs/update-strategy.md) | Preview / LTS |
| [🚀 部署引擎设计](./Docs/deployment-engine-design.md) | deploy 的完整架构设计 |
| [🏗 架构设计](./Docs/architecture.md) | 整体架构设计思路 |
| [⚙ 设计决策](./Docs/design-decisions.md) | 为什么没有 CI?为什么叫 Console? |
| [🚀 部署引擎设计](./Docs/deployment-engine-design.md) | deploy 的完整架构设计 |
| [🌐 边缘节点](./Docs/edge-node.md) | 为什么支持 BusyBox、ARMHF |
| [🔄 更新策略](./Docs/update-strategy.md) | Preview / LTS |
| [⚙ 设计决策](./Docs/design-decisions.md) | 为什么没有 CI?为什么叫 Console |
---