###Objective:
- The documentation of setting up a full-stack collaborative development environment for a software project.
- Vagrant files to install essential tools in virtualbox.
###What do you need:
- Dev machines, Operating systems
- Domains
- Servers
- Virtual Private Server (VPS)
- Cloud computing platform
- Development tools
- Langauge
- C++, Java, Python, etc.
- Development tool
- make, maven, pybuilder, virtualenv, lint, etc.
- IDE
- Vim, Emacs, Eclipse, XCode, Visual Studio, etc.
- Framework, SDK, libraries
- Django, Jquery, Node.js, Andriod SDK, Hadoop, Protobuf, Google Maps API, etc.
- Databases
- RDBM or NoSQL
- System tools
- Memcached, Redis, RabbitMQ, Vagrant, etc.
- Web server
- Nginx or Apache
- Langauge
- Source code management system (SCM)
- Git, Subversion
- Code search
- Code review
- Code coverage
- Project management software
- Agile development management
- Planning and scheduling
- Issue tracking
- Document management
- Twiki, Google Docs
- Comparison
- Agile development management
- Continuous integration
- Build, Test, Release
- Comparison
- Deployment and Automation
- Puppet, Chef, etc.
The below lists my choice for self-hosted development platform.
- Ubuntu 14.04 LTS
- A popular Linux distribution
- Virtualbox
- Free VM software for all major platforms
- Vagrant
- Vagrant allows you to share the vm images
- Virtual Private Server
- DigitalOcean
- Easy to use, friendly for developers, as cheap as $5/month
- Linode
- A leading VPS company.
- DigitalOcean
- Editor and IDE
- Vim, Emacs, Eclipse
- Language
- Python, C++, R
- Serialization
- Vagrant
- An open-source software for creating and configuring virtual development environments. Very handly to set up the dev environment on VMs or VPS/Cloud.
- Vagrant for Digital Ocean
- Vagrant for AWS
- Git
- A popular distributed SCM
- SourceTree: A git GUI
- Git tutorials
- GitLab
- An alternative to github, open source, but hosted by yourself.
- DigitalOcean has a pre-installed vm image to setup a gitlab in a minute.
- Install GitLab using Chef solo
- Jenkins
- A popular CI tool. Easy to install and use.
- Cloud Computing Platforms
- OpenStack
- Open source cloud computing platform
- Amazon AWS
- Market Leader
- Google Compute Engine *
- Made by Google
- OpenStack
- GitHub
- A popular git hosting service and developer's community
- Atlassian
- Pretty much everything you need for collaborative development enviornment
- Thoughtworks
- Code review