{"id":20167649,"url":"https://github.com/iomz/docker-gosstrak-demo","last_synced_at":"2026-05-06T03:34:19.449Z","repository":{"id":142887372,"uuid":"157905073","full_name":"iomz/docker-gosstrak-demo","owner":"iomz","description":"A sample RFID simulation with golemu and gosstrak","archived":false,"fork":false,"pushed_at":"2019-09-02T10:00:06.000Z","size":18734,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-09T10:15:53.519Z","etag":null,"topics":["docker-compose","golang","golemu","gosstrak","grafana"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iomz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2018-11-16T18:17:10.000Z","updated_at":"2024-04-11T16:45:17.000Z","dependencies_parsed_at":"2023-04-04T12:34:10.020Z","dependency_job_id":null,"html_url":"https://github.com/iomz/docker-gosstrak-demo","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/iomz/docker-gosstrak-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iomz%2Fdocker-gosstrak-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iomz%2Fdocker-gosstrak-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iomz%2Fdocker-gosstrak-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iomz%2Fdocker-gosstrak-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iomz","download_url":"https://codeload.github.com/iomz/docker-gosstrak-demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iomz%2Fdocker-gosstrak-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001325,"owners_count":26083040,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["docker-compose","golang","golemu","gosstrak","grafana"],"created_at":"2024-11-14T00:54:38.056Z","updated_at":"2025-10-09T10:15:53.714Z","avatar_url":"https://github.com/iomz.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# docker-gosstrak-demo\n\nThis repository contains a docker-compose for creating a working demo sample for [golemu](https://github.com/iomz/golemu) (LLRP Emulator), [gosstrak-fc](https://github.com/iomz/gosstrak) (Filtering \u0026 Collection middleware), and the visualization of LLRP traffic by [Grafana](https://grafana.com/) and [InfluxDB](https://grafana.com).\n\n![Demo on Grafana](https://i.imgur.com/4mgHa5K.gif)\n\n## What does the demo do?\n\nThe `docker-compose.yml` will spin up 4 docker containers.\n\n- golemu: Run LLRP emulator with the gob files placed in `data/golemu/dataset`. golemu iterates through each `.gob` file and repeat the cycle endlessly.\n- gosstrak: Run Filtering \u0026 Collection middleware to receive the RFID read events from the emulator in LLRP. It filters the tags based on `data/gosstrak/ecspec.csv`. The `ecspec.csv` contains prefix URN of interested ID patterns and its corresponding notification URI. The ID patterns are aggregated with the notification URI; i.e., the first entry is the URI and the rest of the line is the patterns.\n- influxdb: A InfluxDB instance which receives the performance monitoring directly from gosstrak.\n- grafana: Draw realtime plots of gosstrak performance with the InfluxDB instance.\n\nThe latest version of [iomz/gosstrak](https://cloud.docker.com/u/iomz/repository/docker/iomz/gosstrak) docker image on Docker Hub is a custom version of gosstrak which dynamically adopts the efficient filtering algorithm depending on the statistics of event traffic.\n\n## How to setup the demo\n\n1. [Install Docker](https://docs.docker.com/install/) and [docker-compose](https://docs.docker.com/compose/install/) on your system.\n\n2. Clone this repository.\n\n3. (Optional) Prepare golemu and gosstrak docker images if you want to run different versions of them. See [Containers](#containers) section.\n\n4. Download and untar the sample RFID tag dataset from https://github.com/iomz/docker-gosstrak-demo/releases/download/v0.0.1/dataset.tgz then place the `.gob` files in `data/golemu/dataset`.\n\n5. Download the sample filtering rules from https://github.com/iomz/docker-gosstrak-demo/releases/download/v0.0.1/ecspec.csv and place it as `data/gosstrak/ecspec.csv`.\n\n6. Start the containers and wait a while for all the containers to start up. You can then access the Grafana dashboard at `http://localhost:3000` (User/Pass: admin/gosstrak) – navigate to the `gosstrak` dashboard.\n```\n% cd docker-gosstrak-demo\n% docker-compose up\n```\n\n## The containers\n\nThe below assumes this repository is cloned to `~/docker-gosstrak-demo`.\n\n### golemu\n\nBuild the single binary golemu from the source and put build the docker image with it.\n\n1. Build a golemu binary and place it\n```sh\n$GOPATH/src/github.com/iomz/golemu % CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o ~/docker-gosstrak-demo/golemu/golemu .\n```\n\n2. Build a golemu docker image\n```sh\n~/docker-gosstrak-demo/golemu % docker build -t golemu -f Dockerfile.scratch .\n```\n\n### gosstrak\n\nLikewise in golemu.\n\n1. Build gosstrak-fc binary\n```sh\n$GOPAH/src/github.com/iomz/gosstrak % CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o ~/docker-gosstrak-demo/gosstrak/gosstrak-fc ./cmd/gosstrak-fc\n```\n\n2. Build gosstrak docker image\n```sh\n~/docker-gosstrak-demo/gosstrak % docker build -t gosstrak -f Dockerfile.scratch .\n```\n\n## Run only a golemu/gosstrak container\n\n### Run gosstrak container\n\n```sh\n~/docker-gosstrak-demo % docker run --name gosstrak --mount type=bind,source=\u003cpath_to_project\u003e/docker-gosstrak-demo/data/gosstrak,target=/opt/gosstrak gosstrak:latest\n```\n\n### Run golemu container\n\n```sh\n~/docker-gosstrak-demo % docker run --name golemu --mount type=bind,source=\u003cpath_to_project\u003e/docker-gosstrak-demo/data/golemu,target=/opt/golemu golemu:latest\n```\n## License\n\nMIT\n\n## Author\n\nIori Mizutani (a.k.a. iomz)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiomz%2Fdocker-gosstrak-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiomz%2Fdocker-gosstrak-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiomz%2Fdocker-gosstrak-demo/lists"}