idbygeorge / salsa

Web app for creating a syllabus in an accessible HTML document, publishing to the Canvas LMS, and more.
http://syllabustool.com
Other
23 stars 18 forks source link

Vagrant for rapid community development #119

Open btopro opened 10 years ago

btopro commented 10 years ago

I'd highly recommend using either Docker or Vagrant (vagrant plz) to help jump start / on-board people in helping with your development efforts. http://www.vagrantup.com . I did this recently with ELMSLN and it's finally made the project a real thing people can play with -- https://github.com/btopro/nittany-vagrant if your looking for an example to pick apart. Installs Drupal after getting apache all up and running but would be easy enough to fork to deploy this tool I think.

llamapope commented 10 years ago

Vagrant seems like a great way to do this. I don't have a lot of experience with it though. I got an instance up and running Salsa in development mode (although it still is using the built in server so you have to ssh in and tell rails to start the server whenever you want to use it).

I haven't read up on Vagrant enough yet to know what all I need to do to make it as simple as the ELMSLN project has it. Is there a simple way to publish an image for what I have or should I learn how to define all of the necessary configurations for Vagrant to build a server based off of an existing VM image?

jasonheffner commented 10 years ago

I actually found some of the vagrant installers cumbersome and more difficult to get running, especially when code changes, virtualbox/vagrant updates and conflicting versions break the installer. That's a sysadmin perspective though. I have liked some of the heroku deployers I've seen some projects use.

btopro commented 10 years ago

@llamapope easiest way to build a VM for this is to start from a blank VM, make all your changes and then you can do vagrant box recreate (I think) and it'll take the current VM state and turn it into a .box file. Then you can start a new (simpler) VagrantFile using the basebox as a starting point instead of having to author all the commands you did.

To avoid the latest version issues Jason is referencing, my vagrantfile does git checkouts / apt-get update style commands to make sure the system is fresh after installation. If you have any questions or would like help with this I'd be happy to hop on skype / irc / gtalk sometime. The ELMSLN vagrantfile(s) took about 3 weeks to develop and led to massive improvements in the installation routine of the system. So I guess what I'm saying is I only have like 3 weeks more experience then someone with no knowledge of Vagrantfiles :)