https://github.com/jamesread/icehive
https://github.com/jamesread/icehive
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/jamesread/icehive
- Owner: jamesread
- License: agpl-3.0
- Created: 2026-05-15T09:04:07.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-23T23:08:59.000Z (about 1 month ago)
- Last Synced: 2026-05-24T01:11:52.118Z (about 1 month ago)
- Language: Go
- Homepage: https://jamesread.github.io/icehive/
- Size: 261 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
IceHive
IceHive is a set of microservices that **collect** data from various APIs, **normalize** it into a standard format, and **store** it in a database.
[](#none)
[](https://goreportcard.com/report/github.com/icehive/icehive)
## What it does
- **Controller** exposes a gRPC API (Connect) for clients to query and request data.
- **Collector binaries** (for example `collector-github`, `collector-azure`, `collector-testdata`) run on a schedule, pull data from a specific vendor API (or emit deterministic test fixtures), normalize it, and publish to RabbitMQ. Shared collector runtime code lives in **common** (`pkg/collector`).
- **Persister binaries** (for example `persister-yaml`, `persister-mysql`) consume normalized messages from the queue and write them using a sink-specific implementation of `persist.Store` in **common** (`pkg/persist`).
- **Common** holds shared library code used by all services (configuration loading, AMQP control helpers, HTTP auth shim wrapper, etc.).
The **frontend** is a web application that talks to the Controller for viewing and requesting data.
## Getting started
You need Go, Node.js, Make, and [Buf](https://buf.build/docs/installation/) for protocol buffers. Clone the repository, generate code, build, and run the component you care about:
```bash
make
```
See `Makefile` targets for build, test, lint, and running individual services. Developer-oriented documentation lives under `docs/` (MkDocs).