{"id":13618497,"url":"https://github.com/WAGO/aws-iot-greengrass","last_synced_at":"2025-04-14T13:31:17.727Z","repository":{"id":138301529,"uuid":"157714835","full_name":"WAGO/aws-iot-greengrass","owner":"WAGO","description":"Docker image for running AWS Greengrass on arm32v7 devices like WAGO  PFC200 G2 or Wago Touch Panel","archived":false,"fork":false,"pushed_at":"2022-06-13T13:24:37.000Z","size":1822,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-02T21:38:30.999Z","etag":null,"topics":["arm32v7","aws","docker","greengrass","pfc200","touch-panel"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WAGO.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-11-15T13:20:10.000Z","updated_at":"2023-02-23T10:36:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"d146bf64-99dd-4966-93c5-abf00bdee58c","html_url":"https://github.com/WAGO/aws-iot-greengrass","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/WAGO%2Faws-iot-greengrass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WAGO%2Faws-iot-greengrass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WAGO%2Faws-iot-greengrass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WAGO%2Faws-iot-greengrass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WAGO","download_url":"https://codeload.github.com/WAGO/aws-iot-greengrass/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223633342,"owners_count":17176791,"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":["arm32v7","aws","docker","greengrass","pfc200","touch-panel"],"created_at":"2024-08-01T21:00:19.538Z","updated_at":"2024-11-08T04:31:05.026Z","avatar_url":"https://github.com/WAGO.png","language":"Dockerfile","funding_links":[],"categories":["Cloud"],"sub_categories":[],"readme":"## Statistics Docker Hub\n\n[![DockerHub stars](https://img.shields.io/docker/stars/wagoautomation/aws-iot-greengrass.svg?flat\u0026logo=docker \"DockerHub stars\")](https://hub.docker.com/r/wagoautomation/azure-iot-edge)\n[![DockerHub pulls](https://img.shields.io/docker/pulls/wagoautomation/aws-iot-greengrass.svg?flat\u0026logo=docker \"DockerHub pulls\")](https://hub.docker.com/r/wagoautomation/azure-iot-edge)\n[![DockerHub azure-piplene build-status](https://dev.azure.com/WagoAutomation/aws-iot-greengrass/_apis/build/status/WAGO.aws-iot-greengrass?branchName=azure-pipelines)](https://dev.azure.com/WagoAutomation/aws-iot-greengrass/_build/latest?definitionId=1\u0026branchName=azure-pipelines)\n\n## Statistics Git Hub\n\n[![GitHub issues](https://img.shields.io/github/issues/WAGO/aws-iot-greengrass.svg \"GitHub issues\")](https://github.com/WAGO/aws-iot-greengrass/issues)\n[![GitHub stars](https://img.shields.io/github/stars/WAGO/aws-iot-greengrass.svg \"GitHub stars\")](https://github.com/WAGO/aws-iot-greengrass/stargazers)\n\n\n# How to setup AWS IoT Greengrass on a Wago Device\n\n## Prerequisites for tutorial\n- Preinstalled SSH Client (e.g. https://www.putty.org/)\n- Wago Device e.g. PFC200 G2 or Wago Touch Panel with minimal Firmware 12\n  - Firmware you can find here: https://github.com/WAGO/pfc-firmware\n  - Docker IPKG you can find here: https://github.com/WAGO/docker-ipk\n- AWS account \n \n\n ## Configure AWS IoT Greengrass on AWS IoT\n https://docs.aws.amazon.com/greengrass/latest/developerguide/gg-config.html \n\n\u003e \u003cspan style=\"color:red;\"\u003e Attention: \u003c/span\u003e Skip step 8b of the procedure because AWS IoT Greengrass core and its runtime dependencies are already set up in the docker image.\n\u003cbr\u003e \n\nAt the end of all steps you should have downloaded the security resources for the newly created Greengrasscore device. \n- \u003cyour_guid\u003e-setup.tar.gz \u003cbr\u003e\n\nThis file will be needed in the later steps. \n\n## WAGO Device Configuration\n\n### Wago Device Login\nStart SSH Client e.g. Putty \n ```bash\nlogin as `root`\npassword `wago`\n ```\n### Check docker installation\n```bash\ndocker info\n ```\n\n### Enable symlink and hardlink protection. \n* To enable the settings only for the current boot:\n\n``` bash\necho 1 \u003e /proc/sys/fs/protected_hardlinks\necho 1 \u003e /proc/sys/fs/protected_symlinks\n```\n\n* To enable the settings to persist across restarts:\n\n``` bash\necho '# AWS Greengrass' \u003e\u003e /etc/sysctl.conf\necho 'fs.protected_hardlinks = 1' \u003e\u003e /etc/sysctl.conf\necho 'fs.protected_symlinks = 1' \u003e\u003e /etc/sysctl.conf\n\nsysctl -p\n```\n\n### Create a Greengrass working directory\n\nYou can create any working directory for Greengrass. (e.g.)\n\n``` bash\nmkdir /home/greengrass\ncd  /home/greengrass\n```\n\nDownload the root CA certificate into the Greengrass working directory (for more information see the documentation https://docs.aws.amazon.com/iot/latest/developerguide/managing-device-certs.html).\n\n``` bash\n  wget -O root.ca.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem\nor\n  wget -O root.ca.pem https://www.symantec.com/content/en/us/enterprise/verisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem\n```\n\nCopy file \"\u003cyour_guid\u003e-setup.tar.gz\" to greengrass working directory on your Wago device. (for this you can use WinSCP or any Ftp client) \u003cbr\u003e \nFinally decompress file \"\u003cyour_guid\u003e-setup.tar.gz\"\n\n``` bash\ntar xvzf guid-setup.tar.gz\n```\n\nAfterwards, the working directory should contain following files.\n\u003cbr\u003e\n\u003cdiv style=\"text-align\"\u003e\n\u003cimg src=\"images/working_folder.png\"\n     alt=\"working_folder\"/\u003e\n\u003c/div\u003e\n\n## Running AWS IoT Greengrass Docker Container\n\n``` bash\ndocker run -it \\\n--init \\\n--name aws-iot-greengrass \\\n-v /home/greengrass/certs:/greengrass/certs \\\n-v /home/greengrass/config:/greengrass/config \\\n-p 8883:8883 \\\nwagoautomation/aws-iot-greengrass\n```\n\nThe output should look like this example:\n```\nSetting up greengrass daemon\nValidating hardlink/softlink protection\nWaiting for up to 30s for Daemon to start\n\nGreengrass successfully started with PID: 10\n```\n\n### Persist Greengrass Runtime Logs outside the Greengrass Docker Container\nYou can run the AWS IoT Greengrass Docker container after bind-mounting the ```/greengrass/ggc/var/log``` directory to persist logs even after the container has exited or is removed.\n```\ndocker run --rm --init -it --name aws-iot-greengrass \\\n--entrypoint /greengrass-entrypoint.sh \\\n-v /home/greengrass/certs:/greengrass/certs \\\n-v /home/greengrass/config:/greengrass/config \\\n-v /home/greengrass/log:/greengrass/ggc/var/log \\\n-p 8883:8883 \\\nwagoautomation/aws-iot-greengrass\n```\n### Deploy Lambda Functions to the AWS IoT Greengrass Docker Container\n\nYou can deploy long-lived Lambda functions to the Greengrass Docker container.\n\nFollow the steps in \"Module 3 (Part 1): Lambda Functions on AWS IoT Greengrass\" (https://docs.aws.amazon.com/greengrass/latest/developerguide/module3-I.html) to deploy a long-lived Hello-World Lambda function to the container.\n\n## Links\n\nhttps://docs.aws.amazon.com/de_de/greengrass/latest/developerguide/run-gg-in-docker-container.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWAGO%2Faws-iot-greengrass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FWAGO%2Faws-iot-greengrass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWAGO%2Faws-iot-greengrass/lists"}