{"_id":"573ed4bea233380e005db159","project":"56b86cc286d2b0190070bcda","category":{"_id":"573ed4bea233380e005db14e","__v":0,"version":"573ed4bea233380e005db14d","project":"56b86cc286d2b0190070bcda","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-02-08T10:24:03.768Z","from_sync":false,"order":0,"slug":"documentation","title":"Documentation"},"user":"56b86c990094520d006b3c33","parentDoc":null,"__v":2,"version":{"_id":"573ed4bea233380e005db14d","__v":2,"project":"56b86cc286d2b0190070bcda","createdAt":"2016-05-20T09:11:26.847Z","releaseDate":"2016-05-20T09:11:26.847Z","categories":["573ed4bea233380e005db14e","573ed4bea233380e005db14f","573ed4bea233380e005db150","578bcf36bb7d810e00e01c05"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"master","version_clean":"0.3.0-0.4","version":"0.3-0.4"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-02-08T11:17:19.280Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","examples":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":false,"order":0,"body":"Accompli is a tool to automate deployment of (PHP) projects. It allows you to easily configure (and create) a set of tasks\nand run the task when deploying a release of your project.\n\nWe aim to provide support for [Testing-Acceptance-Production][link-wikipedia-dtap], [Continuous Delivery][link-wikipedia-continuous-delivery] and [Continuous Deployment][link-wikipedia-continuous-delivery] concepts.\n\n## Why the name 'Accompli'?\n\nAccompli is the French word for 'accomplished' or 'finished'. This fits well with deploying your project, as it is most likely to be done.\nThe French originates back to when Accompli was mainly meant to be a deployment tool for Symfony Framework projects which is created by SensioLabs, a French company.\n\n## System Requirements\n\nAccompli requires PHP 5.5.0+ to run.\n\nThe following extensions are suggested to speed up SSH related tasks:\n* mcrypt\n* openssl\n\nIn order to install releases from version control, you'll need to have git or subversion installed depending on how your project is version-controlled.\n\nAccompli is multi-platform and we strive to make it run equally well on Windows, Linux and OSX.\n\n## Installation using Composer\n\nRun the following command to add the package to the composer.json of your project:\n\n``` bash\n$ composer require accompli/accompli --dev\n```\n\n## Using Accompli\n\nIn order for Accompli to run your project requires an accompli.json file in the root of the project. This will contain the configured hosts to deploy to and the tasks to run during deployment of a release.\n\nAn example accompli.json:\n``` json\n{\n  \"$extend\": \"accompli://recipe/defaults.json\",\n  \"hosts\": [\n    {\n      \"stage\": \"test\",\n      \"connectionType\": \"ssh\",\n      \"hostname\": \"example.com\",\n      \"path\": \"/var/www/example.com\"\n    }\n  ],\n  \"events\": {\n    \"subscribers\": [\n      {\n        \"class\": \"Accompli\\\\Task\\\\CreateWorkspaceTask\"\n      },\n      {\n        \"class\": \"Accompli\\\\Task\\\\RepositoryCheckoutTask\",\n        \"repositoryUrl\": \"https://github.com/example.com/example.com.git\"\n      },\n      {\n        \"class\": \"Accompli\\\\Task\\\\DeployReleaseTask\"\n      },\n      {\n        \"class\": \"Accompli\\\\Task\\\\MaintenanceModeTask\"\n      }\n    ]\n  }\n}\n```\n\nBy running the following command, Accompli will guide you in creating a basic accompli.json configuration:\n``` bash\n$ vendor/bin/accompli init\n```\n\nFor more detailed information on how to configure your accompli.json, please see the [Configuration](doc:configuration) documentation.\n\nSee the [Tasks](doc:tasks) documentation to learn what tasks are provided by Accompli and how to create your own tasks.\n\n### Install a release for deployment\nTo install a release for deployment you'll need to run the following command from your project root:\n\n``` bash\n$ vendor/bin/accompli install-release <version>\n```\n\nAccompli will then run the configured installation tasks for all configured hosts.\n\nOptionally, you can install a release on hosts with a specific stage configured:\n\n``` bash\n$ vendor/bin/accompli install-release <version> <stage>\n```\n\n### Deploy a release\n\nTo deploy a previously install release you'll need to run the following command from your project root:\n\n``` bash\n$ vendor/bin/accompli deploy-release <version> <stage>\n```\n\nDuring a deployment Accompli is able to determine whether the deployment is a rollback to a previous version or an increment to a new version.\n\n*C'est fini! Accompli!*\n\n\n[link-wikipedia-dtap]: https://en.wikipedia.org/wiki/Development,_testing,_acceptance_and_production\n[link-wikipedia-continuous-delivery]: https://en.wikipedia.org/wiki/Continuous_delivery\n[link-wikipedia-continuous-deployment]: https://en.wikipedia.org/wiki/Continuous_deployment","excerpt":"","slug":"getting-started","type":"basic","title":"Getting Started"}
Accompli is a tool to automate deployment of (PHP) projects. It allows you to easily configure (and create) a set of tasks and run the task when deploying a release of your project. We aim to provide support for [Testing-Acceptance-Production][link-wikipedia-dtap], [Continuous Delivery][link-wikipedia-continuous-delivery] and [Continuous Deployment][link-wikipedia-continuous-delivery] concepts. ## Why the name 'Accompli'? Accompli is the French word for 'accomplished' or 'finished'. This fits well with deploying your project, as it is most likely to be done. The French originates back to when Accompli was mainly meant to be a deployment tool for Symfony Framework projects which is created by SensioLabs, a French company. ## System Requirements Accompli requires PHP 5.5.0+ to run. The following extensions are suggested to speed up SSH related tasks: * mcrypt * openssl In order to install releases from version control, you'll need to have git or subversion installed depending on how your project is version-controlled. Accompli is multi-platform and we strive to make it run equally well on Windows, Linux and OSX. ## Installation using Composer Run the following command to add the package to the composer.json of your project: ``` bash $ composer require accompli/accompli --dev ``` ## Using Accompli In order for Accompli to run your project requires an accompli.json file in the root of the project. This will contain the configured hosts to deploy to and the tasks to run during deployment of a release. An example accompli.json: ``` json { "$extend": "accompli://recipe/defaults.json", "hosts": [ { "stage": "test", "connectionType": "ssh", "hostname": "example.com", "path": "/var/www/example.com" } ], "events": { "subscribers": [ { "class": "Accompli\\Task\\CreateWorkspaceTask" }, { "class": "Accompli\\Task\\RepositoryCheckoutTask", "repositoryUrl": "https://github.com/example.com/example.com.git" }, { "class": "Accompli\\Task\\DeployReleaseTask" }, { "class": "Accompli\\Task\\MaintenanceModeTask" } ] } } ``` By running the following command, Accompli will guide you in creating a basic accompli.json configuration: ``` bash $ vendor/bin/accompli init ``` For more detailed information on how to configure your accompli.json, please see the [Configuration](doc:configuration) documentation. See the [Tasks](doc:tasks) documentation to learn what tasks are provided by Accompli and how to create your own tasks. ### Install a release for deployment To install a release for deployment you'll need to run the following command from your project root: ``` bash $ vendor/bin/accompli install-release <version> ``` Accompli will then run the configured installation tasks for all configured hosts. Optionally, you can install a release on hosts with a specific stage configured: ``` bash $ vendor/bin/accompli install-release <version> <stage> ``` ### Deploy a release To deploy a previously install release you'll need to run the following command from your project root: ``` bash $ vendor/bin/accompli deploy-release <version> <stage> ``` During a deployment Accompli is able to determine whether the deployment is a rollback to a previous version or an increment to a new version. *C'est fini! Accompli!* [link-wikipedia-dtap]: https://en.wikipedia.org/wiki/Development,_testing,_acceptance_and_production [link-wikipedia-continuous-delivery]: https://en.wikipedia.org/wiki/Continuous_delivery [link-wikipedia-continuous-deployment]: https://en.wikipedia.org/wiki/Continuous_deployment