Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie
Hi there,
There is an issue with role permissions that is being worked on at the moment.
If you are having trouble with access or permissions on regional forums please post here to get access: https://www.boards.ie/discussion/2058365403/you-do-not-have-permission-for-that#latest

Managing Customers WordPress sites

  • 16-09-2013 1:33pm
    #1
    Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭


    I'm trying to work out what's considered best practice for managing customers WordPress sites. I'd be interested in seeing what anyone else thinks with regard to:

    Provide hosting or set the customer with their own hosting account?

    Using plugins, tools or 3rd party services to manage WordPress itself.

    WordPress updates, manual or using a tool?

    Manage backups or leave that to the hosting provider/client?

    Monitoring sites/servers/WP itself????

    Anything else I've missed but should really add to my list of things to consider?


Comments

  • Registered Users, Registered Users 2 Posts: 20 uglybunz


    It sounds like you need something for Wordpress that is like drush for Drupal. Searching for "drush for wordpress" yields a few interesting hits,
    like wp-cli: https://github.com/andreascreten/wp-cli
    or Wordpress mass-management tools: http://birdhouse.org/software/2010/08/wordpress-mass-management/

    Obviously you need ssh hosting accounts to run such software.

    I don't know how these compare with drush, but to give you an idea of what it can do with Drupal - it can remotely back up, restore, update, clone, install new sites, work with themes, report status, etc, etc.


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    Thanks uglybunz.

    I've been running wp-cli for a few days now, it looks pretty good. I'm just trying to work out if there's any other tools I've missed.

    That birdhouse script looks interesting although it does look like it hasn't been touched in a couple of years. WordShell (mentioned at the bottom of the birdhouse page) looks like a fairly similar commercial product, I must test that out and compare it to wp-cli.


  • Registered Users, Registered Users 2 Posts: 88 ✭✭mrbubbles


    Hi Graham,

    I've been freelancing full time for a year now, having previously worked for a number of agencies and companies throughout the UK.

    I used to have a server on which I offered hosting but I found that often when the OS was updated it would break apache/postfix/something else and I'd end up wasting a day or two fixing it. My clients were rarely willing to pay a premium for hosting (as they'd just compare it to Hostgator and moan that it was too expensive, despite being a far better service) so in the end it just wasn't worth my while.

    Now, as part of my standard setup with a new client, I migrate their emails onto Google Apps (using their own domain) as this means that they can access their emails IMAP, POP3 and their mobile devices without any additional configuration on my part.

    For hosting, I recommend from a number of hosts (from Hostgator to Rackspace) depending on a) their budget b) their uptime expectations. I also make clear that it is THEIR responsibility to backup their site and talk them through the best way to do this with their chosen hosting provider.

    From a Wordpress point of view, I believe that when I'm building a site I'm basically putting together a product for a client. Once the build is finished and signed off, I handover the product and it is no longer my responsibility (with the exception of coding errors/other issues for which I am responsible, which I will fix free-of-charge for 60 days).

    Should a client want me to update their site (be it the Wordpress core files or the custom theme templates/functionality which I have added) then I am happy to do so, but it is a billable piece of work.

    Not sure if this is what you were asking but thought I'd share :)


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    Thanks mrbubbles, very interesting.

    I suspect most freelancers are either taking the same approach as you or throwing their customer onto a reseller account somewhere and hoping not to get too much hassle from them down the line.

    Do you find most customers already come to you with a domain/email/hosting etc or are you generally starting from scratch?


  • Registered Users, Registered Users 2 Posts: 88 ✭✭mrbubbles


    For my end clients (I do a lot of work for agencies so all that stuff is taken care of) I'd say that 90% of them have already registered a domain. I guess it's because it's the first cheap/easy step to making an idea come to life; well, maybe not so much in Ireland ;) but in the UK domain registration is very easy so it's just a case of 1) have an idea 2) register a domain... and worry about what to actually do with it later!

    So are you a developer, project manager or consultant? Or a freelancer (i.e. a bit of everything!)?


  • Advertisement
  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    A definite bit of everything at the moment although my background is in the 'large customer' end of the market.

    Working on a project at the moment in the WordPress arena so really interested in hearing the experience of others in the overall WordPress ecosystem.

    As a lot of your work comes via agencies, I'm guessing your customers would be a little bit away from the '€200 website from a student' type.


  • Registered Users, Registered Users 2 Posts: 16,414 ✭✭✭✭Trojan


    The age old web freelancers question: to host client sites or not?

    I don't for the most part, for similar reasons to mrbubbles. Too much hassle and risk, not enough revenue, and I am a consultant, not a hosting company. There are bigger companies out there who can do it far better than I could.

    One additional point on what mrbubbles said: I do believe that it is not the website creators responsibility to update the CMS - unless explicitly in a maintenance contract - but I also believe it is absolutely essential that they educate the client on the importance of keeping it up to date, and the potential consequences of not doing so.


  • Registered Users, Registered Users 2 Posts: 88 ✭✭mrbubbles


    Hi Trojan - yep exactly; it's not our responsibility to mollycoddle our clients but rather to inform them so that they can make informed decisions and be aware of the consequences of should they choose not to do something.

    To be honest, most clients are happy to pay for me to keep it updated every few months as it doesn't take long (I do have a hour min charge though so I try and tie it in with some other little bits of work wherever possible) and a few have even taken to doing it themselves as WP makes everything pretty easy in that respect.


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    Thanks Trojan/mrbubbles,

    Any views on version control for WordPress sites, it appears to be fairly conspicuous by its absence in a lot of projects.


  • Registered Users, Registered Users 2 Posts: 88 ✭✭mrbubbles


    I always develop locally first so I version control just as I would any other PHP project (i.e in GIT). DB is a bit more of a pain, but I use Navicat (OSX tool) so can drag/drop a copy of the DB into the project folder and then commit that into GIT in the usual way. One of my old companies, Red Gate Software, sell a tool to source control MS SQL Server databases and I THINK they were looking into doing the same for MYSQL; not sure if anything ever came of it though.

    I'm currently researching the best way to deploy via GIT as I'd like to keep my local, staging and live sites in sync automatically without having to use FTP. Does anyone have any experience of that?


  • Advertisement
  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    Git, Navicat and FTP are exactly what I'm using at the moment but I've been playing around with taking snapshots of VM's to try and streamline the process. It's clean enough from Live -> Staging -> Dev but deploying in the other direction is more problematic.


  • Registered Users, Registered Users 2 Posts: 88 ✭✭mrbubbles


    I'd be interested in talking to you in more depth, Graham, always nice to meet a fellow geek trying to optimise their workflow :) Have PM'd you...


  • Registered Users, Registered Users 2 Posts: 6,571 ✭✭✭daymobrew


    Graham wrote: »
    WordPress updates, manual or using a tool?
    I have recently been using InfiniteWP to do plugin and core updates on some of my client WordPress sites. One click updates. You can add the FTP info to wp-config.php.

    On a few sites I use the WP Updates Notifier plugin to let me know when a new update is available.

    On most of the sites I have installed WP Status Dashboard plugin. The admin console is now open source: https://github.com/justinscheetz/WordPress-Status-Dashboard.


  • Registered Users, Registered Users 2 Posts: 10,748 ✭✭✭✭maccored


    I do it the old fashioned way. I charge my clients a yearly fee just for maintenance and updating. They then email me on any info they want on the site (it saves them time - sites are wordpress so they can also do it themselves) and I keep their wordpress installs updated as well as the content. I also look after their servers and email etc and completely manage the server backend. Thankfully I have an upstream that gives me proper ssh root access so I can basically use the servers as I wish without having to log everything through a helpdesk.


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    daymobrew wrote: »
    I have recently been using InfiniteWP to do plugin and core updates on some of my client WordPress sites. One click updates. You can add the FTP info to wp-config.php.

    On a few sites I use the WP Updates Notifier plugin to let me know when a new update is available.

    On most of the sites I have installed WP Status Dashboard plugin. The admin console is now open source: https://github.com/justinscheetz/WordPress-Status-Dashboard.

    Thanks Daymobrew, I had a look at InifiniteWP, looks like an interesting product alight.

    The WP Updated Notified, does that email you when an update is waiting?

    I had a quick look at WP Status Dashboard but it looks like it's been abandoned for a couple of years now, has that caused you any problems?


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    maccored wrote: »
    I do it the old fashioned way. I charge my clients a yearly fee just for maintenance and updating. They then email me on any info they want on the site (it saves them time - sites are wordpress so they can also do it themselves) and I keep their wordpress installs updated as well as the content. I also look after their servers and email etc and completely manage the server backend. Thankfully I have an upstream that gives me proper ssh root access so I can basically use the servers as I wish without having to log everything through a helpdesk.

    Cheers maccored, how often would you have to do a 'login tour' of your customers sites/servers?


  • Registered Users, Registered Users 2 Posts: 88 ✭✭mrbubbles


    @maccored

    I don't blame you one bit... I'm currently fighting with a clients 1and1 hosting package - YUUUK!


  • Registered Users, Registered Users 2 Posts: 6,571 ✭✭✭daymobrew


    Graham wrote: »
    The WP Updated Notified, does that email you when an update is waiting?
    Yes.
    Graham wrote: »
    I had a quick look at WP Status Dashboard but it looks like it's been abandoned for a couple of years now, has that caused you any problems?
    No.
    Bizarrely 2 of 19 of my sites don't appear correctly in the listing but I think that this is probably a line ending thing (when I do it manually the info returned by the sites looks fine). Not a biggie.


  • Registered Users, Registered Users 2 Posts: 10,748 ✭✭✭✭maccored


    Graham wrote: »
    Cheers maccored, how often would you have to do a 'login tour' of your customers sites/servers?

    at least once a month if they dont have any post updates that need doing - though normally at least once a week since any clients i offer that service to generally feed me with updates they want done. Kinda kill two birds with one stone then.


  • Registered Users, Registered Users 2 Posts: 10,748 ✭✭✭✭maccored


    mrbubbles wrote: »
    @maccored

    I don't blame you one bit... I'm currently fighting with a clients 1and1 hosting package - YUUUK!

    I have a handful of clients who are hosted with other hosters and generally its OK - though its a pain when theres a server issue and those clients come to me for solutions. All i can do is send them an email outlining the issue so that they can forward it on to their hosting companys helpdesk.


  • Advertisement
  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    Thanks guys, some really fantastic feedback there.

    Can I ask how you all handle WP upgrades for users that have custom or purchased templates?


  • Registered Users, Registered Users 2 Posts: 88 ✭✭mrbubbles


    If the template has been built properly then you should be able to upgrade the core without affecting the front end. It's only usually when stuff has been hacked (usually by the client, trying to save €€) that they then need to pay me to fix it for them :)


  • Registered Users, Registered Users 2 Posts: 6,571 ✭✭✭daymobrew


    Graham wrote: »
    Can I ask how you all handle WP upgrades for users that have custom or purchased templates?
    For purchased templates a child theme should be uses so updating the purchased template is trivial.


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    daymobrew wrote: »
    For purchased templates a child theme should be uses so updating the purchased template is trivial.

    That's assuming a child theme has been used, would it be fair to say that's not always/often the case if a client has come to you with a site they/random-student has setup.

    That's also assuming there's an update for the theme itself.

    Both of those probably give rise to another interesting couple of questions.

    What do you do when a client comes to you with an existing WP site?
    How do you handle themes where no update is available?


  • Registered Users, Registered Users 2 Posts: 10,748 ✭✭✭✭maccored


    Graham wrote: »
    How do you handle themes where no update is available?

    Let them either leave the theme as is or charge them to custom code it to suit. Most of the time I either modify a free theme for a client or build them a new one from scratch - depending on their budget.


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    Do any of you guys have a standard workflow for setting up new WordPress sites or do you just do an ad-hoc build for each install?

    I'm trying to automate the process as much as possible, here's what I have so far:

    Complete setup page with following details:
    • Domain
    • Username
    • DB Name
    • DB User
    • DB Password
    • WP Title
    • WP Administrator
    • WP Admin Password
    • WP Admin E-Mail

    This is what happens in the background when the setup form is submitted:
    1. Create hosting account
    2. Create website on hosting account
    3. Copy WP files
    4. Change permissions
    5. Configure nginx
    6. Create database
    7. Create DNS records
    8. Enable CDN
    9. Run WordPress install
    10. Run WordPress config
    11. Append lines to wp-config
    12. Install plugins (optional)
    13. Activate plugins (optional)
    14. Install themes (optional)
    15. Activate Theme (optional)

    Can anyone suggest anything I may be missing?


  • Registered Users, Registered Users 2 Posts: 16,414 ✭✭✭✭Trojan


    This is a few years out of date, so I've adapted and changed quite a few things, but it might be useful for someone.

    http://youtu.be/vusA9Lo2sSw?t=1m7s


  • Registered Users, Registered Users 2 Posts: 6,289 ✭✭✭Talisman


    Graham wrote: »
    Do any of you guys have a standard workflow for setting up new WordPress sites or do you just do an ad-hoc build for each install?

    I'm trying to automate the process as much as possible, here's what I have so far:

    Complete setup page with following details:
    • Domain
    • Username
    • DB Name
    • DB User
    • DB Password
    • WP Title
    • WP Administrator
    • WP Admin Password
    • WP Admin E-Mail

    This is what happens in the background when the setup form is submitted:
    1. Create hosting account
    2. Create website on hosting account
    3. Copy WP files
    4. Change permissions
    5. Configure nginx
    6. Create database
    7. Create DNS records
    8. Enable CDN
    9. Run WordPress install
    10. Run WordPress config
    11. Append lines to wp-config
    12. Install plugins (optional)
    13. Activate plugins (optional)
    14. Install themes (optional)
    15. Activate Theme (optional)

    Can anyone suggest anything I may be missing?

    For a local development environment I use Vagrant and VirtualBox - it's easy to maintain an environment that reflects the live server.
    For source control I use BitBucket - just like GitHub but it's free for unlimited repositories for up to 5 users!
    WordPress backups are performed by the BackupBuddy plugin - it has the ability to push the backup out to Amazon S3/Dropbox which is great for peace of mind.

    WordPress/Plugin Updates I manually install myself - I had a bad experience with an automated script some years ago and haven't dipped my toe in the water since.

    I have my own scripts for setting up a new server so I can get a client site up and running in a few minutes with the latest PHP, Nginx, MariaDB with the firewall and ssh access configured. Afterwards it's a case of running the import script from BackupBuddy to get the site up and running.

    I used Capistrano on a project once and found it good but didn't have the time to get into Ruby or learn the system.


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    Talisman wrote: »
    For a local development environment I use Vagrant and VirtualBox - it's easy to maintain an environment that reflects the live server.
    For source control I use BitBucket - just like GitHub but it's free for unlimited repositories for up to 5 users!
    WordPress backups are performed by the BackupBuddy plugin - it has the ability to push the backup out to Amazon S3/Dropbox which is great for peace of mind.

    WordPress/Plugin Updates I manually install myself - I had a bad experience with an automated script some years ago and haven't dipped my toe in the water since.

    I have my own scripts for setting up a new server so I can get a client site up and running in a few minutes with the latest PHP, Nginx, MariaDB with the firewall and ssh access configured. Afterwards it's a case of running the import script from BackupBuddy to get the site up and running.

    I used Capistrano on a project once and found it good but didn't have the time to get into Ruby or learn the system.

    Thanks Talisman, do you deploy each WordPress instance to a new server/VM?


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 6,289 ✭✭✭Talisman


    Locally I only need a single VM. The beauty of Vagrant means that I can have the files that I'm working on (folder containing BackupBuddy files) in a folder. Launch Vagrant, then ssh to the vm (Command: vagrant ssh), edit the Nginx configuration to set the wwwroot to the local machine folder (by default this is shared as /vagrant), restart Nginx and on the local machine a browser can access the site via http://localhost:8080

    For clients I originally hosted their sites with Irish shared hosting companies but following a series of bad experiences I switched to a proper managed service based in the UK. Their staff were great for helping out when ever there was a difficulty but after a year of paying through the nose I was confident enough to strike out on my own and setup cloud machines for myself. I have avoided Amazon but have used plenty of other services e.g. Dediserve, Joyent, Linode, DigitalOcean etc. I used to host everything on two servers from the same host but now I spread them around. If a client wants a server of their own I can spin it up for them quite quickly, if they don't need it then they can share an existing server.


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    Thanks Talisman,

    when a client requests their own server do you suggest a particular flavour of linux/control panel?


  • Registered Users, Registered Users 2 Posts: 6,289 ✭✭✭Talisman


    I used to use CentOS as it was RedHat without the license fee but the ancient versions of software in the repositories made it a real effort to maintain servers. I switched to Ubuntu as a result and have a shortlist of repositories for getting the latest stable versions of PHP, Nginx etc. installed.

    I haven't ever had to give anybody a proper control panel - phpMyAdmin and FTP access have sufficed.

    I used a few control panels over the years but they were all Apache focused at the time. I'm sure there probably are a few to manage Nginx now but I haven't had the need to find one - ssh with rsa authentication is great. For managing a single server I found Webmin a great interface, Munin is used for monitoring.


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    I had looked at Webmin but it was missing a couple of things from my wish list. The biggest being a reasonable API with a couple of specific features. The UI also looks incredible dated but that wouldn't have mattered so much if the API had been upto the job.

    Munin looks like it could be very useful though, might have a go with that over the weekend.

    I should add, I didn't find anything particularly wrong with Webmin, it just didn't have a couple of the specific features I was looking for,


  • Registered Users, Registered Users 2 Posts: 6,289 ✭✭✭Talisman


    What are the features you need?


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    Runs on Ubuntu
    JSON / XML API
    Apache
    MySQL
    Nginx
    Multiple pre-defined hosting configs
    Multiple pre-defined default websites
    Modern (responsive) UI.
    Customisable UI
    Option to script common build processes
    Quick install
    Active support/development
    Supports multiple remote servers
    Reasonably priced

    I'm sure there's more I missed, that's just off the top of my head. If there's a control panel out there today that even comes close, I've probably tried it :)


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 6,289 ✭✭✭Talisman


    Have you considered using Puppet? Bit of a learning curve but that's DevOps for you.


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    Talisman wrote: »
    Have you considered using Puppet? Bit of a learning curve but that's DevOps for you.

    Haven't really given it more than a quick look but the per node pricing of the Enterprise solution would blow my cost model out of the water.

    Forgot to add to my list:
    End-user self provisioning/management.
    Billing/payment processing.


  • Registered Users, Registered Users 2 Posts: 6,289 ✭✭✭Talisman


    Are you looking to setup an end to end hosting service?


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    Almost the opposite, I'm trying to completely abstract all of the hosting parts out completely.


Advertisement