{"id":16367773,"url":"https://github.com/jackgruber/docker_dustcloud","last_synced_at":"2025-03-23T02:33:09.950Z","repository":{"id":158957248,"uuid":"127209832","full_name":"JackGruber/docker_dustcloud","owner":"JackGruber","description":"Docker containers for Xiaomi Mi Robot Vacuum dustcloud","archived":false,"fork":false,"pushed_at":"2018-12-19T08:10:55.000Z","size":93,"stargazers_count":17,"open_issues_count":0,"forks_count":4,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-15T02:11:41.649Z","etag":null,"topics":["arm","docker","dustcloud","raspberry-pi","rpi","x64","xiaomi"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","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/JackGruber.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":"2018-03-28T23:20:08.000Z","updated_at":"2022-08-25T15:02:51.000Z","dependencies_parsed_at":"2023-06-15T02:30:17.128Z","dependency_job_id":null,"html_url":"https://github.com/JackGruber/docker_dustcloud","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JackGruber%2Fdocker_dustcloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JackGruber%2Fdocker_dustcloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JackGruber%2Fdocker_dustcloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JackGruber%2Fdocker_dustcloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JackGruber","download_url":"https://codeload.github.com/JackGruber/docker_dustcloud/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245047981,"owners_count":20552430,"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":["arm","docker","dustcloud","raspberry-pi","rpi","x64","xiaomi"],"created_at":"2024-10-11T02:50:49.340Z","updated_at":"2025-03-23T02:33:09.707Z","avatar_url":"https://github.com/JackGruber.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Docker containers for Xiaomi Mi Robot Vacuum dustcloud\n\nDocker container for https://github.com/dgiese/dustcloud\n\n## Docker HUB information\n[![](https://images.microbadger.com/badges/version/jackgruber/dustcloud:amd64.svg)](https://microbadger.com/images/jackgruber/dustcloud:amd64 \"Get your own version badge on microbadger.com\")\n[![](https://images.microbadger.com/badges/commit/jackgruber/dustcloud:amd64.svg)](https://microbadger.com/images/jackgruber/dustcloud:amd64 \"Get your own commit badge on microbadger.com\")\n[![](https://images.microbadger.com/badges/image/jackgruber/dustcloud:amd64.svg)](https://microbadger.com/images/jackgruber/dustcloud:amd64 \"Get your own image badge on microbadger.com\")   \n[![](https://images.microbadger.com/badges/version/jackgruber/dustcloud:armhf.svg)](https://microbadger.com/images/jackgruber/dustcloud:armhf \"Get your own version badge on microbadger.com\")\n[![](https://images.microbadger.com/badges/commit/jackgruber/dustcloud:armhf.svg)](https://microbadger.com/images/jackgruber/dustcloud:armhf \"Get your own commit badge on microbadger.com\")\n[![](https://images.microbadger.com/badges/image/jackgruber/dustcloud:armhf.svg)](https://microbadger.com/images/jackgruber/dustcloud:armhf \"Get your own image badge on microbadger.com\")\n\n## Getting Started\nCreates three docker containers for Raspberry Pi and Linux x64\n- DB Server\n- phpMyAdmin\n- Dustcloud \n\nThe phpmyadmin and the DB server are optionale, you can use your existings instances.\nYou can use the dustcloud from Docker Hub or build your own from the Repro. \n\n\n## Docker preparations\n\n**Run DB container (optional)**\n\n```\ndocker run --name dustcloud_mariadb -d -e MYSQL_ROOT_PASSWORD=rootdustcloudpw \\\n-e TZ=$(cat /etc/timezone) jackgruber/mariadb\n```\n\n**Run phpMyAdmin container (optional)**\n\n```\ndocker run --name dustcloud_pma -d --link dustcloud_mariadb:db -p 8080:80 jackgruber/phpmyadmin\n```\n\n**Run dustcloud container**\n\n```\ndocker run --name dustcloud -d --link dustcloud_mariadb:db \\\n-p 80-81:80-81/tcp -p 8053:8053/udp \\\n-e TZ=$(cat /etc/timezone) \\\n-v /tmp/data:/opt/dustcloud/data \\\njackgruber/dustcloud\n```\n\n## Use with docker-compose (optional)\nInstead of creating each container one by one you can youse docker-compose.  \nChange/Add the environment variables in the `docker-compose.yml` according to your needs.\n\n## Create database\n\nLogin to phpMyAdmin ( http://YOURIP:8080 ) an execute\n```\nCREATE USER 'dustcloud'@'%' IDENTIFIED by 'dustcloudpw';\nGRANT USAGE ON *.* TO 'dustcloud'@'%';\nCREATE DATABASE IF NOT EXISTS `dustcloud`;\nGRANT ALL PRIVILEGES ON `dustcloud`.* TO 'dustcloud'@'%';\n```\n\nCopy the content from the ```dustcloud.sql``` ans execute the SQL Querys in phpMyAdmin\n```\nhttps://github.com/dgiese/dustcloud/blob/master/dustcloud/dustcloud.sql\n```\n\n## Configuration\nThese options can be set via the environment variable -e flag:\n\n- **CLOUDSERVERIP**: Your Dustcloud IP address (Default: 130.83.47.181, Values: \\\u003cIP addr\u003e)\n- **MYSQLSERVER**: MySQL Server address (Default: db, Values: \\\u003cIP addr\u003e or \\\u003cDNS name\u003e)\n- **MYSQLDB**: MySQL database for dustcloud (Default: dustcloud, Values: \\\u003cstring\u003e)\n- **MYSQLUSER**: User for MySQL database (Default: dustcloud, Values: \\\u003cstring\u003e)\n- **MYSQLPW**: Password for MySQL database (Default: dustcloudpw, Values: \\\u003cstring\u003e)\n- **CMDSERVER**: Command Server IP or DNS Name (Default: 192.168.1.7, Values: \\\u003cIP addr\u003e or \\\u003cDNS name\u003e)\n- **CMDSERVER_PORT**: Port number for command server (Default: 1121, Values: \\\u003c1-65535\u003e)\n- **TZ**: Set Timezone (Default: Europe/Berlin, Values: \\\u003c[TZ](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)\u003e)\n- **COUNTRYSERVER**: Set cloud_server_address in server.py (Default: ott.io.mi.com, Values: \\\u003cDNS name\u003e)\n- **DEBUG**: (Default: false, Values: \\\u003ctrue|false\u003e)\n\n## Build your own dustcloud image from Dockerfile\n\n```\ndocker build -t dustcloud .\n```\n##  Add your Vacuum to dustcloud\nGo to http://DUSTCLOUDIP:81 and add your Vacuum. DID and enckey can be found both in ```/mnt/default/device.conf``` on your robot\n\n## Show server.py output\n```\ndocker logs -f dustcloud\n```\n\n## Running python-miio (mirobo) commands\n```\ndocker exec dustcloud mirobo discover --handshake true\ndocker exec dustcloud mirobo --ip=192.168.X.X --token=XXX\n...\n```\n\n## Live map upload\n1. Download [upload_maps.sh](https://github.com/dgiese/dustcloud/blob/master/dustcloud/upload_map.sh) \n2. Edit upload_map.sh and change DUSTCLOUD_SERVER=`192.168.xx.yy` to your dustcloud Server IP\n3. Upload upload_map.sh to your Xiaomi\n4. Make file executable `chmod +x upload_map.sh`\n5. Start the upload with `watch -n5 ./upload_map.sh`\n\n## Extract cleaning maps\n1. Copy the robot.db from you Xiaomi ```/mnt/data/rockrobo/robot.db``` to ```/tmp/data```\n2. Run ```docker exec dustcloud python3 /opt/dustcloud/map_extractor.py -f /opt/dustcloud/data/robot.db -o /opt/dustcloud/data -c```\n3. The extracted maps are now in ```/tmp/data``` and can now be opened with FasteStone Image Viewer or IrfanView\n\n## Links\nphpMyAdmin https://github.com/JackGruber/docker_phpmyadmin  \nMariaDB https://github.com/bianjp/docker-mariadb-alpine  \npython-miio Commands https://python-miio.readthedocs.io/en/latest/vacuum.html  \ndustcloud https://github.com/dgiese/dustcloud \n\n## Changelog\n\n### 19.12.208\n- File docker-compose.yml updated, now the dock-hub image is used and the path for the data directory has been corrected \n\n### 07.12.2018\n- Update for giese/dustcloud [new frontend UI #136](https://github.com/dgiese/dustcloud/pull/136)\n\n### 13.11.2018\n- Update pip \n\n### 28.10.2018\n- Add docker-compose\n- Change examples to multiarch images\n\n### 01.06.2018\n- Add composer support \n- Add COUNTRYSERVER (Cloud country server) option to change ```cloud_server_address``` in server.py \n\n### 12.05.2018\n- Change to ENV var configuration settings\n\n### 07.04.2018\n- Add timezone to php.ini\n\n### 02.04.2018\n- Changed to alpine as base image, so there is only one docker file for Raspberry Pi and x64. \n- Also the size has been reduced from 592MB to 180MB for the docker image\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackgruber%2Fdocker_dustcloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjackgruber%2Fdocker_dustcloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackgruber%2Fdocker_dustcloud/lists"}