{"id":23469907,"url":"https://github.com/vapor-ware/synse-server","last_synced_at":"2025-04-14T16:33:48.920Z","repository":{"id":25708429,"uuid":"105910786","full_name":"vapor-ware/synse-server","owner":"vapor-ware","description":"An HTTP API for monitoring and controlling physical and virtual devices","archived":false,"fork":false,"pushed_at":"2023-07-17T14:20:28.000Z","size":21893,"stargazers_count":39,"open_issues_count":12,"forks_count":11,"subscribers_count":15,"default_branch":"develop","last_synced_at":"2025-03-21T22:03:10.400Z","etag":null,"topics":["edge-computing","hacktoberfest","iot-platform","management","monitoring","synse","synse-server"],"latest_commit_sha":null,"homepage":"https://synse.readthedocs.io/en/latest/server/intro/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vapor-ware.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":".github/CODEOWNERS","security":null,"support":null}},"created_at":"2017-10-05T16:00:59.000Z","updated_at":"2024-02-06T22:26:56.000Z","dependencies_parsed_at":"2023-01-14T03:15:06.172Z","dependency_job_id":null,"html_url":"https://github.com/vapor-ware/synse-server","commit_stats":null,"previous_names":[],"tags_count":53,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor-ware%2Fsynse-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor-ware%2Fsynse-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor-ware%2Fsynse-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor-ware%2Fsynse-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vapor-ware","download_url":"https://codeload.github.com/vapor-ware/synse-server/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248916622,"owners_count":21182842,"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":["edge-computing","hacktoberfest","iot-platform","management","monitoring","synse","synse-server"],"created_at":"2024-12-24T15:36:49.236Z","updated_at":"2025-04-14T16:33:48.880Z","avatar_url":"https://github.com/vapor-ware.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Synse Avatar\" src=\"assets/avatar.png\" width=\"200\" /\u003e\u003cbr /\u003e\n  \u003cimg alt=\"Data Driven\" src=\"assets/data-driven.png\" width=\"150\" /\u003e\n  \u003ch3 align=\"center\"\u003eSynse Server\u003c/h3\u003e\n  \u003cp align=\"center\"\u003eAn API to monitor and control physical and virtual infrastructure.\u003c/p\u003e\n\u003c/p\u003e\n\n---\n\n[![Build Status](https://build.vio.sh/buildStatus/icon?job=vapor-ware/synse-server/master)](https://build.vio.sh/blue/organizations/jenkins/vapor-ware%2Fsynse-server/activity)\n[![Code Coverage](https://codecov.io/gh/vapor-ware/synse-server/branch/master/graph/badge.svg)](https://codecov.io/gh/vapor-ware/synse-server)\n[![Documentation Status](https://readthedocs.org/projects/synse/badge/?version=latest)](https://synse.readthedocs.io/en/latest/?badge=latest)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fvapor-ware%2Fsynse-server.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fvapor-ware%2Fsynse-server?ref=badge_shield)\n![License](https://img.shields.io/github/license/vapor-ware/synse-server.svg)\n![GitHub Release](https://img.shields.io/github/release/vapor-ware/synse-server.svg)\n\nSynse Server is part of the [Synse Platform][synse]. It provides a simple HTTP API to make\ngathering device metrics and issuing device commands easy. Synse is designed for lights-out\noperation at edge data center sites, but can run in more traditional data center environments,\nIoT labs, or as a monitoring and control solution for DIY projects.\n\nWith Synse's HTTP API and plugin backend, devices communicating over different protocols\n(I²C, RS-485, or IPMI for example) can all be accessed via the same uniform API. Supporting\na new protocol or device is as simple as writing a new plugin with the [Synse SDK][sdk].\n\nFor more information about Synse Server and other components of the Synse platform,\nsee the [project documentation][documentation].\n\n## Getting Started\n\nSynse components are designed to run as containerized applications, making them easier\nto compose, deploy, and manage (e.g. via [Docker Compose][docker-compose] or [Kubernetes][kubernetes]).\nGetting the Synse Server image is as easy as:\n\n```\ndocker pull vaporio/synse-server\n```\n\nA simple deployment of Synse Server with an emulator plugin backend (which provides simulated device data)\ncan be run with Docker Compose using the [`compose file`](docker-compose.yml) found in this repository:\n\n```\ndocker-compose up -d\n```\n\nFrom there, you can test that Synse Server is running and reachable\n\n```\ncurl http://localhost:5000/test\n```\n\nAnd see all of the devices it exposes via the emulator plugin\n\n```\ncurl http://localhost:5000/v3/scan\n```\n\nSee the [API Reference][api-ref] for more information on the API endpoints and\nSynse's capabilities.\n\n## Architecture Overview\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"assets/arch.svg\" width=\"500\" /\u003e\u003c/p\u003e\n\nSynse Server is a containerized service which provides an HTTP interface for interacting with\nand controlling devices. Synse Server does not directly interface with any devices -- that job is\nleft to the plugins which are registered with a Synse Server instance. Plugins expose devices, collect\nreadings, and provide write access to those devices which support it. How they do this is dependent\non the devices themselves and will differ between those devices and protocols.\n\nSynse Server acts as the \"front-end\" interface/router for all the different protocols/devices.\nIt exposes a uniform API to the user, routes commands to the proper device (e.g. to the plugin\nthat manages the referenced device), and does some aggregation, caching, and formatting of\nthe response data.\n\nThe general flow through Synse Server for a device read, for example, is:\n\n- get an incoming HTTP request\n- validate the specified device exists\n- lookup the device's managing plugin\n- dispatch a gRPC request to the plugin for that device\n- await a response from the plugin\n- take the data returned from the plugin and format it into the JSON response scheme\n- return the data to the caller\n\n## Compatibility\n\nBelow is a table describing the compatibility of various Synse Server versions with Synse platform versions.\n\n|             | Synse v2 | Synse v3 |\n| ----------- | -------- | -------- |\n| Server v1.x | ✗        | ✗        |\n| Server v2.x | ✓        | ✗        |\n| Server v3.x | ✗        | ✓        |\n\n## Feedback\n\nFeedback for Synse Server or any component of the Synse platform is greatly appreciated!\nIf you experience any issues, find the documentation unclear, have requests for features,\nor just have questions about it, we'd love to know. Feel free to open an issue for any\nfeedback you may have.\n\n## Contributing\n\nWe welcome contributions to the project. The project maintainers actively manage the issues\nand pull requests. If you choose to contribute, we ask that you either comment on an existing\nissue or open a new one. This project follows the typical [GitHub Workflow][gh-workflow].\n\n## License\n\nSynse Server is released under the [GPL-3.0](LICENSE) license.\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fvapor-ware%2Fsynse-server.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fvapor-ware%2Fsynse-server?ref=badge_large)\n\n[synse]: https://github.com/vapor-ware/synse\n[sdk]: https://github.com/vapor-ware/synse-sdk\n[documentation]: https://synse.readthedocs.io/en/latest/\n[docker-compose]: https://docs.docker.com/compose/\n[kubernetes]: https://kubernetes.io/\n[api-ref]: https://synse.readthedocs.io/en/latest/server/api.v3/\n[gh-workflow]: https://guides.github.com/introduction/flow/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvapor-ware%2Fsynse-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvapor-ware%2Fsynse-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvapor-ware%2Fsynse-server/lists"}