{"id":19020586,"url":"https://github.com/simeononsecurity/docker-rtklib-onocoy-rtkdirect","last_synced_at":"2025-04-23T05:58:16.286Z","repository":{"id":209369362,"uuid":"723868210","full_name":"simeononsecurity/docker-rtklib-onocoy-rtkdirect","owner":"simeononsecurity","description":"Docker Container that Takes in USB or TCP Based Serial GPS Receiver Output and Forwards the Data to Either Onocoy or RTKDirect or Both.","archived":false,"fork":false,"pushed_at":"2025-03-18T16:23:52.000Z","size":261,"stargazers_count":16,"open_issues_count":2,"forks_count":2,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-23T05:58:10.600Z","etag":null,"topics":["base","docker","gps","ntrip","onocoy","receiver","rtcm","rtcm3","rtkdirect","rtklib","rtklibexplorer","station"],"latest_commit_sha":null,"homepage":"https://simeononsecurity.com/other/triple-mining-geodnet-onocoy-rtkdirect-gps-revolution/","language":"Shell","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/simeononsecurity.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},"funding":{"github":["simeononsecurity"],"custom":["https://simeononsecurity.com","https://simeononsecurity.com/recommendhome","https://simeononsecurity.com/affiliate","https://twitter.com/simeonsecurity","https://discord.io/cybersentinels"]}},"created_at":"2023-11-26T23:37:39.000Z","updated_at":"2025-03-18T16:25:09.000Z","dependencies_parsed_at":"2024-06-24T06:42:37.929Z","dependency_job_id":"e4e84a72-b7cc-4b80-9aad-22d59623b74d","html_url":"https://github.com/simeononsecurity/docker-rtklib-onocoy-rtkdirect","commit_stats":null,"previous_names":["simeononsecurity/docker-rtklib-onocoy-rtkdirect"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simeononsecurity%2Fdocker-rtklib-onocoy-rtkdirect","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simeononsecurity%2Fdocker-rtklib-onocoy-rtkdirect/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simeononsecurity%2Fdocker-rtklib-onocoy-rtkdirect/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simeononsecurity%2Fdocker-rtklib-onocoy-rtkdirect/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simeononsecurity","download_url":"https://codeload.github.com/simeononsecurity/docker-rtklib-onocoy-rtkdirect/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250379787,"owners_count":21420841,"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":["base","docker","gps","ntrip","onocoy","receiver","rtcm","rtcm3","rtkdirect","rtklib","rtklibexplorer","station"],"created_at":"2024-11-08T20:17:36.871Z","updated_at":"2025-04-23T05:58:16.268Z","avatar_url":"https://github.com/simeononsecurity.png","language":"Shell","funding_links":["https://github.com/sponsors/simeononsecurity","https://simeononsecurity.com","https://simeononsecurity.com/recommendhome","https://simeononsecurity.com/affiliate","https://twitter.com/simeonsecurity","https://discord.io/cybersentinels"],"categories":[],"sub_categories":[],"readme":"# RTKLIB and NTRIPSERVER Docker Image for ONOCOY and RTKDIRECT\n\n[![Sponsor](https://img.shields.io/badge/Sponsor-Click%20Here-ff69b4)](https://github.com/sponsors/simeononsecurity)[![Docker Image CI](https://github.com/simeononsecurity/docker-rtklib-onocoy-rtkdirect/actions/workflows/docker-image.yml/badge.svg)](https://github.com/simeononsecurity/docker-rtklib-onocoy-rtkdirect/actions/workflows/docker-image.yml)\n\nThis Docker image provides a convenient setup for running [RTKLIB](https://www.rtklib.com/) and [NTRIPSERVER](https://github.com/simeononsecurity/ntripserver) with support for [ONOCOY](https://www.onocoy.com/) and [RTKDIRECT](https://rtkdirect.com/) services.\n\nThe image follows the guides we created for the individual services. If you'd like to do this manually, without Docker, please read the articles listed below:\n\n- [ONOCOY GPS/GNSS Receiver Basestation on a Budget](https://simeononsecurity.com/other/onocoy-gps-gnss-reciever-basestation-on-a-budget/)\n- [DIY RTKDirect Reference Station Guide](https://simeononsecurity.com/other/diy-rtkdirect-reference-station-guide/)\n- [Triple Mining Geodnet, Onocoy, and RTKDirect GPS Revolution](https://simeononsecurity.com/other/triple-mining-geodnet-onocoy-rtkdirect-gps-revolution/)\n\nFollow the instructions below to use this image effectively.\n\n## Prerequisites\n\nBefore using this Docker image, make sure you have the following prerequisites installed on your system:\n\n- Docker: [Install Docker](https://docs.docker.com/get-docker/)\n- Docker Compose (optional): [Install Docker Compose](https://docs.docker.com/compose/install/) if you prefer using Docker Compose for managing containers.\n\n### Hardware\n\nFor recommended hardware for this project please read the following:\n\n- [Triple Mining Geodnet, Onocoy, and RTKDirect GPS Revolution - Hardware Requirements](https://simeononsecurity.com/other/triple-mining-geodnet-onocoy-rtkdirect-gps-revolution/#hardware-requirements)\n- [Unveiling the Best GPS Antennas for Onocoy and Geodnet](https://simeononsecurity.com/other/unveiling-best-gps-antennas-onocoy-geodnet/)\n- [Affordable Precision Positioning GNSS Modules](https://simeononsecurity.com/other/affordable-precision-positioning-gnss-modules/)\n\n## Getting Started\n\n1. **Pull the Docker Image**\n\n   Pull the latest version of the Docker image from Docker Hub:\n\n   ```bash\n   docker pull simeononsecurity/docker-rtklib-onocoy-rtkdirect:latest\n   ```\n\n2. **Run the Docker Container**\n\n   Run the Docker container, ensuring that you provide the necessary environment variables and parameters:\n\n    \u003e You don't have to specify both Onocoy and RTKDirect credentials. The backend script is smart and looks to see if they have been set. You can use one or both and this should function perfectly.\n\n   \u003e If the environment variable `ONOCOY_USE_NTRIPSERVER` or `RTKDIRECT_USE_NTRIPSERVER` is specified, the docker container will use **NTRIPSERVER** for Onocoy or RTKDirect respectively, otherwise it'll use **RTKLIB** for the connection to Onocoy and/or RTKDirect. The container will still use RTKLIB for the splitting of the feed no matter what.\n   \u003e `LAT`, `LONG`, `ELEVATION`, `INSTRAMENT`, and `ANTENNA` are all optional and are only used if RTKLIB is being used and NTRIPSERVER is not.\n\n   \u003e You may specify `TCP_OUTPUT_PORT` to change the tcp server's output port if using docker's [host networking mode](https://docs.docker.com/network/#drivers). Otherwise use the appropriate docker [port mappings](https://docs.docker.com/network/#published-ports).\n\n   \u003e You can host any RTKLIB or tcp server instance on another machine and retreive the data using our dockers tcp client mode by defining `TCP_INPUT_IP` and `TCP_INPUT_PORT`. In which you'll specify your tcp servers ip and port.\n\n   \u003e **Note:** Always consult your receiver manufactures documentation to get the correct serial connection information such as `baud rate`, `data bits`, `partity`, and `stop bits`.\n   \n   **Known Default Serial Settings for the Following GPS Receivers**\n   \n   | GPS Receiver    | Baud Rate (bps) | Data Bits | Parity | Stop Bits |\n   |-----------------|------------------|-----------|--------|-----------|\n   | UM980           | 115200           | 8         | None   | 1         |\n   | UM982           | 115200           | 8         | None   | 1         |\n   | Bynav M20       | 115200           | 8         | None   | 1         |\n   | Bynav M21       | 115200           | 8         | None   | 1         |\n   | Ublox F9P       | 38400            | 8         | None   | 1         |\n   | Ublox M8*       | 9600             | 8         | None   | 1         |\n\n   ```bash\n   docker run \\\n     -td \\\n     --restart unless-stopped \\\n     --name sosrtk \\\n     --device=/dev/\u003cYOUR_USB_PORT\u003e \\\n     -e USB_PORT=\u003cYOUR_USB_PORT\u003e \\\n     -e BAUD_RATE=\u003cYOUR_SERIAL_BAUD_RATE\u003e \\\n     -e DATA_BITS=\u003cYOUR_SERIAL_DATA_BITS\u003e \\\n     -e PARITY=\u003cYOUR_SERIAL_PARITY\u003e \\\n     -e STOP_BITS=\u003cYOUR_SERIAL_STOP_BITS\u003e \\\n     -e ONOCOY_USERNAME=\u003cYOUR_ONOCOY_MOUNTPOINT_USERNAME\u003e \\\n     -e ONOCOY_PASSWORD=\u003cYOUR_ONOCOY_MOUNTPOINT_PASSWORD\u003e \\\n     -e RTKDIRECT_MOUNTPOINT=\u003cYOUR_RTKDIRECT_MOUNTPOINT\u003e \\\n     -e RTKDIRECT_USERNAME=\u003cYOUR_RTKDIRECT_MOUNTPOINT_USERNAME\u003e \\\n     -e RTKDIRECT_PASSWORD=\u003cYOUR_RTKDIRECT_MOUNTPOINT_PASSWORD\u003e \\\n     -e LAT=\u003cOPTIONAL_YOUR_LATITUDE\u003e \\\n     -e LONG=\u003cOPTIONAL_YOUR_LONGITUDE\u003e \\\n     -e ELEVATION=\u003cOPTIONAL_YOUR_ELEVATION_FROM_SEA_LEVEL_IN_METERS\u003e \\\n     -e INSTRUMENT=\u003cOPTIONAL_YOUR_GPS_RECEIVER_DESCRIPTION\u003e \\\n     -e ANTENNA=\u003cOPTIONAL_YOUR_ANTENNA_DESCRIPTION\u003e \\\n     simeononsecurity/docker-rtklib-onocoy-rtkdirect:latest\n   ```\n\n   Ensure you replace the placeholder values (`\u003c...\u003e`) with your specific configuration.\n\n   Ex.\n   ```bash\n   docker run \\\n    -td \\\n    --restart unless-stopped \\\n    --name sosrtk \\\n    --device=/dev/ttyUSB0 \\\n    -e USB_PORT=ttyUSB0 \\\n    -e BAUD_RATE=921600 \\\n    -e DATA_BITS=8 \\\n    -e PARITY=n \\\n    -e STOP_BITS=1 \\\n    -e ONOCOY_MOUNTPOINT=YOUR_ONOCOY_MOUNTPOINT \\\n    -e ONOCOY_USERNAME=YOUR_ONOCOY_MOUNTPOINT_USERNAME \\\n    -e ONOCOY_PASSWORD=YOUR_ONOCOY_MOUNTPOINT_PASSWORD \\\n    -e RTKDIRECT_MOUNTPOINT=YOUR_RTKDIRECT_MOUNTPOINT \\\n    -e RTKDIRECT_USERNAME=YOUR_RTKDIRECT_MOUNTPOINT_USERNAME \\\n    -e RTKDIRECT_PASSWORD=YOUR_RTKDIRECT_MOUNTPOINT_PASSWORD \\\n    -e LAT=37.7749 \\\n    -e LONG=-122.4194 \\\n    -e ELEVATION=50 \\\n    -e INSTRUMENT=\"Your GPS Receiver\" \\\n    -e ANTENNA=\"Your Antenna\" \\\n     --log-driver json-file \\\n     --log-opt max-file=5 \\\n     --log-opt max-size=10m \\\n    simeononsecurity/docker-rtklib-onocoy-rtkdirect:latest\n   ```\n\n3. **Monitor Logs**\n\n   Monitor the container logs to check for any issues or to observe the RTKLIB operation:\n\n   ```bash\n   docker logs sosrtk\n   ```\n\n4. **Customize Configuration**\n\n   If needed, you can customize the `docker-init.sh` script and rebuild the Docker image with your changes.\n\n## Docker Compose (Optional)\n\nIf you prefer using Docker Compose, create a `docker-compose.yml` file with your desired configuration and run:\n\n```bash\ndocker-compose up -d\n```\n\nThis will start the container in detached mode.\n\n## Notes\n\n- Ensure that your system allows access to the specified USB port and that the necessary permissions are set.\n- Adjust environment variables according to your specific requirements.\n\nNow you have a Dockerized RTKLIB setup with ONOCOY and RTKDIRECT support. Customize the configuration based on your needs and enjoy precise real-time kinematic positioning!\n\nThis script sets up environment variables, configures `str2str` commands based on specified parameters, and runs them in the background.\n\nFeel free to customize the script and Dockerfile to meet your specific RTKLIB configuration requirements.\n\n\u003ca href=\"https://simeononsecurity.com\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n  \u003ch2\u003eExplore the World of Cybersecurity\u003c/h2\u003e\n\u003c/a\u003e\n\u003ca href=\"https://simeononsecurity.com\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n  \u003cimg src=\"https://simeononsecurity.com/img/banner.png\" alt=\"SimeonOnSecurity Logo\" width=\"300\" height=\"300\"\u003e\n\u003c/a\u003e\n\n## References\n\n- [Give Access to Host USB for Serial Device on Docker Container](https://kb.shawnchen.info/knowledge-base/docker/give-access-to-host-usb-for-serial-device-on-docker-container/)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimeononsecurity%2Fdocker-rtklib-onocoy-rtkdirect","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimeononsecurity%2Fdocker-rtklib-onocoy-rtkdirect","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimeononsecurity%2Fdocker-rtklib-onocoy-rtkdirect/lists"}