sudo apt-add-repository 'deb https://dl.yarnpkg.com/debian/ stable main'
# Add repo for NodeJS
-curl -sL https://deb.nodesource.com/setup_6.x | sudo bash -
+curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
# Add firewall rule to redirect 80 to PORT and save
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port #{ENV["PORT"]}
postgresql-contrib \
protobuf-compiler \
yarn \
+ libicu-dev \
+ libidn11-dev \
libprotobuf-dev \
libreadline-dev \
+ libpam0g-dev \
-y
# Install rvm
read RUBY_VERSION < .ruby-version
-gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
-curl -sSL https://get.rvm.io | bash -s stable --ruby=$RUBY_VERSION
+
+gpg_command="gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB"
+$($gpg_command)
+if [ $? -ne 0 ];then
+ echo "GPG command failed, This prevented RVM from installing."
+ echo "Retrying once..." && $($gpg_command)
+ if [ $? -ne 0 ];then
+ echo "GPG failed for the second time, please ensure network connectivity."
+ echo "Exiting..." && exit 1
+ fi
+fi
+
+curl -sSL https://raw.githubusercontent.com/rvm/rvm/stable/binscripts/rvm-installer | bash -s stable --ruby=$RUBY_VERSION
source /home/vagrant/.rvm/scripts/rvm
+# Install Ruby
+rvm reinstall ruby-$RUBY_VERSION --disable-binary
+
# Configure database
sudo -u postgres createuser -U postgres vagrant -s
sudo -u postgres createdb -U postgres mastodon_development
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
- config.vm.box = "ubuntu/trusty64"
+ config.vm.box = "ubuntu/xenial64"
config.vm.provider :virtualbox do |vb|
vb.name = "mastodon"
vb.customize ["modifyvm", :id, "--memory", "2048"]
+ # Increase the number of CPUs. Uncomment and adjust to
+ # increase performance
+ # vb.customize ["modifyvm", :id, "--cpus", "3"]
# Disable VirtualBox DNS proxy to skip long-delay IPv6 resolutions.
# https://github.com/mitchellh/vagrant/issues/1172
end
- config.vm.hostname = "mastodon.dev"
-
# This uses the vagrant-hostsupdater plugin, and lets you
- # access the development site at http://mastodon.dev.
+ # access the development site at http://mastodon.local.
+ # If you change it, also change it in .env.vagrant before provisioning
+ # the vagrant server to update the development build.
+ #
# To install:
# $ vagrant plugin install vagrant-hostsupdater
+ config.vm.hostname = "mastodon.local"
+
if defined?(VagrantPlugins::HostsUpdater)
config.vm.network :private_network, ip: "192.168.42.42", nictype: "virtio"
config.hostsupdater.remove_on_suspend = false
end
if config.vm.networks.any? { |type, options| type == :private_network }
- config.vm.synced_folder ".", "/vagrant", type: "nfs", mount_options: ['rw', 'vers=3', 'tcp']
+ config.vm.synced_folder ".", "/vagrant", type: "nfs", mount_options: ['rw', 'vers=3', 'tcp', 'actimeo=1']
else
config.vm.synced_folder ".", "/vagrant"
end