https://github.com/rustydb/sentinel
Defense telemetry for EVE Frontier.
https://github.com/rustydb/sentinel
blockchain evefrontier indexer sui web3
Last synced: about 1 month ago
JSON representation
Defense telemetry for EVE Frontier.
- Host: GitHub
- URL: https://github.com/rustydb/sentinel
- Owner: rustydb
- License: mit
- Created: 2026-03-30T19:06:50.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-05-23T06:10:47.000Z (about 1 month ago)
- Last Synced: 2026-05-23T06:36:41.299Z (about 1 month ago)
- Topics: blockchain, evefrontier, indexer, sui, web3
- Language: TypeScript
- Homepage: https://ef-sentinel.xyz
- Size: 3.01 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Security: SECURITY.md
- Agents: AGENTS.md
Awesome Lists containing this project
- awesome-eve-frontier - rustydb/sentinel
README
Sentinel
Defensive telemetry for EVE Frontier turret operators.
## Table of Contents
- [What It Covers](#what-it-covers)
- [Tech Stack](#tech-stack)
- [Repository Layout](#repository-layout)
- [EVE Hackathon Notes](#eve-hackathon-notes)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Preferred Local Workflow](#preferred-local-workflow)
- [Production-Style Stack](#production-style-stack)
- [Host-Native Workflow](#host-native-workflow)
- [Validation](#validation)
- [Documentation](#documentation)
- [License](#license)
---
Sentinel is an EVE Frontier dashboard for live monitoring of a user's turret assemblies; their interactions, and current status.
The project combines a React dashboard, a Bun/Express support API, and a Rust indexer that follows turret activity on Sui blockchain.
## What It Covers
- Displaying Turret Smart Assembly objects owned by the logged in wallet
- Event history and threat intelligence from indexed on-chain turret events
- Solar-system mapping for working around the location obfuscation in EVE, players can assign solar-systems to their network nodes
- Galaxy plotting by network-node; assign solar systems to network-nodes to map turrets
- Live operator view
## Tech Stack
- `Bun` workspaces for the monorepo, scripts, and API runtime
- `React 19` and `Vite` for the dashboard
- `TypeScript` across the dashboard, API, and shared contracts
- `Tailwind CSS v4` for styling
- `Express 5` and `pg` for dashboard support APIs
- `Rust` with `tokio`, `reqwest`, `tokio-postgres`, and `diesel` for the Sui indexer
- `PostgreSQL` for indexed events, node mappings, and derived dashboard state
- `Podman Compose` for the preferred local development stack
- `Vitest`, Testing Library, Playwright, ESLint, and Prettier for validation
## Repository Layout
```text
.
|-- apps/
| |-- dashboard/ # React dashboard UI
| |-- api/ # Bun + Express support API
| `-- indexer/ # Rust indexer for Sui turret events
|-- packages/
| `-- shared-types/ # Shared GraphQL queries and TypeScript contracts
|-- docs/ # Product, domain, design system, ADRs
|-- specs/ # Speckit specs, plans, tasks, quickstarts
|-- assets/ # Shared branding assets
`-- docker-compose.yml
```
## EVE Hackathon Notes
The 2026 EVE Hackathon was ongoing during Cycle 5 of EVE Frontier, and at this time there were
momumental changes made to the game. Some of these changes, such as certain on-chain events, were
not fully functional yet for the hackathon.
To work around missing on-chain events, this application created a "demo-mode" that populates the dashboard with static mocks.
Demo mode will be removed from the application after the on-chain events become available, it will
not be maintained long-term.
> NOTE: The data in demo mode is entirely static, it makes no attempt to simulate live data.
Access demo-mode by the `/demo` sub-path (e.g. `http://localhost:5173/demo`).
## Getting Started
### Prerequisites
- `Podman` and `podman compose`
- `Bun` 1.2+ for host-native workflows
- `Rust` and `cargo` if you want to run the indexer outside containers
### Preferred Local Workflow
The repo is designed to be iterated on with the development stack:
```bash
podman compose -f docker-compose.yml up
```
Local services:
- dashboard: `http://127.0.0.1:5173`
- api: `http://127.0.0.1:3002`
- postgres: `127.0.0.1:5433`
Useful routes:
- live dashboard: `http://127.0.0.1:5173`
- demo dashboard: `http://127.0.0.1:5173/demo`
Use the live dashboard when you want the real wallet-connected flow. Use `/demo` when you want a fixture-backed review surface without depending on live telemetry.
Notes:
> This project was built and tested using `podman` and `podman compose`. Use `docker` at your own discretion.
>
> - The dev stack defaults to the current `Utopia` world assumptions
> - the demo route stays fixture-backed on purpose; it does not pretend to be live telemetry
> - some older repo quickstarts still mention `5174`, but the checked-in dashboard runtime is currently configured for `5173`
### Rebuild Local Stack
For a fresh container rebuild of the current local stack, use:
```bash
podman compose -f docker-compose.yml up --build
```
### Host-Native Workflow
If you want to run pieces directly on your machine instead of through Podman:
```bash
bun install
bun run dev
cargo run --manifest-path apps/indexer/Cargo.toml
```
The root `dev` script starts the dashboard and API together. The indexer runs separately.
## Validation
For dashboard-focused work, start with:
```bash
bun lint
bunx vitest run --environment jsdom
```
For the full repo:
```bash
bun test
```
For indexer-only work:
```bash
cargo test --manifest-path apps/indexer/Cargo.toml
```
## Documentation
- [CONTRIBUTING.md](./CONTRIBUTING.md) for contribution rules and commit expectations
- [CHANGELOG.md](./CHANGELOG.md) for notable project changes
- Design and spec documentation is located in the `./docs` directory.
## License
This project is licensed under the [MIT License](./LICENSE.md).