{"id":28350748,"url":"https://github.com/radstevee/radscanner","last_synced_at":"2025-08-16T07:13:35.028Z","repository":{"id":191695519,"uuid":"685199141","full_name":"radstevee/radscanner","owner":"radstevee","description":"My take on minecraft server scanning (rust-based)","archived":false,"fork":false,"pushed_at":"2023-09-16T20:02:26.000Z","size":79,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-20T22:42:04.594Z","etag":null,"topics":["ipscanning","liveoverflow","masscan","minecraft","minecraft-server","scanner"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/radstevee.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}},"created_at":"2023-08-30T18:07:55.000Z","updated_at":"2024-08-17T11:26:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"29097ff5-dd78-4bca-93f2-6ce12722ecfb","html_url":"https://github.com/radstevee/radscanner","commit_stats":{"total_commits":19,"total_committers":3,"mean_commits":6.333333333333333,"dds":0.3157894736842105,"last_synced_commit":"2254abdbde9cdddb4e67c6c13c5c75cdb8f9b5c0"},"previous_names":["radstevee/radscanner"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/radstevee/radscanner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radstevee%2Fradscanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radstevee%2Fradscanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radstevee%2Fradscanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radstevee%2Fradscanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/radstevee","download_url":"https://codeload.github.com/radstevee/radscanner/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radstevee%2Fradscanner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270679968,"owners_count":24627098,"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-08-16T02:00:11.002Z","response_time":91,"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":["ipscanning","liveoverflow","masscan","minecraft","minecraft-server","scanner"],"created_at":"2025-05-27T21:38:34.365Z","updated_at":"2025-08-16T07:13:35.021Z","avatar_url":"https://github.com/radstevee.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# radscanner\n\nYou've somehow landed on my pretty-much-alpha version of a Minecraft server scanner.\nThis is essentially my rust learning Project. Capable of scanning ~10000 IPs/h (on my 100Mbit/s connection).\n\n## Usage\n\n```sh\ngit clone https://github.com/radstevee/radscanner.git\n```\n\nConfigure config.toml to your liking.\n\nPut the list of IPs into your configured `input_file` (seperated by a newline)\n\nYou need a MongoDB instance running, in this case it comes with the docker-compose.\n\n## Docker\n\nFirst up, create the network:\n\n```sh\ndocker network create web\n```\n\nThen change the `docker-compose.yml`:\n\nChange the `docker-compose.yml`:\n\n```yaml\nservices:\n    scanner:\n        volumes:\n            - ./config.toml:/usr/src/radscanner/config.toml:ro\n        build: .\n        networks:\n            - internal\n    db:\n        image: mongo\n        restart: always\n        environment:\n            MONGO_INITDB_DATABASE: radscanner\n            MONGO_INITDB_ROOT_USERNAME: root\n            MONGO_INITDB_ROOT_PASSWORD: password # change this, no mongo formatting\n        networks:\n             - internal\n    frontend:\n        image: mongo-express\n        restart: always\n        ports:\n           - 8081:8081\n        environment:\n            # change these to your own values\n            ME_CONFIG_BASICAUTH_USERNAME: username # username for website authentication\n            ME_CONFIG_BASICAUTH_PASSWORD: password # no mongo formatting\n            ME_CONFIG_MONGODB_ENABLE_ADMIN: true\n            ME_CONFIG_MONGODB_ADMINUSERNAME: root\n            ME_CONFIG_MONGODB_ADMINPASSWORD: password # no mongo formatting\n            ME_CONFIG_MONGODB_URL: mongodb://root:password@db:27017/ # *with* mongo formatting\n        networks:\n            - web\n            - internal\n```\n\n(technically it doesn't actually have to be changed since they are on an internal network, but please do it anyways.)\n\nChange the `config.toml`:\n\n```toml\nmongo_hostname = \"db\" # hostname of the mongodb instance (leave this like this if using docker-compose)\nmongo_root_username = \"root\"\nmongo_root_passwd = \"password\" # format this accordingly\n\nmongo_newuser_passwd = \"password\" # no need to format accordingly, password for a *new, created* user\n```\n\nYou can format your passwords and usernames [here](https://www.charset.org/url-encode).\n\nThen run\n\n```sh\ndocker-compose up -d db\n```\n\nWait a couple of seconds *after* it has finished pulling (30-60 seconds on first run)\n\nAnd then start up everything else with\n\n```sh\ndocker-compose up -d\n```\n\nNote that this might take up to ~5 minutes to build, depending on your machine and internet connection.\n\n## Usage of Mongo express\n\nNavigate to `localhost:8081` (of course replace localhost with the IP and 8081 with a different port if you changed it).\n\nLog in with the Basic auth credentials from the `docker-compose.yml`.\n\nNavigate to radscanner/servers\n\nAnd there you go! Found servers will be saved in there.\n\nExtra note: If you're looking for the LiveOverflow Let's Play, use this advanced search query:\n\n```json\n{\n   \"version\": \"Paper 1.19.2\",\n   \"playerdata.max\": { \"$eq\": 50 },\n   \"playerdata.online\": { \"$gte\": 40 },\n   \"motd\": \"A Minecraft Server\"\n}\n```\n\nWith the projection just being `{}`.\n\nAnd that should query the DB for the LiveOverflow Let's Play if it has already been found.\n\n## Todo\n\n- [ ] *Custom* Web UI\n- [ ] Banner output instead of Log-spam\n- [ ] Progress in percent\n- [ ] Logging in to the servers (via matdoesdev/azalea)\n\n## Troubleshooting\n\n- Check if the MongoDB formatting is correct. This is one of the most common mistakes.\n\n- Look at the logs with `docker-compose logs`\n\n- Submit an Issue, I'll have a look.\n\n- Send me a PM on Discord (`@radstevee`)\n- Run\n\n```sh\ndocker compose up --build -d\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradstevee%2Fradscanner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fradstevee%2Fradscanner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradstevee%2Fradscanner/lists"}