Skip to content
This repository has been archived by the owner on Jun 12, 2022. It is now read-only.
/ attache Public archive

A highly opinionated deployment tool for Laravel applications.

License

Notifications You must be signed in to change notification settings

tpg/attache

Repository files navigation

A Highly opinionated deployment tool for Laravel

Run Tests Packagist Version

After going backwards and forewards on this one for a while, I've decided to archive this project. I've had a good run with Attaché, but I haven't used it for a project in a long while and it really doesn't have a huge demand. I haven't updated the project for a while and although there was an attempt to write a version 2, there are better and more robust deployment options out there. I myself have returned to using plain old Envoy as it fits really nicely into my CD pipeline.

In it's place, I'm writing a simple package that includes some of the more useful tools from Attache. This works well in conjuction with something like Envoy. Attaché will no longer get any updates or changes going forward.

Attaché is a deployment tool for Laravel originally based on the Laravel Envoy task runner and built around the ideas I wrote here. The original version of Attaché was actually just a wrapper around Envoy with a predefind script (hence the name). It's evolved quite a bit since then.

Learn how to use Attaché: Official Documentation


Quick Start

Install Attache globally using Composer:

composer global require thepublicgood/attache

Create a new .attache.json configuration file in your project with:

attache init

Update the config file to reflect your server and repository settings making sure the specified root directory exists on the server. Then install your project onto the server with:

attache install

Now update the new .env file on your server, cache the config, and whatever other tasks you need to complete. That's it! Deployment complete.

Whenever you need to deploy a new version, simply run:

attache deploy

You can see all the releases on the server with:

attache releases:list

And clean them up with:

attache releases:prune

For more things you can do, simple run attache without any commands to get a list.

Happy deploying!