{"id":15168610,"url":"https://github.com/opusvl/p6-geotrack-daemon","last_synced_at":"2026-01-21T07:33:40.617Z","repository":{"id":148072116,"uuid":"214444138","full_name":"OpusVL/p6-geotrack-daemon","owner":"OpusVL","description":"Perl 6 daemon to slurp netXML files and parse the data into a PostgreSQL database.","archived":false,"fork":false,"pushed_at":"2019-11-14T11:54:44.000Z","size":18,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-15T09:35:22.171Z","etag":null,"topics":["airmon-ng","netxml","perl6","perl6-application"],"latest_commit_sha":null,"homepage":null,"language":"Perl 6","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpusVL.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}},"created_at":"2019-10-11T13:31:11.000Z","updated_at":"2019-11-14T11:54:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"0354698f-3081-42d4-9aa8-876bfeea4ec6","html_url":"https://github.com/OpusVL/p6-geotrack-daemon","commit_stats":{"total_commits":9,"total_committers":1,"mean_commits":9.0,"dds":0.0,"last_synced_commit":"51ed4a3f6da0811abd1e11676d0a63078b2fab8b"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpusVL%2Fp6-geotrack-daemon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpusVL%2Fp6-geotrack-daemon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpusVL%2Fp6-geotrack-daemon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpusVL%2Fp6-geotrack-daemon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpusVL","download_url":"https://codeload.github.com/OpusVL/p6-geotrack-daemon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248060478,"owners_count":21041160,"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","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":["airmon-ng","netxml","perl6","perl6-application"],"created_at":"2024-09-27T06:23:45.410Z","updated_at":"2026-01-21T07:33:40.577Z","avatar_url":"https://github.com/OpusVL.png","language":"Perl 6","funding_links":[],"categories":[],"sub_categories":[],"readme":"# p6-geotrack-daemon\nPerl 6 daemon to slurp netXML files and parse the data into a PostgreSQL database.\n\n## Dependencies\n\n- Rakudo 2019.03 (Perl 6.d)\n- libpq-dev\n\n### Zef modules\n\n```\nzef install XML DB::Pg JSON::Fast Terminal::ANSIColor\n```\n\n## Configuration\n\n## Preparing a PostgreSQL database\nTo prepare your PostgreSQL database, use the provided example [`database-tables.sql`](https://github.com/OpusVL/p6-geotrack-daemon/blob/master/database-tables.sql) file to create the two required tables. I've personally been testing with the [`mdillon/postgis`](https://hub.docker.com/r/mdillon/postgis) Dockerfile which gives us a not-so unreasonable PostgreSQL 11.2 to work with.\n```sql\nCREATE DATABASE geotrack;\nCREATE EXTENSION postgis;\n\nCREATE TABLE \"access-points\" (\n    name text NOT NULL,\n    description text,\n    location geography(POINT),\n    PRIMARY KEY (name)\n);\n\nCREATE TABLE \"client-data\" (\n    client text NOT NULL,\n    \"client-manufacturer\" text DEFAULT NULL,\n    \"access-point\" text NOT NULL,\n    \"last-signal-dbm\" int,\n    \"last-noise-dbm\" int,\n    \"last-signal-rssi\" int,\n    \"last-noise-rssi\" int,\n    \"min-signal-dbm\" int,\n    \"min-noise-dbm\" int,\n    \"min-signal-rssi\" int,\n    \"min-noise-rssi\" int,\n    \"max-signal-dbm\" int,\n    \"max-noise-dbm\" int,\n    \"max-signal-rssi\" int,\n    \"max-noise-rssi\" int,\n    timestamp timestamptz NOT NULL,\n    FOREIGN KEY (\"access-point\") REFERENCES \"access-points\"(name)\n);\n```\n### Access Points\n\nFor each wireless basestation, you'll need to do some manual SQL queries to add a new 'access point' to the `access-points` table. This involves first discovering the coordinates of the physical location and using the PostGIS extension to convert that data into a `geography(POINT)`.\n```sql\ngeotrack=# SELECT ST_GeometryFromText('POINT(52.3710507 -1.264331)', 4326);\n                st_geometryfromtext                 \n----------------------------------------------------\n 0101000020E610000036D4DE967E2F4A40871A8524B33AF4BF\n(1 row)\n```\nWith this information, we can now add our new access point.\n```sql\nINSERT INTO \"access-points\" VALUES ('opusvlwifi', 'OpusVL Office Wifi', '0101000020E610000036D4DE967E2F4A40871A8524B33AF4BF');\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopusvl%2Fp6-geotrack-daemon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopusvl%2Fp6-geotrack-daemon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopusvl%2Fp6-geotrack-daemon/lists"}