We use cookies to improve your experience. No personal information is gathered and we don't serve ads. Cookies Policy.

ExpressionEngine Logo ExpressionEngine
Features Pricing Support Find A Developer
Partners Upgrades
Blog Add-Ons Learn
Docs Forums University
Log In or Sign Up
Log In Sign Up
ExpressionEngine Logo
Features Pro new Support Find A Developer
Partners Upgrades
Blog Add-Ons Learn
Docs Forums University Blog
  • Home
  • Forums

Beanstalk vs Github vs Other

Development and Programming

blendimc's avatar
blendimc
150 posts
14 years ago
blendimc's avatar blendimc

I’m looking at using one of these utilities in our development workflow. Here is the scenario I’m hoping for. We are a small (3 man) team that uses Git for our version control.

I want to … 1. Create a REPO on my local computer with different branches Dev/Staging/Live 2. Push Repo to Beanstalk/Github/Other 3. Make Stuff, commit and push changes to Beanstalk/Github/Other 3. On Recieve, have Beanstalk/Github/Other Deploy either to Dev/Staging/Live server (multiple servers) based on which Branch I’m pushing 4. It would be nice if I could push to these servers without having to install git on them. I see Beanstalk will do over S/FTP which I think would be nice.

I know this is a subjective question, but I would like to know your thoughts and what you guys like/use. Thanks!

       
alexknowshtml's avatar
alexknowshtml
2 posts
14 years ago
alexknowshtml's avatar alexknowshtml

Howdy! Alex from Beanstalk here.

Our deployment tools sound like they’d support your desired workflow without any trouble. We have environments (dev, staging, production) that can contain one or many servers. When creating a deployment, you can specify which branch you’d like the deployment to pull from.

We also provide webhooks pre and post deploy, so you can do any sort of configuration or cleanup necessary. Some other happy Beanstalk customers who developer EE have built some plugins to take our webhook post data and do things like bust cache, etc. Check that out here:

http://moresoda.co.uk/blog/article/expressionengine-beanstalk-web-hook-addon/

As you already pointed out, we can deploy over FTP or SFTP. We’ve got some more deployment tools coming soon as well, and would love to hear more about the hardest parts about deploying Expression Engine to see how we might make them easier.

Let me know if you have any questions, anytime. [email protected]

Cheers!

       
Dane Thomas's avatar
Dane Thomas
139 posts
14 years ago
Dane Thomas's avatar Dane Thomas

Yep I used Beanstalk for my EE dev.

I pretty much have everything setup as you have outlined: local, staging, prod.

Using something like ee-garages/Leevi Graham’s config bootstrap takes the pain out of having to have too much config stuff in your .gitignore

So basically I dev locally, push, beanstalk auto deploys to staging so I can test and then I use manual deployments for production.

Works a treat.

Edit: meant to link the bootstrap config file - http://ee-garage.com/nsm-config-bootstrap

       
blendimc's avatar
blendimc
150 posts
14 years ago
blendimc's avatar blendimc

Wow! Sweet, it looks like I beanstalk is the way to go. I’ve thought it might be but have never used it so just wanted to be for sure. Thanks for sharing!

       
Christopher Imrie's avatar
Christopher Imrie
57 posts
14 years ago
Christopher Imrie's avatar Christopher Imrie

We use a Beanstalk based solution at my company, and it works really well.

You just need to make some modifications to the config.php and database.php files, and it works a treat. We have three branches for every site: master, preview and development. We then configure Beanstalk to auto deploy the preview and master branches to the preview and production servers.

Only thing that rakes getting used to is the DB updates which still need to be dons manually. What does help though is that we incorporate a DB backup into the git repo, and it is updated anytime addons/channels are modified. But at least this way the team can simply pull down the latest DB along with the latest files for the site.

Also keep in mind that you’ll need a private repo if using github since EE is a licensed product.

       
pstinnett's avatar
pstinnett
19 posts
14 years ago
pstinnett's avatar pstinnett

Chiming in to say I’ve used Beanstalk extensively on EE projects. Using something like EEGarage’s bootstrap file or rolling your own is crucial, but not difficult. It’s a cinch after you set that up.

       
Natetronn's avatar
Natetronn
161 posts
14 years ago
Natetronn's avatar Natetronn

I am all for beanstalkapp as well. It’s great!

We have the same setup as Dane Thomas for the most part.

Develop locally, commit/push to dev, which is set to auto-deploy to a dev server and then we manually deploy to live/production.

       
alexknowshtml's avatar
alexknowshtml
2 posts
14 years ago
alexknowshtml's avatar alexknowshtml

Would anybody be interested in working with us to write a “Definitive guide to deploying EE with Beanstalk”?

It sounds like many of you have solved problems that anyone wanting to deploy EE might have. I’d love to see that stuff wrangled up into a single guide.

While we often link them to blog posts, it’d be great to have a complete resource for someone getting started.

If anyone’s interested, lemme know.

       
Focus Lab Dev Team's avatar
Focus Lab Dev Team
1,129 posts
14 years ago
Focus Lab Dev Team's avatar Focus Lab Dev Team
If anyone’s interested, lemme know.

Just dropped you an email.

       
Cheif's avatar
Cheif
626 posts
14 years ago
Cheif's avatar Cheif
a “Definitive guide to deploying EE with Beanstalk”?

For the love of God, yes please

       
Tyssen's avatar
Tyssen
756 posts
14 years ago
Tyssen's avatar Tyssen

http://www.deployhq.com/ combined with http://www.codebasehq.com/ is another alternative to Beanstalk.

       
kellypacker's avatar
kellypacker
138 posts
14 years ago
kellypacker's avatar kellypacker

For my local git repos I create a hook: .(JavaScript must be enabled to view this email address) to dump the database before a commit. So if you have to revert of commit, you can also import a corresponding version of the database at that point in time.

The hooks are super easy to setup.

Here is a sample of my .git/hooks/pre-commit

#!/bin/sh
#
# dump local database and store
/Applications/MAMP/Library/bin/mysqldump -u root -p'root' local_site_database | cat > /Users/kellypacker/Sites/client/example.dev/assets/sql/local.sql
echo "Export of local to file is complete"
       
kellypacker's avatar
kellypacker
138 posts
14 years ago
kellypacker's avatar kellypacker

Also, and maybe there is an easier way to do this, but I create some scripts to: export my local database and import it into my staging (ran when I deploy to staging server) export my local and import into my production (ran when I deploy sites to the production) export from production and import into local (ran before I make changes to local ee install that involve ee database changes.)

Beanstalk has hooks that might automate this, but I am new at this too and haven’t gotten that far.

Also I use transmit to sync /image/uploads folder and generally add that folder to the .gitignore

       
kellypacker's avatar
kellypacker
138 posts
14 years ago
kellypacker's avatar kellypacker

as I see it the advantage to using beanstalk or some other deployment apparatus, is that you don’t have to worry about setting up git on your staging and production servers. So if a site is hosted on a shared hosting, you integrate version control into the process. The bad part is that if you are working in a team and one person starts to make a lot of changes to the staging server without using the beanstalk workflow, then you cannot do a pull and integrate those changes into your local repo. Someone correct me if i am wrong about that, and it would nice to be wrong about that.

       
Focus Lab Dev Team's avatar
Focus Lab Dev Team
1,129 posts
14 years ago
Focus Lab Dev Team's avatar Focus Lab Dev Team
The bad part is that if you are working in a team and one person starts to make a lot of changes to the staging server without using the beanstalk workflow, then you cannot do a pull and integrate those changes into your local repo. Someone correct me if i am wrong about that, and it would nice to be wrong about that.

That is (mostly) correct. Whenever you have more than one person working on a project it is essential that you all agree on a standardized workflow to keep the process flowing efficiently.

       
1 2

Reply

Sign In To Reply

ExpressionEngine Home Features Pro Contact Version Support
Learn Docs University Forums
Resources Support Add-Ons Partners Blog
Privacy Terms Trademark Use License

Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.