fix: ios 16

This commit is contained in:
hashbro
2026-08-09 21:57:08 +08:00
parent 6bf33e2761
commit 6bc172c570
179 changed files with 6246 additions and 400 deletions
+31 -31
View File
@@ -1,32 +1,41 @@
# Coruna Lab
Laravel C2 + Admin。渠道静态资源构建与分发已拆到同级项目 [`../coruna-lab-web/`](../coruna-lab-web/)。
Laravel C2 + Admin,渠道静态资源由内置 [`channel-builder/`](channel-builder/) 直接构建(DGA seed + channel id,无独立 Build API)。
```text
ios-fetch/
├── coruna-lab/ # ← 本仓库:C2 / Admin / 渠道元数据
└── coruna-lab-web/ # 构建 API + frontend 模板/工具 + 静态产物站
coruna-lab/
├── app/ # C2 / Admin
├── channel-builder/ # source + Python patch tools
├── public/ # 默认产物根(可直接当静态站)
│ ├── web/<channel-id>/
│ └── sync/
└── storage/app/channel-builder/ # lab_seeds.json + out/(不对外)
```
## Requirements
| Tool | Path / note |
|------|-------------|
| PHP 8.5+ | `/opt/homebrew/opt/php/bin/php`(勿用 PATH 里旧 7.3) |
| PHP 8.2+ | `/opt/homebrew/opt/php/bin/php` |
| Composer | via brew PHP |
| Python 3.10+ | `channel-builder/.venv` |
| MySQL 8.0 | preferred;sqlite 可 smoke |
| p7zip | `CORUNA_7Z_BIN` 或 `bin/7z`(C2 入库用) |
```bash
export PATH="/opt/homebrew/opt/php/bin:$PATH"
php -v
cd channel-builder
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
```
## Setup
```bash
cp .env.example .env
# edit .env: DB_*, TELEGRAM_*, ADMIN_*, CORUNA_BUILD_SERVICE_*
# edit .env: DB_*, TELEGRAM_*, ADMIN_*, CORUNA_ARTIFACT_ROOT / CORUNA_CHANNEL_BUILDER_*
php artisan key:generate # once
php artisan migrate --seed
@@ -36,38 +45,34 @@ php artisan serve --host=0.0.0.0 --port=8000
Admin:
- Shell: `http://127.0.0.1:8000/admin`
- Login: `http://127.0.0.1:8000/admin/login` — AJAX JSON 登录(参考 qrpay):用户名 / 密码 / 可选谷歌验证码
- Login: `http://127.0.0.1:8000/admin/login`
- 默认账号:`admin` / `admin123`(见 `.env` `ADMIN_*`)
- 登录后「安全 → 谷歌验证」可绑定 Google Authenticator
## 新建渠道
本仓库只保存渠道元数据;静态产物由 `coruna-lab-web` 同步构建:
创建渠道时 Laravel 直接调用 `channel-builder/tools/new_project.py`:
- **seed**:Deployment / Reporting 共用同一 seed(可同时传入相同值;否则读/写 `lab_seeds.json`,首次自动生成一份)
- **首次**(或换 seed)会重建共享 `sync/`,并返回 DGA 域名供注册/绑源站
- **之后**新渠道只生成 `web/<id>/`
```dotenv
CORUNA_BUILD_SERVICE_URL=http://127.0.0.1:8081
CORUNA_BUILD_SERVICE_TOKEN=replace-me
CORUNA_BUILD_SERVICE_CONNECT_TIMEOUT=5
CORUNA_BUILD_SERVICE_TIMEOUT=600
CORUNA_LAB_CHANNEL_DOMAINS=www.dep1.example,www.dep2.example
CORUNA_REPORTING_DOMAINS=www.rep1.example,www.rep2.example
CORUNA_STATIC_SITE_BASE_URL=https://static.example
CORUNA_CHANNEL_BUILDER_PYTHON=/path/to/channel-builder/.venv/bin/python
# 默认即可:产物写到 public/,seed 状态在 storage/app/channel-builder/
# CORUNA_ARTIFACT_ROOT=
# CORUNA_CHANNEL_STATE_ROOT=
CORUNA_CHANNEL_BUILDER_TIMEOUT=600
CORUNA_STATIC_SITE_BASE_URL=https://admin.example.com
```
创建渠道时可填写 `domains`(可选);留空则展示链接与构建 `deployment_domains` 使用 `CORUNA_LAB_CHANNEL_DOMAINS`。构建时的 `reporting_domains` 始终使用 `CORUNA_REPORTING_DOMAINS`。
构建:`POST /v1/channels/{id}/build`
删除:`DELETE /v1/channels/{id}`
后台展示入口:
同机时 Admin 站点 `public/` 即静态根;DGA 域名反代到同一 `public/`:
```text
https://<host>/channel/<channel-id>/web/support.html
https://<host>/channel/<channel-id>/sync/daily.html
https://<host>/web/<channel-id>/support.html
https://<dga-host>/sync/daily.html
```
构建服务部署见 [`../coruna-lab-web/docs/BUILD_API.md`](../coruna-lab-web/docs/BUILD_API.md)。
宝塔同机部署(含 Telegram webhook)见 [`docs/BAOTA_DEPLOY.md`](docs/BAOTA_DEPLOY.md)。
宝塔部署见 [`docs/BAOTA_DEPLOY.md`](docs/BAOTA_DEPLOY.md)。
## C2 / Admin 说明
@@ -78,8 +83,3 @@ https://<host>/channel/<channel-id>/sync/daily.html
```bash
php artisan test
```
## 注意
- 本仓库不再包含 `frontend/` 或本地 Python 构建脚本
- 迁移期可保留旧 `public/web`、`public/sync` 只读;新渠道只发到 `coruna-lab-web` 静态站