{"id":13852444,"url":"https://github.com/opendevshop/devshop","last_synced_at":"2025-04-05T23:12:26.648Z","repository":{"id":26706328,"uuid":"30163486","full_name":"opendevshop/devshop","owner":"opendevshop","description":"Open Source DevOps Framework","archived":false,"fork":false,"pushed_at":"2024-09-22T15:52:49.000Z","size":23791,"stargazers_count":171,"open_issues_count":11,"forks_count":78,"subscribers_count":18,"default_branch":"1.x","last_synced_at":"2024-10-29T22:37:54.724Z","etag":null,"topics":["ansible","devops","devshop","drupal"],"latest_commit_sha":null,"homepage":"http://getdevshop.com/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opendevshop.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/contributing/how-to-contribute-to-devshop.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE-OF-CONDUCT.md","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},"funding":{"github":["jonpugh"],"patreon":"devshop","open_collective":"devshop","custom":["https://devshop.support","https://thinkdrop.net"]}},"created_at":"2015-02-01T23:18:57.000Z","updated_at":"2024-10-26T07:16:48.000Z","dependencies_parsed_at":"2024-11-06T12:38:42.186Z","dependency_job_id":null,"html_url":"https://github.com/opendevshop/devshop","commit_stats":{"total_commits":19460,"total_committers":71,"mean_commits":274.0845070422535,"dds":0.06957862281603289,"last_synced_commit":"98f107b4c7146af38074b9b1e8e78a69a766f10a"},"previous_names":[],"tags_count":99,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opendevshop%2Fdevshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opendevshop%2Fdevshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opendevshop%2Fdevshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opendevshop%2Fdevshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opendevshop","download_url":"https://codeload.github.com/opendevshop/devshop/tar.gz/refs/heads/1.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247411239,"owners_count":20934653,"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":["ansible","devops","devshop","drupal"],"created_at":"2024-08-04T22:01:20.344Z","updated_at":"2025-04-05T23:12:26.629Z","avatar_url":"https://github.com/opendevshop.png","language":"PHP","readme":"![DevShop Logo](./assets/logo-new-light-bg.png)\n\n[DevShop][1] is an **Open Source DevOps Framework** and a \nset of reusable **components** designed to improve the web development, testing, and \nserver management process, especially for [Drupal](https://drupal.org) websites.\n\nThe goal of DevShop is to provide a complete **web development \u0026 testing pipeline** out of the\nbox, while empowering users to choose their own server infrastructure and systems \narchitecture.\n \nDevShop uses [Ansible \u0026 Ansible Galaxy][2] for server configuration, [Symfony \nConsole][3] for command line tools, and [Drupal][3] for the web interface.\n\n## Core Values\n\n#### Empower and Liberate.\n  - Empower site builders with a feature complete, fully open source platform.\n  - Liberate site owners by granting them the freedom to choose their own infrastructure and architecture.\n\n#### Simplify and Demystify.\n  - Simplify the management of complex systems by defining core building blocks and designing components that work independently of the platform.\n  - Demystify computing by maintaining configuration for the entire vertical stack, down to Linux and services, all the way up to container management platforms, hyper\n\n#### Collaborate \u0026 Engage.\n  - Collaborate with developers and systems administrators to build a product that fits their needs first.\n  - Engage the community to work together towards the common goal of  a complete OpenOps platform and healthy ecosystem of tools.\n\n#### Lower Costs \u0026 Barriers\n  - Lower the cost of running sites with a host-agnostic platform, commoditizing servers, and moving maintenance costs of DevOps tools off of organizations and on to the community, \n  - Lower the barriers of entry into the DevOps world for all.\n\n## DevShop Components\n\nThe DevShop Components are small, independently functional tools that are all designed to work together.\n\nThese tools are designed to be useful regardless of the hosting or DevOps systems they are being run on. \n\n### Composer Packages\n\n#### [DevShop Control](src/DevShop/Control) \u0026 [DevShop Control Project](src/DevShop/Component/ControlProject)\n\n\u003e Drupal CI/CD Dashboard and Ansible Server Manager in a Box\n\n- Web-based front-end for a DevShop server. Drupal 7 based. \n- Add unlimited Drupal projects and environments per server.\n- Create and configure servers all through the web interface.\n- DevShop Control is built into the devshop codebase. The DevShop Control Project is a composer project template that can be used to deploy a custom devshop control site.\n\n#### [Deploy](./src/DevShop/Component/Deploy)\n\n\u003e One command, many stages for flexible CI per environment.\n\n- Single `deploy` command to be used in CI systems designed to encompass the entire cycle: git updates, code build, reinstall, deploy hooks and test.\n- Options and pre-sets allow users to skip or include stages depending on the environment. For example, `--skip-reinstall` can be used on a demo site to prevent destroying the content.\n- Configure each \"stage\" in `composer.json`, to easily customize commands for each site. For example, to import config or not.\n\n#### [YamlTasks](./src/DevShop/Component/YamlTasks)\n\n\u003e Simple test runner with GitHub API integration.\n\n- Keep tests and standard commands in a Yaml file.\n- Run all commands with a single command.\n- Send command results to GitHub as Commit Statuses, to ensure Quality Control and present feedback to developers via pass/fail results on Pull Request pages.\n\n#### [PowerProcess](./src/DevShop/Component/PowerProcess)\n\n\u003e Run commands with standard beautiful output.\n\n- Enhanced Symfony Process component for improved user experience and log portability.\n- Improved command-line user experience, metadata reporting (executed time, PID, logs).\n- Pluggable output through monologger: pipe to screen, file, or remote monologger compatible REST API.\n\n#### [GitHub API CLI](./src/DevShop/Component/GitHubApiCli)\n\n\u003e Simple abstract CLI for interacting with the GitHub API.\n\n- Simple CLI wrapper for the GitHub API, where every API resource is a command and options are automatically passed. \n- \"Deploy\" command provides simple way to interact with GitHub's Deployments API using composer commands and bin scripts.\n\n#### [Git Traits](./src/DevShop/Component/GitTraits)\n\n\u003e Traits and classes for accessing Git, GitHub and Composer Data.\n\n- `GitRepositoryAwareTrait`: Add to any class to read info from the current Git Repository.\n- `GitHubRepositoryAwareTrait`: Repository functionality plus a helper methods like `getRepoOwner()`.\n- `ComposerRepositoryAwareTrait`: Repository functionality plus accessors for getting data from `composer.json`.\n\n#### [GitSplit](./src/DevShop/Component/YamlTasks)\n\n\u003e Split a monorepo with a single command.\n\n- Commands to split the git monorepo into multiple child repos. \n- Uses the same [splitsh-lite]() script that Symfony and Drupal uses.\n- Reads list of repositories from `composer.json` config.\n    \n### Ansible Roles\n\nSee https://galaxy.ansible.com/opendevshop for all roles.\n\n1. opendevshop.apache\n2. opendevshop.devmaster\n3. opendevshop.users\n4. devshop.server - All in one devshop server.\n\n### Docker Containers\n\n- [devshop/server](https://hub.docker.com/r/devshop/server) All in one container, uses systemd to run all services.\n\nAs we progress forward with the Ansible and Docker system, more common web services will be created and released as Ansible Roles and Docker containers.\n \n# Resources\n\n* [Documentation](http://docs.opendevshop.com) Please Contribute! [github.com/opendevshop/documentation](https://github.com/opendevshop/documentation) \n* [Chat](http://gitter.im/opendevshop/devshop) on Gitter: [gitter.im/opendevshop/devshop](http://gitter.im/opendevshop/devshop)\n* [Issue Queue](http://github.com/opendevshop/devshop/issues) on GitHub: [github.com/opendevshop/devshop/issues](http://github.com/opendevshop/devshop/issues)\n* [Development Information](http://docs.opendevshop.com/development.html)  Developer documentation will walk you through contributing to DevShop.\n* [OpenDevShop.com](http://www.opendevshop.com): Company website.\n* [Follow us on Twitter](http://twitter.com/opendevshop)\n\n# About DevShop\n\nVersion | Status | Aegir | Hosts      | Status\n--------|--------|-------|------------|----------\n1.x     | Stable | 3.x   | D6, D7, D8 | [![Test Status](https://github.com/opendevshop/devshop/workflows/Tests/badge.svg)](https://github.com/opendevshop/devshop/actions)\n\n\n[![Backers on Open Collective](https://opencollective.com/devshop/backers/badge.svg)](#backers)\n [![Sponsors on Open Collective](https://opencollective.com/devshop/sponsors/badge.svg)](#sponsors) \n\nDevShop is a \"cloud hosting\" system for Drupal. DevShop makes it easy to host, develop, test, and update drupal sites.  It provides a front-end built in Drupal ([Devmaster](https://github.com/opendevshop/devmaster)) and a back-end built with Drush, Symfony, and Ansible.\n\nDevShop deploys your sites using git, and allows you to create unlimited environments for each site.  DevShop makes it very easy to deploy any branch or tag to each environment\n\nCode is deployed on push to your git repo automatically.  Data (the database and files) can be deployed between environments.  Run the built-in hooks whenever code or data is deployed, or write your own.\n\n# Built on Aegir\n\nDevShop utilizes the main components of the Aegir Hosting System: [Hosting](http://drupal.org/project/hosting) and [Provision](http://drupal.org/project/provision). It does not use [Hostmaster](http://drupal.org/project/hostmaster); it uses its own installation profile, [Devmaster](http://github.com/opendevshop/devmaster).  It does not use the theme, Eldir.  The default DevShop theme is called [Boots](https://github.com/opendevshop/devmaster/tree/7.x-1.x/themes/boots) and is included in the Devmaster install profile.\n\nDevShop uses many additional contributed modules that Aegir core does not.\n\n# Aegir Cooperative Founding Member\n\nOpenDevShop Inc is a founding member of the Aegir Cooperative.  Lead DevShop developer Jon Pugh is a core Aegir maintainer.  \n\nSee [aegir.coop](http://aegir.coop) for more information.\n\n# Tour\n\nSee the [Tour](http://docs.opendevshop.com/tour.html) section of the documentation for a quick walk-through of the DevShop interface.\n\n# Support\n\n* Bug reports and feature requests should be reported in the [DevShop Issue Queue](https://www.github.com/opendevshop/devshop/issues).\n* Ask for help in the [Chat Room](http://gitter.im/opendevshop/devshop).\n\n## Contributors\n\nThis project exists thanks to all the people who contribute. \n\u003ca href=\"https://github.com/opendevshop/devshop/graphs/contributors\"\u003e\u003cimg src=\"https://opencollective.com/devshop/contributors.svg?width=890\u0026button=false\" /\u003e\u003c/a\u003e\n\n\n## Backers\n\nThank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/devshop#backer)]\n\n\u003ca href=\"https://opencollective.com/devshop#backers\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/devshop/backers.svg?width=890\"\u003e\u003c/a\u003e\n\n## Sponsors\n\nSupport this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/devshop#sponsor)]\n\n\u003ca href=\"https://opencollective.com/devshop/sponsor/0/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/devshop/sponsor/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/devshop/sponsor/1/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/devshop/sponsor/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/devshop/sponsor/2/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/devshop/sponsor/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/devshop/sponsor/3/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/devshop/sponsor/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/devshop/sponsor/4/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/devshop/sponsor/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/devshop/sponsor/5/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/devshop/sponsor/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/devshop/sponsor/6/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/devshop/sponsor/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/devshop/sponsor/7/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/devshop/sponsor/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/devshop/sponsor/8/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/devshop/sponsor/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/devshop/sponsor/9/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/devshop/sponsor/9/avatar.svg\"\u003e\u003c/a\u003e\n\nFor the full list of Backers and Sponsors, see [BACKERS.md](BACKERS.md)\n\n\n# License\n\nDevShop is licensed under [GPL v2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt).\n\nThis means any forks of this code must be released as open source and also be licensed under the GPL.\n\n# Help Improve Documentation\n\nFor full documentation on DevShop, visit [docs.opendevshop.com](http://docs.opendevshop.com) or see our git repository [github.com/opendevshop/documentation](https://github.com/opendevshop/documentation).\n\nThink this can be improved? You can [Fork our Documentation on GitHub](https://github.com/opendevshop/documentation)!\n\nThanks!\n\n\n[1]: https://getdevshop.com\n[2]: https://galaxy.ansible.com\n[3]: https://github.com/jonpugh/director\n","funding_links":["https://github.com/sponsors/jonpugh","https://patreon.com/devshop","https://opencollective.com/devshop","https://devshop.support","https://thinkdrop.net"],"categories":["PHP"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopendevshop%2Fdevshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopendevshop%2Fdevshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopendevshop%2Fdevshop/lists"}