{"id":13556221,"url":"https://github.com/reactioncommerce/reaction-development-platform","last_synced_at":"2025-02-25T21:23:26.754Z","repository":{"id":43394660,"uuid":"120856302","full_name":"reactioncommerce/reaction-development-platform","owner":"reactioncommerce","description":"Reaction Platform is the quickest way to run Reaction (reactioncommerce/reaction) and dependent services—Reaction Admin (reactioncommerce/reaction-admin) and Example Storefront (reactioncommerce/example-storefront)","archived":false,"fork":false,"pushed_at":"2022-10-14T12:52:04.000Z","size":564,"stargazers_count":228,"open_issues_count":7,"forks_count":192,"subscribers_count":23,"default_branch":"trunk","last_synced_at":"2025-02-24T09:52:57.247Z","etag":null,"topics":["mailchimpopencommerce","reaction"],"latest_commit_sha":null,"homepage":"https://mailchimp.com/developer/open-commerce/","language":"Makefile","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/reactioncommerce.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-02-09T04:27:54.000Z","updated_at":"2024-07-22T22:00:36.000Z","dependencies_parsed_at":"2023-01-19T23:31:21.592Z","dependency_job_id":null,"html_url":"https://github.com/reactioncommerce/reaction-development-platform","commit_stats":null,"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactioncommerce%2Freaction-development-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactioncommerce%2Freaction-development-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactioncommerce%2Freaction-development-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactioncommerce%2Freaction-development-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reactioncommerce","download_url":"https://codeload.github.com/reactioncommerce/reaction-development-platform/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240748402,"owners_count":19851256,"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":["mailchimpopencommerce","reaction"],"created_at":"2024-08-01T12:03:42.553Z","updated_at":"2025-02-25T21:23:26.720Z","avatar_url":"https://github.com/reactioncommerce.png","language":"Makefile","readme":"# NOTE: THIS PROJECT IS DEPRECATED\n\n**No further work is being done to maintain or improve this project**\n\nYou should use the [Reaction CLI](https://github.com/reactioncommerce/cli) to start working with the project\n\n\nConsult the [Open Commerce Quick Start Guide](https://mailchimp.com/developer/open-commerce/guides/quick-start/) for \nmore information\n\n## Overview\n\nReaction Platform is a customizable, real-time, reactive commerce solution. This repository is the quickest way to get started with the [Reaction API][10] and its supporting services in a local development environment.\n\n## Features\n\n- A modern, enterprise-ready, real-time commerce platform.\n- A microservices based architecture.\n- Docker based development environment.\n- Launched and configured with a single CLI command.\n\n## Prerequisites\n\n- [GNU Make](https://www.gnu.org/software/make/)\n  - MacOS and Linux users will have a suitable version bundled with the OS\n- Bourne Shell and POSIX tools (sh, grep, sed, awk, etc)\n  - MacOS and Linux users will have a suitable version bundled with the OS\n- [Git][5]\n- [Docker][0] | [Docker for Mac][1] | [Docker for Windows][2]\n- A [GitHub][6] account with a [configured SSH key][7] is not required by\n  default, but necessary when using custom, private Github repositories.\n\n## Getting started\n\nClone this repository, and then run `make` in the `reaction-development-platform` directory. If all goes well, it will take some time to download and start all of the components, but when it's done you'll have the entire Reaction application running on your computer through Docker. Individual services are cloned as child directories within this project.\n\n```sh\ngit clone git@github.com:reactioncommerce/reaction-development-platform.git\ncd reaction-development-platform\nmake\n```\n\nBehind the scenes `make` is\n\n- checking that dependencies are present\n- cloning sub-projects from GitHub\n- downloading Docker images\n- starting services\n\nThese services will be running when the initial `make` command is complete:\n\n| Service                                          | Description                                                                                                                                                                                    |\n| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [Reaction API][10] (http://localhost:3000)       | The Reaction API, which includes [a GraphQL endpoint](http://localhost:3000/graphql). See [GraphQL Playground](https://www.apollographql.com/docs/apollo-server/features/graphql-playground/). |\n| [Reaction Admin][19] (http://localhost:4080)     | A user interface for administrators and shop managers to configure shops, manage products, and process orders.                                                                                 |\n| [Example Storefront][13] (http://localhost:4000) | An example Reaction storefront UI built with [Next.JS](https://github.com/zeit/next.js/).                                                                                                      |\n\nIf the `make` command fails at some point, you can run or rerun it for specific services with:\n\n```sh\nmake init-\u003cproject-name\u003e\n```\n\nExample:\n\n```sh\nmake init-example-storefront\n```\n\n## Migrating from v3.x.x to v4.x.x\n\nLook at the detailed guide [here](docs/migration-guide-v4.md)\n\n## Ongoing Support for v3.x\n\nWe'll continue to provide v3.x support for 6 months from the v4.0 release. That marks 3/1/2022 as the date when we officially end support to 3.x versions and below. Beyond that date we'll be fully dedicated to the new version and will not be taking any v3.x issues into discussion/development.\n\n## Project Commands\n\nThese are the available `make` commands in the `reaction-platform` root directory.\n\n| Command                                                 | Description                                                                                                                                                                    |\n| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `make`                                                  | Bootstraps the entire Reaction development environment in Docker. Projects will use production Docker images and code.                                                         |\n| `make init-\u003cproject-name\u003e`                              | Example: `make init-example-storefront`. Does clone/setup for a single project.                                                                                                |\n| `make init-dev`                                         | Bootstraps the entire Reaction development environment in Docker. Projects will use development configuration.                                                                 |\n| `make init-dev-\u003cproject-name\u003e`                          | Example: `make init-dev-example-storefront`. Does clone/setup for a single project and configures it with a development configuration.                                         |\n| `make stop`                                             | Stops all containers.                                                                                                                                                          |\n| `make stop-\u003cproject-name\u003e`                              | Example: `make stop-example-storefront`. Stops all containers for a single project.                                                                                            |\n| `make start`                                            | Starts all containers.                                                                                                                                                         |\n| `make start-\u003cproject-name\u003e`                             | Example: `make start-example-storefront`. Starts all containers for a single project.                                                                                          |\n| `make dev-\u003cproject-name\u003e`                               | Example: `make dev-example-storefront`. Starts all containers for a single project in development mode.                                                                        |\n| `make dev-link`                                         | Creates `docker-compose.override.yml` symlinks for development in all projects.                                                                                                |\n| `make dev-link-\u003cproject-name\u003e`                          | Example: `make dev-link-example-storefront`. Creates development symlinks for a single project.                                                                                |\n| `make dev-unlink`                                       | Removes `docker-compose.override.yml` symlinks from all projects.                                                                                                              |\n| `make dev-unlink-\u003cproject-name\u003e`                        | Example: `make dev-unlink-example-storefront`. Removes the `docker-compose.override.yml` symlink for a single project.                                                         |\n| `make rm`                                               | Removes all containers. Volumes are not removed.                                                                                                                               |\n| `make rm-\u003cproject-name\u003e`                                | Example: `make rm-example-storefront`. Removes all containers for a single project. Volumes are not removed.                                                                   |\n| `make checkout-\u003cproject-name\u003e \u003cgit-tag-or-branch-name\u003e` | Example: `make checkout-example-storefront release-v3.0.0`. Does `git checkout` for a sub-project. See \"Running Particular Git Branches\" below.                                |\n| `make clean`                                            | Removes all containers, networks, and volumes. Any volume data will be lost.                                                                                                   |\n| `make clean-\u003cproject-name\u003e`                             | Example: `make clean-example-storefront`. Removes all containers, networks, and volumes for a single project. Any volume data will be lost.                                    |\n| `make update-checkouts`                                 | Example: `make update-checkouts`. Updates git checkouts on all projects. Useful for syncing dev env to config file. Safe, fails on uncommitted changes.                        |\n| `make update-checkout-\u003cproject-name\u003e`                   | Example: `make update-checkout-example-storefront`. Checks out branch in config file and pulls. Useful for syncing dev env to config file. Safe, fails on uncommitted changes. |\n| `make clone-api-plugins`                                | If you are going to make changes to the default plugins, this is a quick way to clone them all into an `api-plugins` subdirectory of this project.                             |\n\n## Customizing Configuration\n\nThe development platform runs the latest version of Reaction by default, but\nit's possible to select a specific version, or to customize an existing release\nversion.\n\n### How Configuration Works\n\nThe Reaction development platform uses `make` to run tasks. `make` is aware of\nthe task dependency tree and ensures that all required dependencies are met\nwhen running a task. The main tasks and functionality for `make` are\nconfigured in `Makefile`.\n\nConfigurations that may change are extracted into `config.mk`. This file is\nchecked in to source control and should not be modified. It is always configured\nfor the latest Reaction release.\n\nIf a file named `config.local.mk` exists then it will be loaded after\n`config.mk`. Settings in `config.local.mk` will override those set in\n`config.mk`. It is ignored by source control.\n\n### Running a Specific Reaction Release Version\n\nConfigurations for specific Reaction releases (since v3.0.0) are located in\n`config/reaction-oss`. You may symlink or copy any release configuration to\n`config.local.mk`.\n\nFor example, this command will configure the platform to run `v3.0.4`:\n\n```sh\nln -s config/reaction-oss/reaction-v3.0.4.mk config.local.mk\nmake\n```\n\n### Running A Customized Installation\n\nYou may customize your Reaction installation by modifying `config.local.mk`.\nIt's easiest to start with an existing release configuration file and modify it\nas needed. In this way you can:\n\n- Add new sub-projects\n- Remove sub-projects\n- Update the git origin for a sub-project\n- Change the default branch for a sub-project\n- Customize the lifecycle hooks directory to run custom scripts for automation\n\nConfiguration files store in `config/local` are ignored by git. It's a\nconvenient place to store local files for quick development. If you are sharing\nfiles with a team then you may want to keep your configuration files in a\nseparate git repository or in shared network storage.\n\nThe only requirement to override configuration is that you need to put a file\ninto place at `config.local.mk`, so it is possible to copy or symlink a file\nfrom anywhere in your system.\n\nExamples:\n\n```sh\n# Use a file in the config/local directory\nln -s config/local/my-custom-config.mk config.local.mk\nmake\n```\n\n```sh\n# Use a file in the config/local directory\nln -s /path/on/my/system/reactionconfig.mk config.local.mk\nmake\n```\n\n### Updating Local Branches to Match Config\n\nIf you are using the Reaction development platform for development, then you\nwill need to update your local branch to get the latest at some point. The\n`update-checkouts` command will perform this operation.\n\n```\nmake update-checkouts\n```\n\nThe command is safe. It will halt if there are uncommitted changes in\ngit before doing anything. You may commit, stash or drop those changes.\n\n## Running Particular Git Branches\n\nAfter you've done the \"Getting Started\" steps and have the latest Reaction system running, you may need to switch to and run a certain branch/tag in one or more of the sub-projects.\n\nTo check out and run a certain branch or tag for a project, stop the project, run `make checkout-\u003cproject-name\u003e \u003cgit-tag-or-branch-name\u003e`, and then init the project again.\n\nExample:\n\n```sh\nmake stop-example-storefront\nmake checkout-example-storefront release-v3.0.0\nmake init-example-storefront\n```\n\nIf you're getting unexpected results, `cd` into the sub-project directory and do a `git pull` to verify you're on the latest commit from that branch. If you're changing code files, see the \"Running From Code For Development\" section below.\n\n### Running From Code For Development\n\nTo ensure they start quickly, all Reaction projects are configured (in their `docker-compose.yml` file) to run from the latest published Docker image. This means that if you change code files, you will not see your changes reflected in the running application.\n\n##### To install the whole platform in development mode:\n\nRun `make init-dev` (instead of `make`).\n\nDoing this takes time to install and will consume more resources.\n\n##### To switch over to development mode for a single project:\n\n```sh\nmake stop-\u003cproject-name\u003e\nmake dev-link-\u003cproject-name\u003e\nmake \u003cstart-project-name\u003e\n```\n\nIf you run into trouble with the above command, run `make clean-\u003cproject-name\u003e` and then `make init-dev-\u003cproject-name\u003e`.\n\n##### To switch back to production mode for a single project:\n\n```sh\nmake stop-\u003cproject-name\u003e\nmake dev-unlink-\u003cproject-name\u003e\nmake \u003cstart-project-name\u003e\n```\n\nIf you run into trouble with the above command, run `make clean-\u003cproject-name\u003e` and then `make init-\u003cproject-name\u003e`.\n\n## Networked Services\n\nUser-defined Docker networks are used to connect the Reaction services that run\nas separate Docker Compose projects. With this configuration, each of the\nprojects can be launched independently using Docker Compose.\n\nWhile the projects can be launched independently they may have network\ndependencies that are required to function correctly. The platform Makefile\nwill launch services for you if you start it all together. You are free to\nmanually start a single service but you will need to ensure dependencies are\nrunning.\n\n### Network Naming Strategy\n\nAll projects must list `reaction.localhost` as an external network in their docker-compose configuration. The `make` commands will ensure that this network exists. Choose a unique enough name for your service that you can be reasonably sure it won't conflict with another Reaction service.\n\nWhen you need to communicate with one service from another over the internal Docker network, use `\u003cservice-name\u003e.reaction.localhost` as the hostname.\n\n## Documentation\n\nYou may refer to each sub-project's README for additional operation details.\n\n| Sub-project                | Description        | Documentation                    |\n| -------------------------- | ------------------ | -------------------------------- |\n| [`reaction`][10]           | GraphQL API        | [Reaction API Documentation][14] |\n| [`reaction-admin`][19]     | Classic Admin UI   | [Reaction Admin Readme][20]      |\n| [`example-storefront`][13] | Example Storefront | [Example Storefront docs][15]    |\n\nFor tips on developing with Docker, read our [Docker docs](https://docs.reactioncommerce.com/docs/installation-docker-development).\n\n## Latest Releases\n\nThe following table provides the most current version of each project used by this platform:\n\n| Project                             | Latest release / tag                                                                     |\n| ----------------------------------- | ---------------------------------------------------------------------------------------- |\n| [reaction-development-platform][10] | [`4.0.1`](https://github.com/reactioncommerce/reaction-development-platform/tree/v4.0.1) |\n| [reaction][10]                      | [`4.0.0`](https://github.com/reactioncommerce/reaction/tree/v4.0.0)                      |\n| [example-storefront][13]            | [`5.0.3`](https://github.com/reactioncommerce/example-storefront/tree/v5.0.3)            |\n| [reaction-admin (beta)][19]         | [`4.0.0-beta.5`](https://github.com/reactioncommerce/reaction-admin/tree/v4.0.0-beta.5)  |\n\n### [Release Process](docs/release-guide.md)\n\n### Developer Certificate of Origin\n\nWe use the [Developer Certificate of Origin (DCO)](https://developercertificate.org/) in lieu of a Contributor License Agreement for all contributions to Reaction Commerce open source projects. We request that contributors agree to the terms of the DCO and indicate that agreement by signing-off all commits made to Reaction Commerce projects by adding a line with your name and email address to every Git commit message contributed:\n\n```\nSigned-off-by: Jane Doe \u003cjane.doe@example.com\u003e\n```\n\nYou can sign-off your commit automatically with Git by using `git commit -s` if you have your `user.name` and `user.email` set as part of your Git configuration.\n\nWe ask that you use your real full name (please no anonymous contributions or pseudonyms) and a real email address. By signing-off your commit you are certifying that you have the right to submit it under the [GNU GPLv3 Licensed](./LICENSE.md).\n\nWe use the [Probot DCO GitHub app](https://github.com/apps/dco) to check for DCO sign-offs of every commit.\n\nIf you forget to sign-off your commits, the DCO bot will remind you and give you detailed instructions for how to amend your commits to add a signature.\n\n## License\n\nCopyright © [GNU General Public License v3.0](./LICENSE.md)\n\n[0]: https://www.docker.com/get-docker \"Docker\"\n[1]: https://www.docker.com/docker-mac \"Docker for Mac\"\n[2]: https://www.docker.com/docker-windows \"Docker for Windows\"\n[5]: https://git-scm.com/ \"Git\"\n[6]: https://github.com/ \"GitHub\"\n[7]: https://github.com/settings/keys \"GitHub SSH Keys\"\n[8]: https://github.com/reactioncommerce/reaction-platform \"Reaction Platform\"\n[9]: https://github.com/graphcool/graphql-playground \"GraphQL Playground\"\n[10]: https://github.com/reactioncommerce/reaction \"Reaction API\"\n[13]: https://github.com/reactioncommerce/example-storefront \"Example Storefront\"\n[14]: https://docs.reactioncommerce.com \"Reaction Documentation\"\n[15]: https://github.com/reactioncommerce/example-storefront/tree/master/docs \"Example Storefront docs\"\n[19]: https://github.com/reactioncommerce/reaction-admin \"Reaction Admin\"\n[20]: https://github.com/reactioncommerce/reaction-admin/blob/trunk/README.md \"Reaction Admin Readme\"\n[20]: https://github.com/reactioncommerce/api-migrations \"API Migrations\"\n","funding_links":[],"categories":["Makefile","others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactioncommerce%2Freaction-development-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freactioncommerce%2Freaction-development-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactioncommerce%2Freaction-development-platform/lists"}