https://github.com/gabrieltenma/apollo-bun
Simple scraper - economics news aggregator & watcher (Bun version)
https://github.com/gabrieltenma/apollo-bun
apollo bun economics-indicator nestjs vite
Last synced: about 1 month ago
JSON representation
Simple scraper - economics news aggregator & watcher (Bun version)
- Host: GitHub
- URL: https://github.com/gabrieltenma/apollo-bun
- Owner: GabrielTenma
- License: apache-2.0
- Created: 2026-05-17T14:56:13.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-05-20T11:12:17.000Z (about 1 month ago)
- Last Synced: 2026-05-20T14:48:59.443Z (about 1 month ago)
- Topics: apollo, bun, economics-indicator, nestjs, vite
- Language: TypeScript
- Homepage:
- Size: 72.8 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Agents: AGENTS.md
Awesome Lists containing this project
README






## Overview
Just a simple project focusing on scrape data related with economics for who need answer to take decision into market, processed with multiple sources data and openrouter LLM for describe the market tension, I called this `apollo`.
## How it works
Basically this app just collect data from trusted platform who updates related economic topic, wrap it up become one data and analyze with openrouter LLM autoselect `free` model, then send the result to social chat platform `telegram` for now.
Errors and structured events are logged via [evlog](https://evlog.dev) — one wide event per failure with full context, no scattered lines.
For the future plan focusing integrate to stackyrd pkg which `diameter-tscd` project, frontend and manageable web-content.
## Getting Started
### Prerequisites
- Bun (latest)
- PostgreSQL database / Supabase
- [OpenRouter](https://openrouter.ai/) API key
- Telegram bot token (from [@BotFather](https://t.me/BotFather))
### Installation
```bash
# Clone the repository
git clone https://github.com/GabrielTenma/apollo-bun.git
cd apollo-bun
# Install dependencies
bun install
# Configure environment variables
cp .env.example .env
# Edit .env and fill in your credentials
```
### Running
```bash
# Development — Vite frontend + Elysia backend in separate terminals
bun run dev # Terminal 1: Elysia backend on :3000
bun run web:dev # Terminal 2: Vite frontend on :3001
# Build frontend + start production server (serves frontend from :3000)
bun run web:build # Build React app → dist/web/
bun run start # Start Elysia server (serves API + frontend)
```
The Elysia server serves the React frontend from `http://localhost:3000/` using Elysia's native `file()` helper. API routes are prefixed under `/api/v1/`, `/telegram/`, etc. CORS allows `localhost:5173`, `localhost:3001`, and `localhost:3000`.
## Docker
Build and run with Docker. The image is based on `oven/bun:1-distroless`.
```bash
docker build -t apollo .
docker run -p 3000:3000 --env-file .env apollo
```
Environment variables are passed via `--env-file` or `-e`. The frontend is baked into the image at build time (served by Elysia `file()` from `/`).
Exposed port: **3000**. Health check: `GET /health` → `{"status":"ok"}`.
## Preview

For architecture details, see [DESIGN.md](DESIGN.md).
## License
Use Apache 2. See `LICENSE` for deal your free time.