Would a dev-VM help beginners getting started

If someone comes along wanting to start helping out with development I get the feeling simply setting up a dev-environment is a big obstacle by itself.
An experienced Ruby/Rails developer has no problems setting up the D* dev env, but - if I remember my early days - taking that first step might take a while; and some motivation.
Also, it might make sense to lower the barrier to a level where getting started really doesn’t require any prior knowledge, so everyone can focus on what they’re good at - Javascript, CSS, Ruby and what have you.

I propose to create a VM image that new devs can download and find a ready-to-go setup for running D*, including Ruby, Redis, Postgres and all the other stuff we depend on.
This would probably mean utililzing a setup tool like Puppet or Chef and a service to build the images, like packer.io.
Re-building should happen regularly and - ideally - automatically, and if we do it right, the dev team can use it themselves, to make sure everything works as expected.

Can we get a range of opinions?

Note: This discussion was imported from Loomio. Click here to view the original discussion.

I won’t develop for diaspora in a VM.

Developing software using VMs is a great idea, snapshots are brilliant.

It’s a good idea to get people up and running quickly for sure, but don’t Bitnami already offer this?


Granted, it’s not development as such, but I’m sure the folks at Bitnami would accommodate a request from the Foundation.

There is also a vagrant based thingy: https://www.loomio.org/d/ZYOju0R6/automating-diaspora-deploy-with-vagrant-puppet-and-capistrano

VM’s are great, I’d totally love to have a well supported solution for developers to jump right in. But someone just needs to maintain them. I’d vote for the Vagrant solution by Joe to be some kind of “officially recommended” since he seems pretty eager :wink: Of course we should also maintain the install instructions as they are now.

I’d prefer a VM over vagrant. The reason to use a VM is that I don’t want to handle all the different technologies that diaspora requires to be run. But vagrant would be another strange technology that people might not be used to. But everybody understands a VM.

But everybody understands a VM.

ahem I’m not sure I do.

I’ve reached out to our friends at Bitnami on this one :slight_smile:

Hi, Daniel from Bitnami here. If you tell us what the VMs are missing in terms of being useful for development (not just deployment) we will be happy to look into it.


@daniellopez Thanks very much for getting to this one so quickly!

@EveryoneElse Are you able to supply Daniel with some more information?

I’m not a Diaspora developer, but since none of them replied, maybe I’ll try to say about what would I expect to find inside a VM image if I was (in fact I hope I will some day become) a fresh Diaspora developer:

  • a running development installation of diaspora
  • git repo ready to push changes from outside of the VM (that is from my local repo, where I do all the development) to it.
  • scripts to build and update/restart an application from this repo, possibliy some kind of continuous integration solution.

its a nice idea … but i agree with @Jonne Haß …your choice of VM regarding security considerations should be chosen carefully … but one of the things that interests me about *Diaspora is its multi-application architecture … theres no need for feature creep that would create more complexity … there is ample potential in existing processes … i think a collaborative space - maybe linked to Github … thinking of Mosh’s shared terminal or the whiteblock teaching editor that the guy from India who makes the

… oops … Debian *Diaspora package uses … theres so much functionality already exists,just needs fishing out … i believe the ratio of intermediate users and competent scripters and developers would be higher than in other social networks … but the challenge is a shared design.

@Goob exactly … if you dont understand VM … then your lack of understanding of Vagrant is at the beginning of the same learning curve :wink: … if its important to their productivity,they will study :slight_smile:

though Bitnami’s@Daniel Lopez has already answered this :wink:

I think Docker would be interesting because lighter weight than virtual machines. Dev can easily change working environment in a few seconds and pod admin can easily build their own Diaspora image from a pre-configured environment.

I wrote Dockerfiles for different Diaspora configurations (nginx/apache, mysql/postgre) and built the images on docker.com for examples.

Sources : https://github.com/Chocobozzz/Diaspora-Docker
Images : https://registry.hub.docker.com/u/chocobozzz/diaspora-docker/

The main defect is the user has to run on Linux (eventually Mac).

Awesome @chocobozzz - will check these out!