ODINv2 is the successor of ODINv1. ODIN has been completely rewritten and enables a wide range of new features such as layer-level links and styles, searchable #tags for features, layers, symbols, etc.
Replication in a distributed command and control environment by making use of the [matrix] ecosystem is here. Make sure to join our [matrix] ODIN Community Chat Room to get the latest news about ODIN.
NIDO (ODIN reversed) is a WebSocket-based API that enables external applications to integrate with ODIN in real-time. This opens up powerful possibilities for extending ODIN's capabilities:
- Digital Twin: Mirror ODIN data in external systems for monitoring or backup
- Automation: Programmatically create, update, or delete features from scripts or external tools
- System Integration: Connect ODIN to other C2 systems, sensors, or data sources
- Real-time Analytics: Stream project data to external analytics or visualization tools
External applications can subscribe to live data changes, query project data, send commands to modify layers and features, and even control the map view. All coordinates are exposed in standard GeoJSON format (EPSG:4326 lon/lat).
To connect an external application, click the LAN icon in the ODIN toolbar and configure your WebSocket server URL.
For detailed protocol documentation and examples, see docs/NIDO.md.
ODIN supports two different mechanisms for external data integration:
| NIDO | Live Data Sources | |
|---|---|---|
| Connections | Single connection only | Multiple sources allowed |
| Data persistence | Full persistence (stored in project) | Not persisted (disappears on disconnect) |
| Feature properties | Full access to all properties | Properties not available |
| Control | Full read/write access to all project data | Read-only display on map |
| Security | Use only with trusted servers | Suitable for untrusted/public sources |
NIDO provides complete control over your project and should only be used with servers you fully trust. Live Data Sources are ideal for displaying real-time tracking data from external systems without affecting your project's stored data.
ODINv2 will migrate all of your existing ODINv1 projects on first start. You will be able to further use ODINv1 in parallel but we will not update newly or updated projects after the first start of ODINv2. If you do have any ODINv1 layer files (*.json) you can import them at any time via drag&drop onto the ODINv2 map.
Self-Update is enabled by default and ODIN will check for newer versions. In order to disable Self-Update
one can use the environment variable ODIN_SELF_UPDATE with a value of 0.
If you are not connected to the Internet and you want to use the "Search for places" function you need to host your own OSM Nominatim server. In order
to make ODIN use your on-premise instance of Nominatim you cat use the environment variable NOMINATIM_URL. The default value for this parameter is https://nominatim.openstreetmap.org/search.
You are an offline-first user and want to host your own map server (i.e. on your laptop)? GeoWebServer is way to big and uses too many resources? Just fire up mbtileserver, provide a mbtile file that contains all your map tiles and you are done.
Copyright (c) Syncpoint GmbH. All rights reserved.
Licensed under the GNU Affero GPL v3 License.
When using the ODIN or other GitHub logos, be sure to follow the GitHub logo guidelines.
