Commit Graph

66 Commits

Author SHA1 Message Date
Shadowbroker dd7706f17f Add GitLab mirror parity: CI + image registry + install overrides (#237)
Brings the GitLab side to full parity with GitHub so users who prefer
gitlab.com get the same source, the same images, and the same install
paths. Today, GitLab users can clone the source but the Helm chart and
docker-compose paths only worked against GHCR.

What's new:

  .gitlab-ci.yml
    Multi-arch (amd64 + arm64) Docker builds on every push to main,
    pushed to the project's GitLab Container Registry as:
      registry.gitlab.com/bigbodycobain/shadowbroker/backend:latest
      registry.gitlab.com/bigbodycobain/shadowbroker/frontend:latest
    Plus a :$CI_COMMIT_SHORT_SHA tag for traceability. Uses
    $CI_JOB_TOKEN — no credentials need to be configured.

    Also adds a 'mirror-to-github' job that pushes main back to GitHub
    via fast-forward-only `git push`. Skipped silently if the
    GITHUB_MIRROR_TOKEN CI/CD variable isn't set. Setup instructions
    are in the file header.

  docker-compose.gitlab.yml
    Override file that swaps the backend/frontend image: lines to the
    GitLab registry. Used as:
      docker compose -f docker-compose.yml -f docker-compose.gitlab.yml up -d
    Verified with `docker compose config` — merges cleanly and emits
    registry.gitlab.com/... image references.

  helm/chart/values-gitlab.yaml
    Helm values override that points the chart at the GitLab registry.
    Used alongside the default values.yaml:
      helm install ... -f helm/chart/values.yaml -f helm/chart/values-gitlab.yaml

  README.md
    Documents both install paths (GitHub default, GitLab override) for
    both docker compose and Helm. Notes that both registries publish
    identical images (same source, same CI matrix).

No credentials needed for the GitLab→GitLab side. The optional reverse
mirror requires a GitHub PAT (public_repo scope) added as the GitLab
CI/CD variable GITHUB_MIRROR_TOKEN — instructions in the .gitlab-ci.yml
header.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 01:14:30 -06:00
BigBodyCobain 63043b32b5 Stabilize Docker startup and runtime proxy
Reduce cold-start stalls by raising the default backend memory limit, bounding heavy feed concurrency, preserving non-empty startup caches, and refreshing working news feeds. Fix the Next API proxy for Docker control-plane writes by stripping unsupported hop/body headers and forwarding small request bodies safely. Keep the dashboard dynamic so production users do not get stuck on a cached startup shell.
2026-05-04 12:37:23 -06:00
BigBodyCobain 1e34fa53b2 Make Docker backend port configurable 2026-05-03 21:13:31 -06:00
BigBodyCobain 3eafb622ed Clarify Podman compose setup 2026-05-03 08:44:56 -06:00
Shadowbroker eb5564ca0e Update README.md 2026-05-03 02:59:03 -06:00
Shadowbroker 03e5fc1363 Update README.md 2026-05-02 09:20:40 -06:00
Shadowbroker 3a8db7f9cd Update README.md 2026-05-02 00:30:34 -06:00
Shadowbroker f1cb1e860d Update README.md 2026-05-02 00:30:15 -06:00
Shadowbroker 4068c31cfa Update README.md 2026-05-02 00:17:45 -06:00
BigBodyCobain 28b3bd5ebf release: prepare v0.9.7 2026-05-01 22:56:50 -06:00
Shadowbroker d6c5a9435b docs: fix outdated Developer Setup instructions in README
Fixed incorrect clone URL (your-username -> BigBodyCobain),
removed stale live-risk-dashboard subdirectory path,
updated pip install to use pyproject.toml instead of requirements.txt,
refreshed project structure tree to match current repo layout,
removed unnecessary dos2unix step from Quick Start.
2026-04-03 20:02:25 -06:00
Shadowbroker 94e1194451 Update README.md 2026-03-28 08:18:44 -06:00
anoracleofra-code c35978c64d fix: add version to health endpoint + warn users with stale compose files
Repo migration in March 2026 rewrote all commit hashes, leaving old
clones with a docker-compose.yml that builds from source instead of
pulling pre-built images.  Added detection warnings to compose.sh,
start.bat, and start.sh so affected users see clear instructions.
Also exposes APP_VERSION in /api/health for easier debugging.
2026-03-27 13:56:32 -06:00
Shadowbroker 2dcb65dc4e Update README.md 2026-03-26 20:50:11 -06:00
anoracleofra-code c6fc47c2c5 fix: bump Rust builder to 1.88 (darling 0.23 MSRV) 2026-03-26 17:58:58 -06:00
Shadowbroker c30a1a5578 Update README.md 2026-03-26 17:56:32 -06:00
Shadowbroker 2bc06ffa1a Update README.md 2026-03-26 07:03:10 -06:00
Shadowbroker cc7c8141ca Update README.md 2026-03-26 07:01:34 -06:00
Shadowbroker 7084950896 Update README.md 2026-03-26 06:28:48 -06:00
Shadowbroker ed3da5c901 Update README.md 2026-03-26 06:05:31 -06:00
anoracleofra-code 668ce16dc7 v0.9.6: InfoNet hashchain, Wormhole gate encryption, mesh reputation, 16 community contributors
Gate messages now propagate via the Infonet hashchain as encrypted blobs — every node syncs them
through normal chain sync while only Gate members with MLS keys can decrypt. Added mesh reputation
system, peer push workers, voluntary Wormhole opt-in for node participation, fork recovery,
killwormhole scripts, obfuscated terminology, and hardened the self-updater to protect encryption
keys and chain state during updates.

New features: Shodan search, train tracking, Sentinel Hub imagery, 8 new intelligence layers,
CCTV expansion to 11,000+ cameras across 6 countries, Mesh Terminal CLI, prediction markets,
desktop-shell scaffold, and comprehensive mesh test suite (215 frontend + backend tests passing).

Community contributors: @wa1id, @AlborzNazari, @adust09, @Xpirix, @imqdcr, @csysp, @suranyami,
@chr0n1x, @johan-martensson, @singularfailure, @smithbh, @OrfeoTerkuci, @deuza, @tm-const,
@Elhard1, @ttulttul
2026-03-26 05:58:04 -06:00
DeuZa 51cc01dbf8 fix: add dos2unix step for Mac/Linux Quick Start
When downloading the .zip from GitHub Releases, start.sh may contain Windows-style line endings (\r\n) that cause the script to fail on Mac/Linux. Adding a dos2unix start.sh step before chmod +x fixes the issue.
2026-03-23 08:46:30 +01:00
Singular Failure 3a2d8ddd75 feat: add Spanish CCTV feeds and fix image loading
- Add 5 native ingestors to cctv_pipeline.py: DGT (~1,917 cameras),
  Madrid (~357), Málaga (~134), Vigo (~59), Vitoria-Gasteiz (~17)
- Fix DGT DATEX2 parser to match actual XML schema (device elements,
  not CctvCameraRecord)
- Wire all new ingestors into the scheduler via data_fetcher.py
- Remove standalone spain_cctv.py by Alborz Nazari, replaced by native
  pipeline ingestors that integrate with the existing scheduler pattern
- Fix CCTV image loading for servers with Referer-based hotlink
  protection (referrerPolicy="no-referrer")
- Replace external via.placeholder.com fallbacks with inline SVG data
  URIs to avoid dependency on unreachable third-party service
- Surface source_agency attribution in CCTV panel UI for open data
  license compliance (CC BY / Spain Ley 37/2007)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 15:10:43 +01:00
anoracleofra-code 4a33424924 fix: correct Helm chart path in README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 01:10:23 -06:00
Shadowbroker b5f49fe882 Update README.md
Former-commit-id: 85110e82cc09ab746d323f8625b8ecb5b1c03500
2026-03-14 19:26:50 -06:00
Shadowbroker 21668a4d66 Update README.md
Former-commit-id: 28a314c7a4162c303bf4b7d71aec69b8441c197f
2026-03-14 16:19:33 -06:00
Shadowbroker 54993c3f89 Update README.md
Former-commit-id: 2a80e7ff67e5a3fd13df59bf547d1455ed563b20
2026-03-14 15:41:15 -06:00
anoracleofra-code 90c2e90e2c v0.9.5: The Voltron Update — modular architecture, stable IDs, parallelized boot
- Parallelized startup (60s → 15s) via ThreadPoolExecutor
- Adaptive polling engine with ETag caching (no more bbox interrupts)
- useCallback optimization for interpolation functions
- Sliding LAYERS/INTEL edge panels replace bulky Record Panel
- Modular fetcher architecture (flights, geo, infrastructure, financial, earth_observation)
- Stable entity IDs for GDELT & News popups (PR #63, credit @csysp)
- Admin auth (X-Admin-Key), rate limiting (slowapi), auto-updater
- Docker Swarm secrets support, env_check.py validation
- 85+ vitest tests, CI pipeline, geoJSON builder extraction
- Server-side viewport bbox filtering reduces payloads 80%+

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Former-commit-id: f2883150b5bc78ebc139d89cc966a76f7d7c0408
2026-03-14 14:01:54 -06:00
anoracleofra-code cf349a4779 docs: clarify data sourcing in Why This Exists section
Acknowledge aircraft registration databases (public FAA records).
Reword "no data collected" to specifically mean no user data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Former-commit-id: d00580da195984ec70475d649f0f0e091a90ba48
2026-03-13 18:39:02 -06:00
anoracleofra-code f3dd2e9656 docs: add "Why This Exists" section and soften disclaimer
Positions the project as a public data aggregator, not a surveillance
tool. Clarifies that no data is collected or transmitted beyond rendering.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Former-commit-id: 53eb82c6104f5c061d361c71c44f8c61b7e12897
2026-03-13 18:35:05 -06:00
Shadowbroker 136766257f Update README.md
update section for old versions

Former-commit-id: 5299777abd9914e866967cdd3e533a3fa5ffd507
2026-03-13 12:59:38 -06:00
Shadowbroker 5cb3b7ae2b Update README.md
Former-commit-id: b443fc94edb2a15fe49769f84dcf319c18503dfa
2026-03-13 12:47:53 -06:00
Shadowbroker 7c6049020d Update README.md
Former-commit-id: d66cbce25256556da9f7c3b5effb95c265489996
2026-03-12 10:41:43 -06:00
Shadowbroker a9305e5cfb Update README.md
Former-commit-id: e546e2000c5b21c9cf89eb988e08f233eb3a0df3
2026-03-12 09:54:08 -06:00
Shadowbroker b10d6e6e00 Update README.md
Former-commit-id: b1cb267da3
2026-03-11 14:09:50 -06:00
Shadowbroker afdc626bdb Update README.md
Former-commit-id: a3a0f5e990
2026-03-11 14:07:46 -06:00
David Parry e2a9ef9bbf feat: proxy backend API through Next.js using runtime BACKEND_URL
Previously, NEXT_PUBLIC_API_URL was a build-time Next.js variable, making
it impossible to configure the backend URL in docker-compose `environment`
without rebuilding the image.

This change introduces a proper server-side proxy:
- next.config.ts: adds a rewrite rule that forwards all /api/* requests
  to BACKEND_URL (read at server startup, not baked at build time).
  Defaults to http://localhost:8000 so local dev works without config.
- api.ts: API_BASE is now an empty string — all fetch calls use relative
  /api/... paths, which the Next.js server proxies to the backend.
- docker-compose.yml: replaces NEXT_PUBLIC_API_URL build arg with a
  runtime BACKEND_URL env var defaulting to http://backend:8000, using
  Docker's internal networking. Port 8000 no longer needs to be exposed.
- README: updates Docker setup docs, standalone compose example, and
  environment variable reference to reflect BACKEND_URL.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Former-commit-id: b4c9e78cdd
2026-03-11 13:49:00 +11:00
anoracleofra-code 2ae104fca2 v0.6.0: custom news feeds, data center map layer, performance hardening
New features:
- Custom RSS Feed Manager: add/remove/prioritize up to 20 news sources
  from the Settings panel with weight levels 1-5. Persists across restarts.
- Global Data Center Map Layer: 2,000+ DCs plotted worldwide with clustering,
  server-rack icons, and automatic internet outage cross-referencing.
- Imperative map rendering: high-volume layers bypass React reconciliation
  via direct setData() calls with debounced updates on dense layers.
- Enhanced /api/health with per-source freshness timestamps and counts.

Fixes:
- Data center coordinates fixed for 187 Southern Hemisphere entries
- Docker CORS_ORIGINS passthrough in docker-compose.yml
- Start scripts warn on Python 3.13+ compatibility
- Settings panel redesigned with tabbed UI (API Keys / News Feeds)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Former-commit-id: 950c308f04
2026-03-10 15:27:20 -06:00
anoracleofra-code 12857a4b83 v0.5.0: FIRMS fire hotspots, space weather, internet outages
New intelligence layers:
- NASA FIRMS VIIRS fire hotspots (5K+ global thermal anomalies, flame icons)
- NOAA space weather badge (Kp index in status bar)
- IODA regional internet outage monitoring (grey markers, BGP/ping only)

Key improvements:
- Fire clusters use flame-shaped icons (not circles) for clear differentiation
- Internet outages are region-level with reliable datasources only
- Removed radiation layer (no viable free real-time API)
- All outage markers grey to avoid color confusion with other layers
- Filtered out merit-nt telescope data that produced misleading percentages

Updated changelog modal, README, and package.json for v0.5.0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Former-commit-id: 195c6b64b9
2026-03-10 10:23:38 -06:00
Shadowbroker d4c725de6e Update README.md
Former-commit-id: ac040a307b
2026-03-09 19:38:55 -06:00
Shadowbroker d756dd5bd3 Update README.md
Former-commit-id: b0f91c4baf
2026-03-09 19:36:59 -06:00
Shadowbroker d96e8f5c21 Update README.md
Former-commit-id: 5a8f3813c8
2026-03-09 19:35:52 -06:00
Shadowbroker 8afcbca667 Update README.md
Former-commit-id: 35f6b5900e
2026-03-09 19:34:42 -06:00
Shadowbroker 36dec1088d Update README.md
Former-commit-id: 65d1c2b715
2026-03-09 19:29:13 -06:00
Shadowbroker a38f4cbaea Update README.md
Former-commit-id: ab178747cc
2026-03-09 19:25:20 -06:00
Shadowbroker 8e7ef8e95e Update README.md
Former-commit-id: 3713b214d5
2026-03-09 19:11:25 -06:00
Shadowbroker e597147a16 Update README.md
Former-commit-id: b1827b5fa6
2026-03-09 19:07:36 -06:00
Shadowbroker 9c831e37ff Update README.md
Former-commit-id: 83a7488740
2026-03-09 18:03:56 -06:00
anoracleofra-code 686e304358 merge: resolve conflicts with Podman compose PR
Former-commit-id: 1cf7a31a63
2026-03-09 17:48:22 -06:00
anoracleofra-code 8cddf6794d feat: v0.4 — satellite imagery, KiwiSDR radio, LOCATE bar & security cleanup
New features:
- NASA GIBS (MODIS Terra) daily satellite imagery with 30-day time slider
- Esri World Imagery high-res satellite layer (sub-meter, zoom 18+)
- KiwiSDR SDR receivers on map with embedded radio tuner
- Sentinel-2 intel card — right-click for recent satellite photo popup
- LOCATE bar — search by coordinates or place name (Nominatim geocoding)
- SATELLITE style preset in bottom bar cycling
- v0.4 changelog modal on first launch

Fixes:
- Satellite imagery renders below data icons (imagery-ceiling anchor)
- Sentinel-2 opens full-res PNG directly (not STAC catalog JSON)
- Light/dark theme: UI stays dark, only map basemap changes

Security:
- Removed test files with hardcoded API keys from tracking
- Removed .git_backup directory from tracking
- Updated .gitignore to exclude test files, dev scripts, cache files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Former-commit-id: e89e992293
2026-03-09 17:46:33 -06:00