{"id":24811128,"url":"https://github.com/thin-edge/tedge-services","last_synced_at":"2025-03-25T13:24:12.983Z","repository":{"id":183246650,"uuid":"636296881","full_name":"thin-edge/tedge-services","owner":"thin-edge","description":"thin-edge.io service definitions for various init systems","archived":false,"fork":false,"pushed_at":"2025-03-05T18:56:06.000Z","size":165,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-05T19:28:00.691Z","etag":null,"topics":["community","iot","thin-edge"],"latest_commit_sha":null,"homepage":"https://thin-edge.io","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thin-edge.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":"2023-05-04T14:28:22.000Z","updated_at":"2025-03-05T18:55:38.000Z","dependencies_parsed_at":"2023-11-07T23:14:30.495Z","dependency_job_id":"cdfc520b-9f7d-4eb7-8b7e-666f20e94acd","html_url":"https://github.com/thin-edge/tedge-services","commit_stats":null,"previous_names":["thin-edge/tedge-services-openrc","thin-edge/tedge-services"],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thin-edge%2Ftedge-services","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thin-edge%2Ftedge-services/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thin-edge%2Ftedge-services/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thin-edge%2Ftedge-services/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thin-edge","download_url":"https://codeload.github.com/thin-edge/tedge-services/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245468731,"owners_count":20620442,"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":["community","iot","thin-edge"],"created_at":"2025-01-30T12:19:26.668Z","updated_at":"2025-03-25T13:24:12.953Z","avatar_url":"https://github.com/thin-edge.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tedge-services\n\nthin-edge.io service file definitions for the following init systems:\n\n* sysvinit\n* openrc\n* runit\n* s6-overlay\n* supervisord\n* systemd (see note below)\n\nThis is a community driven repository where users are encouraged to create PRs to add support for any additional init system, or make changes to any of the existing definitions.\n\n**NOTES:**\n\n* systemd definitions are provided out of the box via the official linux packages (e.g. tedge, tedge-agent etc.). The definitions included in the project are meant to aid in building linux images (e.g. using yocto).\n\n## Installation\n\nThe service definitions provided in the project are published to the [Community Repository](https://cloudsmith.io/~thinedge/repos/community/groups/) for easy installation.\n\n\nThe service definitions packages are there to compliment the existing thin-edge.io components by extending support beyond the default systemd service definitions.\n\n\nThe init system specific packages included the following contents:\n\n* service definitions for all thin-edge.io components (one package per init system type)\n* `/usr/bin/tedgectl` script used to abstract the calls to the init system (e.g. start/stop/restart/enable/disable services)\n* `/etc/tedge/system.toml` configuration file used by thin-edge.io to abstract interactions with the init system\n\nIf you have not already installed thin-edge.io on your device, please follow the [installation guide](https://thin-edge.github.io/thin-edge.io/install/) from the official thin-edge.io documentation.\n\n### Pre-requisites\n\nYou must have already installed thin-edge.io and its components prior to installing the service definitions. If you don't so this, then you will have to manually enable and start the thin-edge.io services.\n\n### Debian/Ubuntu\n\n**Overview of packages**\n\n|Package|Link|\n|--|--|\n|tedge-sysvinit|[![Latest version of 'tedge-sysvinit' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/deb/tedge-sysvinit/latest/a=all;d=any-distro%252Fany-version;t=binary/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/deb/tedge-sysvinit/latest/a=all;d=any-distro%252Fany-version;t=binary/)|\n|tedge-openrc|[![Latest version of 'tedge-openrc' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/deb/tedge-openrc/latest/a=all;d=any-distro%252Fany-version;t=binary/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/deb/tedge-openrc/latest/a=all;d=any-distro%252Fany-version;t=binary/)|\n|tedge-runit|[![Latest version of 'tedge-runit' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/deb/tedge-runit/latest/a=all;d=any-distro%252Fany-version;t=binary/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/deb/tedge-runit/latest/a=all;d=any-distro%252Fany-version;t=binary/)|\n|tedge-s6overlay|[![Latest version of 'tedge-s6overlay' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/deb/tedge-s6overlay/latest/a=all;d=any-distro%252Fany-version;t=binary/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/deb/tedge-s6overlay/latest/a=all;d=any-distro%252Fany-version;t=binary/)|\n|tedge-supervisord|[![Latest version of 'tedge-supervisord' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/deb/tedge-supervisord/latest/a=all;d=any-distro%252Fany-version;t=binary/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/deb/tedge-supervisord/latest/a=all;d=any-distro%252Fany-version;t=binary/)|\n|tedge-systemd|[![Latest version of 'tedge-systemd' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/deb/tedge-systemd/latest/a=all;d=any-distro%252Fany-version;t=binary/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/deb/tedge-systemd/latest/a=all;d=any-distro%252Fany-version;t=binary/)|\n\n\n**Install instructions**\n\nSetup the repository using:\n\n```sh\ncurl -1sLf 'https://dl.cloudsmith.io/public/thinedge/community/setup.deb.sh' | sudo bash\n```\n\nThen install your preferred init system service definition files:\n\n```sh\n# sysvinit\nsudo apt-get install tedge-sysvinit\n\n# openrc\nsudo apt-get install tedge-openrc\n\n# runit\nsudo apt-get install tedge-runit\n\n# s6-overlay (docker friendly init system)\nsudo apt-get install tedge-s6overlay\n\n# supervisord\nsudo apt-get install tedge-supervisord\n\n# systemd\nsudo apt-get install tedge-systemd\n```\n\n### RHEL/Fedora/RockyLinux\n\n**Overview of packages**\n\n|Package|Link|\n|--|--|\n|tedge-sysvinit|[![Latest version of 'tedge-sysvinit' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/rpm/tedge-sysvinit/latest/a=noarch;d=any-distro%252Fany-version;t=binary/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/rpm/tedge-sysvinit/latest/a=noarch;d=any-distro%252Fany-version;t=binary/)|\n|tedge-openrc|[![Latest version of 'tedge-openrc' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/rpm/tedge-openrc/latest/a=noarch;d=any-distro%252Fany-version;t=binary/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/rpm/tedge-openrc/latest/a=noarch;d=any-distro%252Fany-version;t=binary/)|\n|tedge-runit|[![Latest version of 'tedge-runit' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/rpm/tedge-runit/latest/a=noarch;d=any-distro%252Fany-version;t=binary/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/rpm/tedge-runit/latest/a=noarch;d=any-distro%252Fany-version;t=binary/)|\n|tedge-s6overlay|[![Latest version of 'tedge-s6overlay' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/rpm/tedge-s6overlay/latest/a=noarch;d=any-distro%252Fany-version;t=binary/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/rpm/tedge-s6overlay/latest/a=noarch;d=any-distro%252Fany-version;t=binary/)|\n|tedge-supervisord|[![Latest version of 'tedge-supervisord' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/rpm/tedge-supervisord/latest/a=noarch;d=any-distro%252Fany-version;t=binary/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/rpm/tedge-supervisord/latest/a=noarch;d=any-distro%252Fany-version;t=binary/)|\n|tedge-systemd|[![Latest version of 'tedge-systemd' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/rpm/tedge-systemd/latest/a=noarch;d=any-distro%252Fany-version;t=binary/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/rpm/tedge-systemd/latest/a=noarch;d=any-distro%252Fany-version;t=binary/)|\n\nSetup the repository using:\n\n```sh\ncurl -1sLf 'https://dl.cloudsmith.io/public/thinedge/community/setup.rpm.sh' | sudo bash\n```\n\nThen install your preferred init system service definition files:\n\n```sh\n# sysvinit\nsudo dnf install tedge-sysvinit\n\n# openrc\nsudo dnf install tedge-openrc\n\n# runit\nsudo dnf install tedge-runit\n\n# s6-overlay (docker friendly init system)\nsudo dnf install tedge-s6overlay\n\n# supervisord\nsudo dnf install tedge-supervisord\n\n# systemd\nsudo dnf install tedge-systemd\n```\n\n### Alpine Linux\n\n**Overview of packages**\n\n|Package|Link|\n|--|--|\n|tedge-sysvinit|[![Latest version of 'tedge-sysvinit' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/alpine/tedge-sysvinit/latest/a=noarch;d=alpine%252Fany-version/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/alpine/tedge-sysvinit/latest/a=noarch;d=alpine%252Fany-version/)\n|tedge-openrc|[![Latest version of 'tedge-openrc' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/alpine/tedge-openrc/latest/a=noarch;d=alpine%252Fany-version/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/alpine/tedge-openrc/latest/a=noarch;d=alpine%252Fany-version/)\n|tedge-runit|[![Latest version of 'tedge-runit' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/alpine/tedge-runit/latest/a=noarch;d=alpine%252Fany-version/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/alpine/tedge-runit/latest/a=noarch;d=alpine%252Fany-version/)\n|tedge-s6overlay|[![Latest version of 'tedge-s6overlay' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/alpine/tedge-s6overlay/latest/a=noarch;d=alpine%252Fany-version/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/alpine/tedge-s6overlay/latest/a=noarch;d=alpine%252Fany-version/)|\n|tedge-supervisord|[![Latest version of 'tedge-supervisord' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/alpine/tedge-supervisord/latest/a=noarch;d=alpine%252Fany-version/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/alpine/tedge-supervisord/latest/a=noarch;d=alpine%252Fany-version/)|\n|tedge-systemd|[![Latest version of 'tedge-systemd' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/alpine/tedge-systemd/latest/a=noarch;d=alpine%252Fany-version/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/alpine/tedge-systemd/latest/a=noarch;d=alpine%252Fany-version/)|\n\n\n**Install instructions**\n\nSetup the repository using:\n\n```sh\ncurl -1sLf 'https://dl.cloudsmith.io/public/thinedge/community/setup.alpine.sh' | sudo bash\n```\n\nThen install your preferred init system service definition files:\n\n```sh\n# sysvinit\nsudo apk add tedge-sysvinit\n\n# openrc\nsudo apk add tedge-openrc\n\n# runit\nsudo apk add tedge-runit\n\n# s6-overlay (docker friendly init system)\nsudo apk add tedge-s6overlay\n\n# supervisord\nsudo apk add tedge-supervisord\n\n# systemd\nsudo apk add tedge-systemd\n```\n\n### Other distributions / tarball\n\nThe service definitions are also available via a tarball which can be manually installed using the following steps:\n\n1. Download and extract the tarball for your preferred init system\n\n    **SysVinit**\n\n    ```sh\n    curl -O 'https://dl.cloudsmith.io/public/thinedge/community/raw/names/tedge-sysvinit/versions/latest/tedge-sysvinit.tar.gz'\n    sudo tar xzvf tedge-sysvinit.tar.gz -C /\n    ```\n\n    **SysVinit (yocto)**\n\n    ```sh\n    curl -O 'https://dl.cloudsmith.io/public/thinedge/community/raw/names/tedge-sysvinit-yocto/versions/latest/tedge-sysvinit-yocto.tar.gz'\n    sudo tar xzvf tedge-sysvinit-yocto.tar.gz -C /\n    ```\n\n    **OpenRC**\n\n    ```sh\n    curl -O 'https://dl.cloudsmith.io/public/thinedge/community/raw/names/tedge-openrc/versions/latest/tedge-openrc.tar.gz'\n    sudo tar xzvf tedge-openrc.tar.gz -C /\n    ```\n\n    **runit**\n\n    ```sh\n    curl -O 'https://dl.cloudsmith.io/public/thinedge/community/raw/names/tedge-runit/versions/latest/tedge-runit.tar.gz'\n    sudo tar xzvf tedge-runit.tar.gz -C /\n    ```\n\n    **s6-overlay**\n\n    ```sh\n    curl -O 'https://dl.cloudsmith.io/public/thinedge/community/raw/names/tedge-s6overlay/versions/latest/tedge-s6overlay.tar.gz'\n    sudo tar xzvf tedge-s6overlay.tar.gz -C /\n    ```\n\n    **supervisord**\n\n    ```sh\n    curl -O 'https://dl.cloudsmith.io/public/thinedge/community/raw/names/tedge-supervisord/versions/latest/tedge-supervisord.tar.gz'\n    sudo tar xzvf tedge-supervisord.tar.gz -C /\n    ```\n\n    **systemd**\n\n    ```sh\n    curl -O 'https://dl.cloudsmith.io/public/thinedge/community/raw/names/tedge-systemd/versions/latest/tedge-systemd.tar.gz'\n    sudo tar xzvf tedge-systemd.tar.gz -C /\n    ```\n\n2. Enable/start the services using the generic `tedgectl` script which in included in the tarball\n\n    For example if you want to enable all of the services then use:\n\n    ```sh\n    tedgectl enable tedge-mapper-c8y\n    tedgectl start tedge-mapper-c8y\n\n    tedgectl enable tedge-mapper-az\n    tedgectl start tedge-mapper-az\n\n    tedgectl enable tedge-mapper-aws\n    tedgectl start tedge-mapper-aws\n\n    tedgectl enable tedge-mapper-collectd\n    tedgectl start tedge-mapper-collectd\n\n    tedgectl enable tedge-agent\n    tedgectl start tedge-agent\n\n    tedgectl enable tedge-configuration-plugin\n    tedgectl start tedge-configuration-plugin\n\n    tedgectl enable tedge-log-plugin\n    tedgectl start tedge-log-plugin\n\n    tedgectl enable c8y-firmware-plugin\n    tedgectl start c8y-firmware-plugin\n    ```\n\n    **Notes**\n\n    Some of the service will exit if you have not already setup thin-edge. Check out the [Getting Started](https://thin-edge.github.io/thin-edge.io/start/getting-started/) guide for details on how to configure and use thin-edge.io.\n\n## Developers\n\nThis section details how to build the linux packages used to deliver the service files.\n\n### Pre-requisites\n\nYou need to have [nfpm](https://nfpm.goreleaser.com/install/) installed first before running the build tasks.\n\n### Build\n\n1. Build the packages (including generating service files from the templates)\n\n    ```sh\n    just build\n    ```\n\n2. Start test containers (one per init system)\n\n    ```sh\n    just start\n    ```\n\n3. Start a console and test the functions\n\n    **Start console inside one of the containers**\n\n    ```sh\n    docker compose exec tedge-sysvinit sh\n    ```\n\n    **Check service**\n\n    ```sh\n    # Start service\n    tedgectl start tedge-agent\n\n    # Check it is running\n    pgrep -fa tedge-agent\n\n    # Check log file\n    tail -f /var/log/tedge-agent.log\n\n    # Stop service\n    tedgectl stop tedge-agent\n\n    # Check if service is stopped\n    pgrep -fa tedge-agent\n    ```\n\n## Init Systems\n\n`tedgectl` is provided in the project to help interact with each of the init systems using the same interface. Each of the init systems can be interacted with using the following commands.\n\n### Start service\n\n```sh\ntedgectl start \u003cname\u003e\n```\n\n### Stop service\n\n```sh\ntedgectl stop \u003cname\u003e\n```\n\n### Enable service\n\n```sh\ntedgectl enable \u003cname\u003e\n```\n\n### Disable service\n\n```sh\ntedgectl disable \u003cname\u003e\n```\n\n\n## sysvinit\n\n### Get logs\n\n```sh\ntail -f /var/log/\u003cname\u003e.log\n```\n\n## openrc\n\n### Get logs\n\n```sh\ntail -f /var/log/\u003cname\u003e.log\n```\n\n## s6-overlay\n\n### Get logs\n\n```sh\nTODO\n```\n\n## Acknowledgements\n\n[![Hosted By: Cloudsmith](https://img.shields.io/badge/OSS%20hosting%20by-cloudsmith-blue?logo=cloudsmith\u0026style=for-the-badge)](https://cloudsmith.com)\n\nPackage repository hosting is graciously provided by  [Cloudsmith](https://cloudsmith.com).\nCloudsmith is the only fully hosted, cloud-native, universal package management solution, that\nenables your organization to create, store and share packages in any format, to any place, with total\nconfidence.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthin-edge%2Ftedge-services","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthin-edge%2Ftedge-services","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthin-edge%2Ftedge-services/lists"}