73 lines
2.8 KiB
Markdown
73 lines
2.8 KiB
Markdown
# 🌌 Quark's Holo-Grid Ledger
|
|
|
|
Welcome to the **Holo-Grid Ledger** — an authentic, plaintext terminal-style sportsbook application built for the Star Trek-inspired galactic economy.
|
|
|
|
---
|
|
|
|
## 🏛 Project Architecture
|
|
|
|
This repository is organized as a clean monorepo:
|
|
|
|
- **[`web-terminal/`](file:///Users/pedro/code/github.com/costap/quarkshologridledger/web-terminal)**: The frontend user interface built with **TanStack Start**, **Vite**, **Valkey**, and **Tailwind CSS**. It renders high-density VT100-style console dashboards.
|
|
- **[`tongo-core/`](file:///Users/pedro/code/github.com/costap/quarkshologridledger/tongo-core)**: The high-performance Go simulation and probability engine. It runs as a background daemon, streaming active match telemetry and live odds directly to the Valkey cache.
|
|
- **[`data-source/`](file:///Users/pedro/code/github.com/costap/quarkshologridledger/data-source)**: Static definition registry ([`taxonomy.yaml`](file:///Users/pedro/code/github.com/costap/quarkshologridledger/data-source/taxonomy.yaml)) containing quadrants, factions, venues, and market templates.
|
|
- **[`reference/`](file:///Users/pedro/code/github.com/costap/quarkshologridledger/reference)**: Architectural references and blueprint documents for components and the simulation engine.
|
|
|
|
---
|
|
|
|
## 🛠 Getting Started
|
|
|
|
### 1. Start Infrastructure (Valkey & Redis Insight)
|
|
The sportsbook relies on Valkey as a shared memory layer, and Redis Insight provides a GUI for database inspection.
|
|
|
|
```bash
|
|
# Start Valkey and Redis Insight in the background
|
|
make infra-up
|
|
|
|
# View logs
|
|
make infra-logs
|
|
|
|
# Stop infrastructure
|
|
make infra-down
|
|
```
|
|
|
|
Valkey will run on `localhost:6379`, and Redis Insight will be accessible at `http://localhost:5540`.
|
|
|
|
### 2. Start the Simulation Engine
|
|
Go to the Go backend folder and start the engine daemon:
|
|
|
|
```bash
|
|
make run-engine
|
|
```
|
|
|
|
### 3. Start the Web Terminal UI
|
|
Go to the frontend folder, install dependencies, and start the Vite dev server:
|
|
|
|
```bash
|
|
make run-web
|
|
```
|
|
|
|
Visit the console at `http://localhost:3000`.
|
|
|
|
---
|
|
|
|
## 🚀 Release Process & CI/CD
|
|
|
|
This monorepo uses **Forgejo Actions** and **OpenTofu Workspaces** to manage deployments across isolated environments:
|
|
|
|
* **Staging (`staging.holo-grid.bar`)**: Target for active development. Any direct push or merge to the `main` branch automatically provisions staging infrastructure and deploys the staging code stack.
|
|
* **Production (`holo-grid.bar`)**: Target for stable releases. Pushing a Git version tag (e.g. `v1.0.0`) automatically provisions production infrastructure and deploys the release code stack.
|
|
|
|
### Triggering a Production Release
|
|
|
|
You can create and push a new release tag directly using the Makefile:
|
|
|
|
```bash
|
|
# Create and push release tag v1.0.0
|
|
make release TAG=v1.0.0
|
|
```
|
|
|
|
---
|
|
|
|
## 📜 Ferengi Code of Conduct
|
|
> "The riskier the road, the greater the profit." — Rule of Acquisition #62
|