{"id":13691506,"url":"https://github.com/eclipse-ditto/ditto","last_synced_at":"2026-01-22T18:07:05.861Z","repository":{"id":38360261,"uuid":"87849739","full_name":"eclipse-ditto/ditto","owner":"eclipse-ditto","description":"Eclipse Ditto™: Digital Twin framework of Eclipse IoT - main repository","archived":false,"fork":false,"pushed_at":"2025-05-07T13:12:58.000Z","size":155288,"stargazers_count":738,"open_issues_count":89,"forks_count":239,"subscribers_count":31,"default_branch":"master","last_synced_at":"2025-05-07T14:27:19.381Z","etag":null,"topics":["digital-shadow","digital-twin","digital-twins","ditto","eclipse-ditto","eclipseiot","hacktoberfest","internet-of-things","iot","java","javascript","mongodb","w3c","web-of-things","wot"],"latest_commit_sha":null,"homepage":"https://eclipse.dev/ditto/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eclipse-ditto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-04-10T19:29:57.000Z","updated_at":"2025-05-07T13:13:03.000Z","dependencies_parsed_at":"2023-12-18T22:32:24.844Z","dependency_job_id":"e5ff959b-1062-4d36-91da-3e903f899cc9","html_url":"https://github.com/eclipse-ditto/ditto","commit_stats":{"total_commits":9559,"total_committers":95,"mean_commits":"100.62105263157895","dds":0.8713254524531855,"last_synced_commit":"3dd1cfe5b048b88328c0f2712a598bf3a86ef266"},"previous_names":["eclipse/ditto"],"tags_count":104,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-ditto%2Fditto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-ditto%2Fditto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-ditto%2Fditto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-ditto%2Fditto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eclipse-ditto","download_url":"https://codeload.github.com/eclipse-ditto/ditto/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254219374,"owners_count":22034397,"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":["digital-shadow","digital-twin","digital-twins","ditto","eclipse-ditto","eclipseiot","hacktoberfest","internet-of-things","iot","java","javascript","mongodb","w3c","web-of-things","wot"],"created_at":"2024-08-02T17:00:45.883Z","updated_at":"2026-01-22T18:07:04.603Z","avatar_url":"https://github.com/eclipse-ditto.png","language":"Java","funding_links":[],"categories":["_Table of Contents_","Process Monitoring \u0026 Digital Twins"],"sub_categories":["_Projects in the curated list are filtered based on the following conditions:_","Pre/Post Processing \u0026 Meshing"],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/eclipse/ditto/master/logo/ditto_fordarkbg.svg?sanitize=true#gh-dark-mode-only\" alt=\"Ditto Logo dark\" height=\"250\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/eclipse/ditto/master/logo/ditto.svg?sanitize=true#gh-light-mode-only\" alt=\"Ditto Logo light\" height=\"250\"\u003e\n\u003c/div\u003e\n\n\n# Eclipse Ditto™\n\n[![Join the chat at https://gitter.im/eclipse/ditto](https://badges.gitter.im/eclipse/ditto.svg)](https://gitter.im/eclipse/ditto?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Build Status](https://github.com/eclipse-ditto/ditto/actions/workflows/maven.yml/badge.svg)](https://github.com/eclipse-ditto/ditto/actions/workflows/maven.yml?query=workflow%3Abuild)\n[![Maven Central](https://img.shields.io/maven-central/v/org.eclipse.ditto/ditto?label=maven)](https://search.maven.org/search?q=g:org.eclipse.ditto)\n[![Docker pulls](https://img.shields.io/docker/pulls/eclipse/ditto-things.svg)](https://hub.docker.com/search?q=eclipse%2Fditto\u0026type=image)\n[![License](https://img.shields.io/badge/License-EPL%202.0-green.svg)](https://opensource.org/licenses/EPL-2.0)\n[![Lines of code](https://img.shields.io/badge/dynamic/xml.svg?label=Lines%20of%20code\u0026url=https%3A%2F%2Fwww.openhub.net%2Fprojects%2Feclipse-ditto.xml%3Fapi_key%3D11ac3aa12a364fd87b461559a7eedcc53e18fb5a4cf1e43e02cb7a615f1f3d4f\u0026query=%2Fresponse%2Fresult%2Fproject%2Fanalysis%2Ftotal_code_lines\u0026colorB=lightgrey)](https://www.openhub.net/p/eclipse-ditto)\n\n[Eclipse Ditto](https://www.eclipse.dev/ditto/)™ is a technology in the IoT implementing a software pattern called “digital twins”.  \nA digital twin is a virtual, cloud based, representation of his real world counterpart (real world “Things”, e.g. devices like sensors, smart heating, connected cars, smart grids, EV charging stations, …).\n\nAn ever growing list of [adopters](https://iot.eclipse.org/adopters/?#iot.ditto) makes use of Ditto as part of their IoT platforms - if you're as well using it, it would be super nice to show your [adoption here](https://iot.eclipse.org/adopters/how-to-be-listed-as-an-adopter/).\n\n## Documentation\n\nFind the documentation on the project site: [https://www.eclipse.dev/ditto/](https://www.eclipse.dev/ditto/)\n\n## Eclipse Ditto™ explorer UI\n\nFind a live version of the latest explorer UI: [https://eclipse-ditto.github.io/ditto/](https://eclipse-ditto.github.io/ditto/?primaryEnvironmentName=ditto_sandbox)\n\nYou should be able to work with your locally running default using the `local_ditto` environment - and you can add additional environments to also work with e.g. with a deployed installation of Ditto.\n\n## Star History\n\n\u003ca href=\"https://star-history.com/#eclipse-ditto/ditto\u0026Date\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=eclipse-ditto/ditto\u0026type=Date\u0026theme=dark\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=eclipse-ditto/ditto\u0026type=Date\" /\u003e\n    \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=eclipse-ditto/ditto\u0026type=Date\" /\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\n\n## Getting started\n\nIn order to start up Ditto via *Docker Compose*, you'll need:\n* a running Docker daemon\n* Docker Compose installed\n* for a \"single instance\" setup on a local machine:\n  * at least 2 CPU cores which can be used by Docker\n  * at least 4 GB of RAM which can be used by Docker\n\nYou also have other possibilities to run Ditto, please have a look [here](https://github.com/eclipse-ditto/ditto/tree/master/deployment) to explore them.\n\n### Start Ditto\n\nIn order to start the latest built Docker images from Docker Hub, simply execute:\n\n```bash\ncd deployment/docker/\ndocker-compose up -d\n```\n\nCheck the logs after starting up:\n```bash\ndocker-compose logs -f\n```\n\nOpen following URL to get started: [http://localhost:8080](http://localhost:8080)\u003cbr/\u003e\nOr have a look at the [\"Hello World\"](https://www.eclipse.dev/ditto/intro-hello-world.html)\n\nAdditional [deployment options](deployment/) are also available, if Docker Compose is not what you want to use.\n\n## Development Guide\n\nIf you plan to develop extensions in Ditto or to contribute some code, the following steps are of interest for you.\n\n\u003e :warning: **If you just want to start/use Ditto**, please ingore the following sections! \n\n### Build and start Ditto locally\n\nIn order to build Ditto, you'll need:\n* JDK \u003e= 21 \n* Apache Maven \u003e= 3.9.x installed.\n* a running Docker daemon\n\nIn order to first build Ditto and then start the built Docker images.\n\n#### 1. Build Ditto with Maven\n```bash\nmvn clean install\n```\n\nSkip tests:\n```bash\nmvn clean install -DskipTests\n```\n\n#### 2. Build local Ditto Docker snapshot images\n```bash\n./build-images.sh\n```\nIf your infrastructure requires a proxy, its host and port can be set using the `-p` option like for example:\n```bash\n./build-images.sh -p 172.17.0.1:3128\n```\nPlease note that the given host and port automatically applies for HTTP and HTTPS.\n\n#### 3. Start Ditto with local snapshot images\n```bash\ncd ../deployment/docker/\n# the \"dev.env\" file contains the SNAPSHOT number of Ditto, copy it to \".env\" so that docker compose uses it:\ncp dev.env .env\ndocker-compose up -d\n```\n\nCheck the logs after starting up:\n```bash\ndocker-compose logs -f\n```\n\nYou have now running:\n* a MongoDB as backing datastore of Ditto (not part of Ditto but started via Docker)\n* Ditto microservices:\n   * Policies\n   * Things\n   * Things-Search\n   * Gateway\n   * Connectivity\n* an nginx acting as a reverse proxy performing a simple \"basic authentication\" listening on port `8080`\n   * including some static HTTP + API documentation on [http://localhost:8080](http://localhost:8080)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-ditto%2Fditto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feclipse-ditto%2Fditto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-ditto%2Fditto/lists"}