Background:
As an aspiring freelance web developer, I read about all kinds of good development setups, but haven't got the time nor know-how to set it all up. Everything from the basic IDE all the way to the holy grail: The allmighty Continuous Integration setup. I think there are many developers out there who would install Amahi in a split second if offered such functionalty. Yes, this might be beyond the scope of the "home digital assistant" Amahi sets out to be, but then again: Recruiting developers to the Amahi platform no doubt leads to a better HDA in the end. Even Ballmer gets the value of developers.. (ref.)
Dream scenario:
I would like to be able to follow a best practise workflow where Amahi is the staging server.
- A single click updates my HDA with the local changes, I can then confirm these changes work on the HDA.
- Another single click deploys these changes to the production/live server.
Here is a Google Doc drawing (direct link) showing a possible scenario:
Choices
Just evaluating and selecting your weapon of choice can be a daunting task, take a look at all the alternatives:
Wikipedia: List of build automation software
Wikipedia: Comparison of Continuous Integration Software
Wikipedia: Comparison of configuration management software
The Amahi strong point is we all have a common platform to start from. Our hardware differs, but having the same software starting point makes this beast a whole lot easier to tackle. Amahi already has a web server and supports vhosts/subdomains and dyndns. Few changes are needed to make a separate subdomain accessible from both LAN and WAN.
Now what?
Could we please get a discussion going on what would such a setup need to support?
1) Who is our target audience? Freelance single dev or maybe small teams? How to we determine the answer, do we poll the current community, make assumptions or try to make the package as agnostic as possible?
2) Based on the answer of 1), we could determine:
2a) Which scripting languages should be supported?
2b) Which build tool to use?
2c) Which Continuous Integration server?
2d) Is Configuration Management neccessary?
In case you are curious, here are some key lines from the irc log (my nick is supergreg):
01:27:33 supergreg: one thing I personally would love to see is a developer package. If my HDA could offer continous integration development+deployment.. it's one of those best practises I want to have but do not have the time to get into and setup
01:30:03 supergreg: I have barely played with the idea of setting up capistrano, phing etc etc
01:33:25 supergreg: I have been contemplating renting a Linode just because they have finished stackscripts which creates wanted environments.. https://www.linode.com/stackscripts/
01:36:32 cpg: what is the ideal?
01:36:46 cpg: dumb it down for me please
01:38:31 supergreg: local super-dev environment! Develop stuff on my client computer, but use my LAN HDA as staging, with full deployment and VCS etc.. then push and deploy to a 2nd server on the internet (Amahi on AWS or own VPS somewhere else)
01:39:28 supergreg: I could set this up right now if I only knew how to, and knew which apps would be ideal for my use, but I have no knowledge of that and it frankly takes too much time to get into
01:49:47 supergreg: If you could offer tutorials or even better: scripts which helps us setup our HDA as such a dev platform, I bet a lot of people would be willing to pay for renting the production server from you guys when you can offer 1-click deployment from HDA (staging) to Amahi AWS (prod). I think the power of the community here is we all have the same base setup to work from, it's a unified architecture in a way
01:49:58 archetech: cpg you could just price the dev add on as pay for app too one time price not monthly unless it includes hosting then I'd see the monthly
01:50:42 supergreg: yeah, archetech said what I said just in 1/3 of the words
01:50:56 archetech: ie turn your hda into a web design center 49.95
01:54:42 supergreg: My view on this: I would not trust myself to host a production server for my clients' websites, for that I will keep my rented web hotels or VPS servers or rent Amahi AWS. But I would LOVE to host my own devserver used for dev and staging, I have no prob with that, actually it would be a step up from my current setup
01:56:04 archetech: greg what do you offer your clients as far as a service right now ? is it web design or admin?
01:58:58 supergreg: I maintain sites, whatever it takes. I mainly setup+config+maintain Joomla and Magento sites, I have also created custom php sites and integrations, but mostly its hacking away at open source software to meet clients needs. I usually also design the templates/themes, sometimes modify purchased themes.
01:59:59 cpg: back
02:00:45 supergreg: cpg: Look at how successful Github has become.. I think they key to their success lies in having made the whole system so friendly towards developers. We aren't used to that, at least not in web dev, so once you can offer such a system feel free to shut up and take my money
02:01:28 cpg: github is definitely a crowd pleaser, just based on git
02:01:44 cpg: i was thinking some amahi "packs"
02:01:56 cpg: the Dev Bundle
02:02:02 cpg: the Small Biz Bundle
02:02:14 cpg: the Home on the Web Bundle
02:02:39 cpg: so prepay and package some apps for a bundle or two or three
02:02:47 cpg: then offer one-click renting on them
(...)
02:33:17 supergreg: cpg sure I will. Lemme just state right off the bat that I am looking primarily for turning my hda (on my lan - important due to latency, privacy etc) into a dev center, and am willing to pay for such a package (be it 1-click install or just a good recipe for making the various apps play nice together), whilst the whole AWS thing is secondary - I don't need it until I have the former up and running, and what would make me choose Amahi AWS over other hosts would be tight integration with my local hda setup. (aka easy deployment etc)