{"id":50051309,"url":"https://github.com/gabrieltenma/apollo-bun","last_synced_at":"2026-05-21T10:01:06.727Z","repository":{"id":359096097,"uuid":"1241569618","full_name":"GabrielTenma/apollo-bun","owner":"GabrielTenma","description":"Simple scraper - economics news aggregator \u0026 watcher (Bun version)","archived":false,"fork":false,"pushed_at":"2026-05-20T11:12:17.000Z","size":76300,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-20T14:48:59.443Z","etag":null,"topics":["apollo","bun","economics-indicator","nestjs","vite"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GabrielTenma.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-17T14:56:13.000Z","updated_at":"2026-05-20T10:12:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/GabrielTenma/apollo-bun","commit_stats":null,"previous_names":["gabrieltenma/apollo-bun"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/GabrielTenma/apollo-bun","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabrielTenma%2Fapollo-bun","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabrielTenma%2Fapollo-bun/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabrielTenma%2Fapollo-bun/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabrielTenma%2Fapollo-bun/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GabrielTenma","download_url":"https://codeload.github.com/GabrielTenma/apollo-bun/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabrielTenma%2Fapollo-bun/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33297101,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T02:57:32.698Z","status":"ssl_error","status_checked_at":"2026-05-21T02:57:31.990Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apollo","bun","economics-indicator","nestjs","vite"],"created_at":"2026-05-21T10:00:18.392Z","updated_at":"2026-05-21T10:01:06.709Z","avatar_url":"https://github.com/GabrielTenma.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\".github/assets/banner.png\" alt=\"apollo\" style=\"width: 100%; max-width: 700px;\"/\u003e\n\n  \u003cp align=\"center\"\u003e\n    Simple scraper - economics news watcher\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/GabrielTenma/apollo-bun/releases\"\u003eRelease\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/GabrielTenma/apollo-bun/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/GabrielTenma/apollo-bun/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n  \u003chr\u003e\n\u003c/div\u003e\n\n![Branches](https://www.shieldcn.dev/github/branches/GabrielTenma/apollo-bun.svg?variant=ghost\u0026size=xs)\n![Last commit](https://www.shieldcn.dev/github/last-commit/GabrielTenma/apollo-bun.svg?variant=secondary\u0026size=xs)\n![Release](https://www.shieldcn.dev/github/release/GabrielTenma/apollo-bun.svg?size=xs)\n![CI](https://www.shieldcn.dev/github/ci/GabrielTenma/apollo-bun.svg?variant=secondary\u0026size=xs)\n![License](https://www.shieldcn.dev/github/license/GabrielTenma/apollo-bun.svg?variant=ghost\u0026size=xs)\n![Agent-friendly AGENTS.md](https://www.shieldcn.dev/badge/Agent--friendly-AGENTS.md-D97757.svg?variant=secondary\u0026size=xs)\n\n\n## Overview\n\nJust 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`.\n\n## How it works\n\nBasically 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.\n\nErrors and structured events are logged via [evlog](https://evlog.dev) — one wide event per failure with full context, no scattered lines.\n\nFor the future plan focusing integrate to stackyrd pkg which `diameter-tscd` project, frontend and manageable web-content.\n\n## Getting Started\n\n### Prerequisites\n\n- Bun (latest)\n- PostgreSQL database / Supabase\n- [OpenRouter](https://openrouter.ai/) API key\n- Telegram bot token (from [@BotFather](https://t.me/BotFather))\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/GabrielTenma/apollo-bun.git\ncd apollo-bun\n\n# Install dependencies\nbun install\n\n# Configure environment variables\ncp .env.example .env\n# Edit .env and fill in your credentials\n```\n\n### Running\n\n```bash\n# Development — Vite frontend + Elysia backend in separate terminals\nbun run dev              # Terminal 1: Elysia backend on :3000\nbun run web:dev          # Terminal 2: Vite frontend on :3001\n\n# Build frontend + start production server (serves frontend from :3000)\nbun run web:build        # Build React app → dist/web/\nbun run start            # Start Elysia server (serves API + frontend)\n```\n\nThe 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`.\n\n\n## Docker\n\nBuild and run with Docker. The image is based on `oven/bun:1-distroless`.\n\n```bash\ndocker build -t apollo .\ndocker run -p 3000:3000 --env-file .env apollo\n```\n\nEnvironment variables are passed via `--env-file` or `-e`. The frontend is baked into the image at build time (served by Elysia `file()` from `/`).\n\nExposed port: **3000**. Health check: `GET /health` → `{\"status\":\"ok\"}`.\n\n\n## Preview\n![Web](.github/assets/preview.png)\n\nFor architecture details, see [DESIGN.md](DESIGN.md).\n\n## License\nUse Apache 2. See `LICENSE` for deal your free time.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrieltenma%2Fapollo-bun","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabrieltenma%2Fapollo-bun","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrieltenma%2Fapollo-bun/lists"}