{"id":19623133,"url":"https://github.com/robostack/robo-init","last_synced_at":"2025-04-28T04:31:33.816Z","repository":{"id":49551604,"uuid":"375265100","full_name":"RoboStack/robo-init","owner":"RoboStack","description":"Initialization scripts for robots (based on cloud-init)","archived":false,"fork":false,"pushed_at":"2021-06-14T22:18:18.000Z","size":18,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-19T22:22:21.584Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RoboStack.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}},"created_at":"2021-06-09T07:26:42.000Z","updated_at":"2024-12-28T11:31:43.000Z","dependencies_parsed_at":"2022-09-21T11:02:33.669Z","dependency_job_id":null,"html_url":"https://github.com/RoboStack/robo-init","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoboStack%2Frobo-init","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoboStack%2Frobo-init/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoboStack%2Frobo-init/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoboStack%2Frobo-init/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RoboStack","download_url":"https://codeload.github.com/RoboStack/robo-init/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251252093,"owners_count":21559727,"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":"2024-11-11T11:31:54.603Z","updated_at":"2025-04-28T04:31:33.531Z","avatar_url":"https://github.com/RoboStack.png","language":"Python","readme":"# robo-init\n\nrobo-init is an extension to [`cloud-init`](https://cloudinit.readthedocs.io/en/latest/) from Canonical and adds some robot/hardware-specific functionality. If you have a robot which needs \"hardware\"-configuration, you can use `robo-init` to consistently set up things like:\n\n- wifi and other network connections\n- install packages\n- create udev rules for serial or USB communications\n- set up users and user groups\n- configure RaspberryPi and RaspberryPi overlays\n\nrobo-init is an open source project and licensed under the BSD3 license. We're happy to collaborate!\n\n## How to use\n\nYou will have to write a YAML file that describes your desired configuration. An\nexample yaml file is in the `example/niryo.yml` folder. After installing this \nprogram using `pip install -e .` you will be able to run `robo-initgen myfile.yml`.\n\nTo run the example: `robo-initgen example/niryo.yml`\n\nThis will create a new folder: `generated_boot_config`. Inside of this folder, you'll\nfind three files:\n\n- network-config\n- user-data\n- usercfg.txt\n\nThe usercfg.txt file contains the additional configuration for a RaspberryPi.\nThe network-config file contains the network configuration for the wifi and ethernet \nconnections. The user-data contains the information on what users you want to \nset up initially and more. All of this is derived from the initial \"niryo.yml\" file.\n\nIf you're running a Ubuntu RaspberryPi image, you can just drop these files in the \nboot partition and replace the ones that are there by default.\n\n### Configuring the robot as a hotspot\n\n\u003e *NOTE*: we're still investigating how to do this optimally, the current answer is based on [link](https://raspberrypi.stackexchange.com/a/109427).\n\nTo configure the robot as a hotspot / access point you can generate the appropriate netplan configuration through cloud-init. Because the \"NetworkManager\" renderer is required, the `network-manager` package has to be installed first though.\n\n`sudo apt install network-manager`\n\n```yaml\n# you could maybe also write this file directly to `/etc/netplan/10-hotspot.yaml`\n# since cloud-init writes to `50-cloud-init.yaml`, thus overriding the cloud-init config.\nnetwork:\n  version: 2\n  renderer: NetworkManager\n  ethernets:\n    eth0:\n      dhcp4: true\n      optional: true\n  wifis:\n    wlan0:\n      dhcp4: true\n      optional: true\n      access-points:\n        \"Raspberry\":\n          password: \"your password here\"\n          mode: ap\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobostack%2Frobo-init","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobostack%2Frobo-init","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobostack%2Frobo-init/lists"}