Menu

Tree [f90715] main /
 History

HTTPS access


File Date Author Commit
 .github 5 days ago 2pk03 2pk03 [bd71bb] Add vitest frontend test suite with 35 unit tests
 cmd 2026-03-18 2pk03 2pk03 [5ebad3] update headers for Apache 2 license
 deploy 5 days ago 2pk03 2pk03 [95aebb] Remove API_BEARER_TOKEN from interactive prompt
 docker 5 days ago 2pk03 2pk03 [7d9b0b] Fix /m redirect: use named matcher before handl...
 docs 6 days ago 2pk03 2pk03 [4433c6] ops: reduce env surface and document advanced d...
 internal 4 days ago 2pk03 2pk03 [f90715] Add freshness cap to filter stale alerts from s...
 mobile 5 days ago 2pk03 2pk03 [c385e8] Mobile: category filter, Docker build, touch au...
 public 5 days ago 2pk03 2pk03 [d27e7d] Fix local dev runtime serving and ensure API be...
 registry 5 days ago 2pk03 2pk03 [1978ea] Expand source coverage: Canada, Africa, South A...
 scripts 5 days ago 2pk03 2pk03 [d27e7d] Fix local dev runtime serving and ensure API be...
 src 4 days ago 2pk03 2pk03 [41273d] Change terror zones color from lime to rose/cri...
 .dockerignore 7 days ago 2pk03 2pk03 [60c013] Revert "briefing: switch UCDP flow to DB-first ...
 .env.example 5 days ago 2pk03 2pk03 [95aebb] Remove API_BEARER_TOKEN from interactive prompt
 .gitignore 6 days ago 2pk03 2pk03 [24aa5b] chore(gitignore): ignore internal collector run...
 .node-version 2026-03-16 2pk03 2pk03 [2ef78a] chore: initialize EUOSINT hard fork baseline
 .npmrc 2026-03-16 2pk03 2pk03 [2ef78a] chore: initialize EUOSINT hard fork baseline
 .nvmrc 2026-03-16 2pk03 2pk03 [2ef78a] chore: initialize EUOSINT hard fork baseline
 Dockerfile 5 days ago 2pk03 2pk03 [c385e8] Mobile: category filter, Docker build, touch au...
 Dockerfile.collector 7 days ago 2pk03 2pk03 [c8e171] build: remove local chromium fallback, defer sl...
 Dockerfile.collector.dev 6 days ago 2pk03 2pk03 [fcda46] runtime: update docker stack and local collecto...
 LICENSE 2026-03-16 Alexander Alten Alexander Alten [e46de9] Initial commit
 Makefile 5 days ago 2pk03 2pk03 [d27e7d] Fix local dev runtime serving and ensure API be...
 NOTICE 2026-03-16 2pk03 2pk03 [2ef78a] chore: initialize EUOSINT hard fork baseline
 README.md 6 days ago Alexander Alten Alexander Alten [44ebed] Update README links to use GitHub URLs
 docker-compose.yml 5 days ago 2pk03 2pk03 [d27e7d] Fix local dev runtime serving and ensure API be...
 eslint.config.js 2026-03-18 2pk03 2pk03 [4f7f48] Harden commit-check deps and ignore generated l...
 go.mod 2026-03-19 2pk03 2pk03 [6d4efb] sync pending collector tests, source registry, ...
 go.sum 2026-03-19 2pk03 2pk03 [6d4efb] sync pending collector tests, source registry, ...
 index.html 2026-03-16 2pk03 2pk03 [36648f] chore(ui): refresh Scalytics OSINT branding
 package-lock.json 5 days ago 2pk03 2pk03 [8b2520] Add leaflet.heat dependency
 package.json 5 days ago 2pk03 2pk03 [8b2520] Add leaflet.heat dependency
 tsconfig.app.json 2026-03-16 2pk03 2pk03 [2ef78a] chore: initialize EUOSINT hard fork baseline
 tsconfig.json 2026-03-16 2pk03 2pk03 [2ef78a] chore: initialize EUOSINT hard fork baseline
 tsconfig.node.json 2026-03-16 2pk03 2pk03 [2ef78a] chore: initialize EUOSINT hard fork baseline
 vite.config.ts 5 days ago 2pk03 2pk03 [c385e8] Mobile: category filter, Docker build, touch au...

Read Me

EUOSINT

EUOSINT is the open-source edition of our OSINT pipeline, used across multiple installations and packaged for local and server deployment.

This repository has been prepared for public use by removing non-public, internal, and protected source integrations while keeping the operational pipeline structure intact.

Open-Source Scope

  • Public-ready OSINT pipeline architecture
  • Docker-first deployment for reproducible installs
  • Web dashboard + Go collector runtime
  • Configurable ingestion and refresh cadence

Run With Docker

if command -v docker-compose >/dev/null 2>&1; then
  docker-compose up --build
else
  docker compose up --build
fi

The application will be available at http://localhost:8080.

You can also use the Make targets for local HTTP development:

make dev-start
make dev-stop
make dev-restart
make dev-logs

Remote Install (wget bootstrap)

wget -qO- https://raw.githubusercontent.com/scalytics/EUOSINT/main/deploy/install.sh | bash

The installer will:

  • verify Docker + Compose availability
  • clone or update the repo on the host
  • set GHCR runtime images (ghcr.io/scalytics/euosint-web + ghcr.io/scalytics/euosint-collector)
  • prompt for install mode (preserve or fresh volume reset)
  • prompt for domain (EUOSINT_SITE_ADDRESS)
  • when domain mode is enabled, optionally check ufw/firewalld and validate local 80/443 availability
  • prompt for essential runtime keys only (URL, API credentials, optional LLM toggles)
  • optionally run docker compose pull and start with --no-build

  • The release pipeline builds two images: a web image and a Go collector image.

  • The scheduled feed refresh workflow runs the Go collector.
  • The web image uses Caddy, with collector output mounted into the web container at runtime.
  • In Docker dev mode, the collector initializes empty JSON outputs on a fresh volume and writes live output on the first successful run.

Run Locally Without Docker

volta install node@25.8.1 npm@11.11.0
npm install
npm run fetch:alerts:watch
npm run dev

For resilient 24/7 collection with auto-restart on crashes:

npm run collector:run

Tuning examples:

INTERVAL_MS=120000 MAX_PER_SOURCE=80 npm run collector:run
INTERVAL_MS=120000 RECENT_WINDOW_PER_SOURCE=20 ALERT_STALE_DAYS=14 npm run collector:run

Minimal required runtime variables are in .env.example.
Advanced tuning variables and defaults are documented in docs/advanced-config.md.

Operations

make check
make ci
make docker-build
  • make release-patch, make release-minor, and make release-major create and push semver tags that trigger the release workflow.
  • .github/workflows/branch-protection.yml applies protection to main using the ADMIN_GITHUB_TOKEN repository secret.
  • Docker validation runs through buildx, and release images publish to GHCR on semver tags.
  • Release images are published as ghcr.io/<owner>/<repo>-web and ghcr.io/<owner>/<repo>-collector.
  • docker-compose up --build or docker compose up --build runs the Go collector as a background refresh service and serves generated JSON through the Caddy web container.
  • VM/domain deployment instructions live in docs/operations.md.
  • Noise gate, search defaults, analyst feedback endpoints, and metrics output are documented in docs/operations.md.

Notes

  • Local toolchain is pinned to Node 25.8.1 and npm 11.11.0 via package.json, .nvmrc, and .node-version.
  • The Go collector is the operational backend for scheduled feed refreshes, Docker runtime, and local commands.
  • This repository intentionally excludes non-public/internal/protected integrations and is maintained as the open-source-ready distribution.
  • The root LICENSE applies to repository-local materials and modifications.
MongoDB Logo MongoDB