javilofe4/tryzub-ledger
GitHub: javilofe4/tryzub-ledger
一个用于结构化记录、验证和分析俄乌战争公开信息的开源情报平台,支持来源归属、置信度评分与地理空间映射。
Stars: 0 | Forks: 0
# Tryzub Ledger
Tryzub Ledger 是一个采用 AGPL-3.0 协议的开源情报平台,用于记录、结构化、验证、映射和分析有关俄罗斯对乌克兰战争的公开信息。
它面向需要带归属记录、来源审查、地理空间上下文、置信度评分和多语言展示的分析师、记者、研究人员和民间社会用户。
本项目是一个独立的社区倡议。它不隶属于乌克兰政府、UNITED24、NATO、任何军方或任何情报机构。如需访问乌克兰官方捐赠和参考网站,请访问 https://u24.gov.ua/。
## 安全边界
Tryzub Ledger 可以通过归属和置信度评分来记录公开事件、官方声明、来源矛盾、损失、袭击、地理空间参考和分析背景。
它绝不能提供目标定位辅助、战术建议、行动指导、伤害他人的说明,或捏造的冲突事件。
## 技术栈
- Frontend:Next.js、TypeScript、MapLibre GL
- Backend:Python、FastAPI、SQLAlchemy、Alembic
- Database:PostgreSQL with PostGIS
- Workers:Celery with Redis
- Deployment:Docker Compose
- License:AGPL-3.0
## Docker 启动
```
copy .env.example .env
docker compose up --build
```
服务:
- Frontend:http://localhost:3000
- Backend API:http://localhost:8000
- Backend 文档:http://localhost:8000/docs
- 健康检查:http://localhost:8000/health
Compose 启动时会等待 Postgres 就绪,应用 Alembic migrations,填充冲突和来源注册表记录,然后启动 API。
## Backend 本地设置
```
cd backend
python -m venv .venv
.venv\Scripts\activate
pip install -e ".[dev]"
alembic upgrade head
python -m app.scripts.seed_sources
pytest
```
常用命令:
```
python -m app.scripts.ingest --enabled
python -m app.scripts.ingest --source isw
celery -A app.workers.celery_app.celery worker --loglevel=info
```
除非明确实现,Connectors 均为 stubs。Stub connectors 会返回空结果,且不得捏造事件。
## Frontend 本地设置
```
cd frontend
npm install
npm run dev
npm run typecheck
```
设置 `NEXT_PUBLIC_API_BASE_URL=http://localhost:8000`,以便本地前端访问 backend。
## Migrations
Schema 变更通过 Alembic 进行管理:
```
cd backend
alembic revision --autogenerate -m "describe change"
alembic upgrade head
```
`AUTO_CREATE_DB=true` 仅作为显式的开发降级方案,默认处于禁用状态。
## 来源填充
填充命令是幂等的:
```
cd backend
python -m app.scripts.seed_sources
```
它会创建或更新主冲突记录和来源注册表条目。它不会创建冲突事件。
## 数据政策
严禁使用虚假战争数据。事件必须来自有记录的公开来源、分析师手动录入,或经过严格审查且带有归属的 ingestion pipelines。官方声明仅作为声明存储,而非经核实的事实。
## 已知限制
- 尚未实现完整的登录/认证功能;admin 路由使用 `ADMIN_TOKEN`。
- Source connectors 大多处于规划阶段或为手动操作,在安全实现之前不会返回任何记录。
- 尚未实现从原始条目中进行事件标准化。
- 报告起草和基于事实的 chat 均为占位符。
- Docker 构建的完整性检查取决于本地是否能够访问用于 Python 和 Node 依赖项的包注册表。
标签:AV绕过, FastAPI, PostgreSQL, 代码示例, 地理信息系统, 搜索引擎查询, 数据分析, 测试用例, 请求拦截, 逆向工具