{"id":24268282,"url":"https://github.com/fmassin/scpbd","last_synced_at":"2026-01-20T04:01:30.340Z","repository":{"id":64217917,"uuid":"574127245","full_name":"FMassin/scpbd","owner":"FMassin","description":"SeisComP playback in a docker","archived":false,"fork":false,"pushed_at":"2025-08-06T08:47:12.000Z","size":2988,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-24T06:34:24.026Z","etag":null,"topics":["docker","playback","seiscomp"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FMassin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":null,"dco":null,"cla":null}},"created_at":"2022-12-04T14:10:50.000Z","updated_at":"2025-08-06T08:47:15.000Z","dependencies_parsed_at":"2024-09-16T17:04:27.005Z","dependency_job_id":"0b13e4ee-550e-4693-9d79-22a9499ed416","html_url":"https://github.com/FMassin/scpbd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/FMassin/scpbd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FMassin%2Fscpbd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FMassin%2Fscpbd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FMassin%2Fscpbd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FMassin%2Fscpbd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FMassin","download_url":"https://codeload.github.com/FMassin/scpbd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FMassin%2Fscpbd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28595316,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T02:08:49.799Z","status":"ssl_error","status_checked_at":"2026-01-20T02:08:44.148Z","response_time":117,"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":["docker","playback","seiscomp"],"created_at":"2025-01-15T13:35:10.442Z","updated_at":"2026-01-20T04:01:30.322Z","avatar_url":"https://github.com/FMassin.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SeisComP playback in a docker\n\n\u003e Miniseed data playback in SeisComP requires [configuring a dedicated seedlink server appropriately for msrtsimul](https://www.seiscomp.de/doc/base/tutorials/waveformplayback.html) and the related metadata. Using **SeisComP playback in a docker** (`scpbd`), all of this is done automatically via SeisComP tools leaving your system config untouched. The only dependencies are [docker](https://docs.docker.com/engine/install/) and ssh ([OSX](https://support.apple.com/en-gb/guide/mac-help/mchlp1066/mac)).  \n\n\u003e This is based on https://github.com/yannikbehr/sc3-playback developed by @yannikbehr.\n\n1. First, make sure that [you complete `docker login ghcr.io/fmassin/scpbd`](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#authenticating-to-the-container-registry)\n2. Start the docker (only once or when updating docker image, old docker version: replace `host-gateway` by `$(ip addr show docker0 | grep -Po 'inet \\K[\\d.]+')`)\n    ```bash\n    docker stop scpbd \u0026\u0026 docker rm scpbd # That is in case you update an existing one \n    docker run -d \\\n            --add-host=host.docker.internal:host-gateway  \\\n            -p 18000:18000 \\\n            -p 222:22 \\\n            --name scpbd \\\n            ghcr.io/fmassin/scpbd:main\n    ```\n3. Allow container `scpbd` to copy from your computer (once per image run)\n    ```bash\n    docker exec -u 0  -it scpbd ssh-keygen -t rsa -N '' \n    docker exec -u 0  -it scpbd ssh-copy-id $USER@host.docker.internal \n    ```\n4. Define a shortcut function (once per host session)\n    ```bash\n    scpbd () { docker exec -u 0  -it scpbd main $@ ; } \n    ```\n5. Enable (and configure) the required SeisComP automatic processing modules, e.g.:\n    ```bash\n    docker exec -u sysop  -it scpbd /opt/seiscomp/bin/seiscomp enable scautopick scamp  scautoloc scevent sceewenv scvsmag\n\n    # Check or edit the config\n    ssh -p 222 sysop@localhost scconfig\n    ```\n6. Reprocess your data (e.i., `$(pwd)/data.mseed`) using your metadata and its format (e.i., `$(pwd)/inv.xml,sc3` for an `sc3` format, include station level for best efficiency) within a real-time simulation respecting data timestamps (an optional  sqlite3 database can be provided as 3rd argument). Note the IP at the beginning of stdout. The data from the ETHZ-SED EEW unit-test dataset can be found at https://zenodo.org/doi/10.5281/zenodo.11192289:\n    ```bash\n    scpbd $USER@host.docker.internal:$(pwd)/test/data.mseed $USER@host.docker.internal:$(pwd)/test/inv.xml,sc3 \n\n    # Check the data during playback (in another terminal window or tab): \n    slinktool -Q localhost\n    ```\n7. And see the results\n    ```bash\n    ssh -p 222 sysop@localhost /opt/seiscomp/bin/seiscomp exec scolv -d sqlite3:///home/sysop/event_db.sqlite --offline \n    ```\n\n# Build locally and test \nFor developing purpose\n```bash\n# Build fresh image\ndocker build -f \"Dockerfile\" -t scpbd:latest \".\"\n\n# Stop \u0026 remove container\ndocker stop scpbd \u0026\u0026 docker rm scpbd \n\n# Run fresh container\ndocker run -d \\\n        --add-host=host.docker.internal:host-gateway  \\\n        -p 18000:18000 \\\n        -p 222:22 \\\n        --name scpbd \\\n        scpbd:latest\n\n# Allow container `scpbd` to copy from your computer (once per image run)\ndocker exec -u 0  -it scpbd ssh-keygen -t rsa -N '' \ndocker exec -u 0  -it scpbd ssh-copy-id $USER@host.docker.internal \n\n# Define an `scpbd` shortcut function (once per host session)\nscpbd () { docker exec -u 0  -it scpbd main $@ ; } \n\n# Enable automatic processing modules in `scpbd` container (once per container run)\ndocker exec -u sysop  -it scpbd /opt/seiscomp/bin/seiscomp enable scautopick scamp  scautoloc scevent sceewenv scvsmag\n\n# Run playback\nscpbd $USER@host.docker.internal:$(pwd)/test/data.mseed $USER@host.docker.internal:$(pwd)/test/inv.xml,sc3 \n\n# See results\nssh -p 222 sysop@localhost /opt/seiscomp/bin/seiscomp exec scolv -d sqlite3:///home/sysop/event_db.sqlite --offline \n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffmassin%2Fscpbd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffmassin%2Fscpbd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffmassin%2Fscpbd/lists"}