Just Effing Do It.
The goal of the JFDI project is to provide a repository of tools to make server and remote application administration as easy as possible. We run a lot of different applications on very different architectures (PHP, PHP-FPM, Nginx, Node.js, MySQL, WordPress) so we need good tools and documentation to keep it all straight.
Most of the scripts in this repository are used for building virtual machines locally for development, and remotely for staging and production. Application deployment scripts, log analysis, and database tools are also available here.
We have a single machine that we intend to scale vertically as long as possible, nicknamed 'massive' server. Our main host for that machine is currently DigitalOcean. Although, we'd like to be able to spin up the machine on other hosts as well, for redundency.
We also have a development server configuration used for development and testing. Vagrant and VirtualBox make it easy to build a maintain virtual machines that can easily be hosted on any workstation or laptop.
The tech stack for the web development VM is designed for a Digital Ocean VPS.
- Ubuntu Trusty 14.04 64bit
- Node.js 0.12.x
- Nginx 1.4.1
- PHP 5 and FPM
A good place to get started is to check out the jfd script itself by running
./jfd help
Node.js and npm are installed and managed with nvm. The Vagrant provision script installs nvm, but does not install any node versions. You'll need to do this with nvm install stable
.
Redis is installed and should be running.
PostgreSQL is installed and running with user: vagrant, pwd: rootdev. No databases have been created. You'll need to create them yourself.
Elastisearch is installed, but is not running by default. You'll need to start it with sudo /etc/init.d/elastisearch start
. It can be tested by calling curl http://localhost:9200
.
MongoDB is installed and running.
You'll need to install VirtualBox, and Vagrant (make sure you also get the vagrant-vbguest plugin -- instructions below):
Find the latest VirtualBox package at www.virtualbox.org/wiki/Downloads. Download and install the correct package for your platform.
You can find the installation instructions for Vagrant at docs.vagrantup.com/v2/installation/.
GOTCHA (Ubuntu users): Vagrant installs itself in /opt/vagrant/
, which is probably
not on your PATH. This is a problem, because you'll need to run
/opt/vagrant/bin/vagrant
instead of vagrant
whenever you want to use it.
You can fix this pretty simply by creating a sym link to a directory which is
on your path like this:
sudo ln -s /opt/vagrant/bin/vagrant /usr/local/bin/vagrant
Make sure you install the vagrant-vbguest plugin for vagrant, which manages the hassle of VirtualBox Guest Additions for you:
vagrant plugin install vagrant-vbguest
Copyright: (c) 2013 by The Fireworks Project (http://www.fireworksproject.com)
Unless otherwise indicated, all source code is licensed under the MIT license. See LICENSE for details.