OSIRIS 详细部署教程

OSIRIS 是一个开源全球情报平台,作为 Palantir 的替代方案,它通过 GPU 加速的 WebGL 界面,整合了实时航班追踪、闭路电视网络、地震监测、冲突区域地图和 24/7 新闻推送等多种情报数据源。

本教程将指导你完成从零开始的完整部署。


1. 准备工作

1.1 基础环境要求

要求 版本/说明
操作系统 Linux、macOS 或 Windows (支持 Docker)
Node.js 22+ (推荐,或使用 Docker)
npm 随 Node.js 安装
Git 用于克隆代码仓库
Docker 可选,用于容器化部署

1.2 克隆代码仓库

使用 Git 将项目克隆到本地:

1
2
git clone https://github.com/simplifaisoul/osiris.git
cd osiris

2. 基础部署方式(Node.js 直接运行)

这是最简单的部署方式,适合开发和测试环境。

2.1 安装项目依赖

1
npm install

2.2 配置环境变量(可选)

复制示例环境变量文件:

1
cp .env.template .env

说明:OSIRIS 部分功能无需 API 密钥即可工作,所有核心数据源均使用公开、免密钥的来源。.env 文件已被 .gitignore 忽略,不会提交到仓库。

2.3 启动开发服务器

1
npm run dev

2.4 访问应用

打开浏览器访问:http://localhost:3000


3. 使用 Docker 部署(推荐生产环境)

Docker 部署是最便捷的生产环境方案,提供一致的运行环境。

3.1 使用 Docker Compose(最简单)

在项目根目录下运行:

1
docker compose up -d

该命令会:

  • 自动拉取或构建镜像
  • 在后台运行容器
  • 将容器的 3000 端口映射到主机的 3000 端口

访问:http://localhost:3000

3.2 使用预构建镜像(跳过构建)

直接从 GitHub Container Registry 拉取预构建镜像:

1
2
docker pull ghcr.io/simplifaisoul/osiris:latest
docker run -d -p 3000:3000 --env-file .env ghcr.io/simplifaisoul/osiris:latest

3.3 自定义主机端口

如果主机的 3000 端口已被占用,可以在 .env 文件中修改 OSIRIS_PORT 变量:

1
2
# .env 文件示例
OSIRIS_PORT=3005

然后重新运行 docker compose up -d,应用会通过主机的 3005 端口访问。

3.4 手动构建 Docker 镜像

如需自定义构建:

1
2
docker build -t osiris:latest .
docker run -d -p 3000:3000 osiris:latest

镜像特点:采用 node:22-alpine 多阶段构建,镜像约 220 MB,以非 root 用户运行。


4. 环境变量详解

虽然 OSIRIS 无需密钥即可运行核心功能,但配置以下变量可以解锁更多高级特性或提高速率限制。

变量名 用途 获取途径
OSIRIS_PORT 修改 Docker 发布到主机的端口 自定义,默认 3000
SCANNER_URL RECON 工具包的后端扫描器 URL 自定义部署
SCANNER_KEY 与后端扫描器匹配的密钥 openssl rand -hex 32 生成
FIRMS_API_KEY NASA FIRMS 火灾数据(更高速率限制) firms.modaps.eosdis.nasa.gov
OPENSKY_CLIENT_ID OpenSky 网络 OAuth2 凭证 opensky-network.org
OPENSKY_CLIENT_SECRET OpenSky 网络 OAuth2 凭证 同上
N2YO_API_KEY N2YO 卫星追踪数据 n2yo.com (个人资料 → API 密钥)
AIS_API_KEY aisstream.io 海事数据 aisstream.io

⚠️ 注意:如果未配置 SCANNER_URLSCANNER_KEY,RECON 工具包(端口扫描、WHOIS 等)会返回 503 状态,但其他所有图层功能正常。


5. 关键功能验证

部署成功后,可以验证以下核心情报层是否正常加载:

5.1 核心数据图层(无需配置)

  • 航班追踪 (F 键切换):显示商业、私人、军用飞机
  • 地震监测 (E 键切换):显示 M2.5+ 级实时地震
  • 闭路电视网络:全球 17,000+ 个公开摄像头
  • 新闻推送:25+ 个全球广播公司 24/7 直播
  • 冲突区域:13 个活跃冲突/紧张区域标记
  • 火灾热点:NASA FIRMS 活跃野火数据
  • 卫星追踪 (S 键切换):N2YO 卫星实时位置

5.2 RECON 工具包(需配置后端)

如需使用端口扫描、DNS 查询、WHOIS、漏洞扫描等高级侦察功能,需要部署并配置 SCANNER_URLSCANNER_KEY


6. 故障排除

6.1 端口冲突

错误Error: listen EADDRINUSE: address already in use :::3000
解决:修改 .env 中的 OSIRIS_PORT 或在 Docker 命令中映射不同端口(例如 -p 3005:3000)。

6.2 Docker 容器无法启动

检查

1
2
3
# 查看容器日志
docker compose logs
# 检查 .env 文件是否存在及格式是否正确

6.3 RECON 工具返回 503

原因:未配置 SCANNER_URLSCANNER_KEY
解决:如需此功能,请参考文档部署配套的扫描器后端并配置环境变量。

6.4 地图图层不显示数据

可能原因

  • 浏览器阻止了 WebGL 或跨域请求
  • 外部 API 服务暂时不可用(检查网络控制台错误)
  • 在中国大陆等地区,部分国际 API 可能无法直接访问,需配置代理或使用镜像源。

7. 下一步

  • 查看完整文档:项目内 DOCKER.mdREADME.md
  • 参与社区Discord 频道 获取支持
  • 报告问题GitHub Issues
  • 贡献代码:参阅 CONTRIBUTING.md 指南

OSIRIS 是一个强大的开源情报聚合平台,其部署相对简单,核心功能无需付费即可使用。通过上述步骤,你可以在几分钟内拥有一个功能完整的全球态势感知仪表板。