{"id":25865460,"url":"https://github.com/dkastl/meshtastic-proxy","last_synced_at":"2025-03-02T01:36:21.372Z","repository":{"id":264359672,"uuid":"881390670","full_name":"dkastl/meshtastic-proxy","owner":"dkastl","description":"Proxy Meshtastic MQTT messages and locations to other services.","archived":false,"fork":false,"pushed_at":"2024-12-05T02:04:56.000Z","size":178,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-01T21:07:48.123Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dkastl.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},"funding":{"github":["dkastl"]}},"created_at":"2024-10-31T13:34:16.000Z","updated_at":"2025-02-26T05:18:41.000Z","dependencies_parsed_at":"2025-03-01T21:18:01.764Z","dependency_job_id":null,"html_url":"https://github.com/dkastl/meshtastic-proxy","commit_stats":null,"previous_names":["georepublic/meshtastic-proxy","dkastl/meshtastic-proxy"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkastl%2Fmeshtastic-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkastl%2Fmeshtastic-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkastl%2Fmeshtastic-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkastl%2Fmeshtastic-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dkastl","download_url":"https://codeload.github.com/dkastl/meshtastic-proxy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241447537,"owners_count":19964314,"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":[],"created_at":"2025-03-02T01:36:20.883Z","updated_at":"2025-03-02T01:36:21.365Z","avatar_url":"https://github.com/dkastl.png","language":"TypeScript","funding_links":["https://github.com/sponsors/dkastl"],"categories":[],"sub_categories":[],"readme":"# Meshtastic Proxy\n\nProxy Meshtastic MQTT messages and locations to other services.\n\n## Features\n\n- **MQTT Integration**: Connects to an MQTT broker to receive Meshtastic messages.\n- **Traccar Integration**: Sends device positions to a Traccar server.\n- **FIWARE Integration**: Upserts device entities and telemetry data to a FIWARE Context Broker.\n- **Caching**: Caches device data for efficient processing.\n- **Logging**: Logs activities and errors with daily rotation.\n- More to come...\n\n## Installation\n\n1. Clone the repository:\n\n  ```sh\n  git clone git@github.com:Georepublic/meshtastic-proxy.git\n  cd meshtastic-proxy\n  ```\n\n2. Install dependencies:\n\n  ```sh\n  yarn install\n  ```\n\n3. Build the project:\n\n  ```sh\n  yarn build\n  ```\n\n## Usage\n\n1. Create a `.env` file based on the `.env.example` file and fill in the\n   necessary configuration values.\n\n2. Start the application:\n\n  ```sh\n  yarn start\n  ```\n\n## Configuration\n\nConfiguration is done via environment variables. Below are the key variables:\n\n- **MQTT Configuration**:\n  - `MQTT_CONNECTION`: MQTT broker URL (e.g., `mqtt://localhost:1883`)\n  - `MQTT_USERNAME`: MQTT broker username\n  - `MQTT_PASSWORD`: MQTT broker password\n  - `MQTT_TOPIC`: MQTT topic to subscribe to (e.g., `meshtastic/#`)\n\n- **Traccar Configuration**:\n  - `TRACCAR_API_URL`: Traccar API URL (e.g., `http://your.traccar.server:8082`)\n  - `TRACCAR_OSMAND_URL`: Traccar OsmAnd endpoint URL (e.g., `http://your.traccar.server:5055`)\n  - `TRACCAR_API_TOKEN`: Traccar API token\n  - `TRACCAR_ID_PREFIX`: Prefix for Traccar device identifiers (e.g., `msh-`)\n\n- **FIWARE Configuration**:\n  - `FIWARE_BROKER`: FIWARE Context Broker URL (e.g., `https://fiware.example.com/orion/v2`)\n  - `FIWARE_SERVICE`: FIWARE service (e.g., `tenant_id`)\n  - `FIWARE_SERVICE_PATH`: FIWARE service path (e.g., `/`)\n\n- **WSO2 Configuration**:\n  - `WSO2_AUTH_URL`: WSO2 OAuth2 token URL (e.g., `https://wso2.example.com/oauth2/token`)\n  - `WSO2_CONSUMER_KEY`: WSO2 consumer key\n  - `WSO2_CONSUMER_SECRET`: WSO2 consumer secret\n\n- **Database Configuration**:\n  - `DUCKDB_PATH`: Path to the DuckDB database file (e.g., `data/meshtastic.db`)\n\n- **Logging Configuration**:\n  - `LOG_LEVEL`: Logging level (e.g., `DEBUG`, `INFO`, `WARN`, `ERROR`)\n\n## Development\n\nTo start the development server with hot-reloading, use:\n\n  ```sh\n  yarn dev\n  ```\n\n## Running with Docker\n\n1. Build the Docker image:\n\n  ```sh\n  docker build -t meshtastic-proxy .\n  ```\n\n2. Run the Docker container:\n\n  ```sh\n  docker run --env-file .env \\\n    -v $(pwd)/data:/app/data \\\n    -v $(pwd)/logs:/app/logs \\\n    -p 3000:3000 meshtastic-proxy\n  ```\n\nAlternatively, you can use docker-compose:\n\n1. Ensure your `.env` file is set up.\n2. Start the services:\n\n  ```sh\n  docker-compose up -d\n  ```\n\n## License\n\nThis project is licensed under the GPL-3.0-or-later - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkastl%2Fmeshtastic-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdkastl%2Fmeshtastic-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkastl%2Fmeshtastic-proxy/lists"}