Update Ubuntu, Node versions, dependencies (#22075)
This commit is contained in:
		
							
								
								
									
										71
									
								
								Vagrantfile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										71
									
								
								Vagrantfile
									
									
									
									
										vendored
									
									
								
							@@ -3,16 +3,14 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
ENV["PORT"] ||= "3000"
 | 
					ENV["PORT"] ||= "3000"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$provision = <<SCRIPT
 | 
					$provisionA = <<SCRIPT
 | 
				
			||||||
 | 
					 | 
				
			||||||
cd /vagrant # This is where the host folder/repo is mounted
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Add the yarn repo + yarn repo keys
 | 
					# Add the yarn repo + yarn repo keys
 | 
				
			||||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
 | 
					curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
 | 
				
			||||||
sudo apt-add-repository 'deb https://dl.yarnpkg.com/debian/ stable main'
 | 
					sudo apt-add-repository 'deb https://dl.yarnpkg.com/debian/ stable main'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Add repo for NodeJS
 | 
					# Add repo for NodeJS
 | 
				
			||||||
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
 | 
					curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Add firewall rule to redirect 80 to PORT and save
 | 
					# 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"]}
 | 
					sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port #{ENV["PORT"]}
 | 
				
			||||||
@@ -33,32 +31,56 @@ sudo apt-get install \
 | 
				
			|||||||
  redis-tools \
 | 
					  redis-tools \
 | 
				
			||||||
  postgresql \
 | 
					  postgresql \
 | 
				
			||||||
  postgresql-contrib \
 | 
					  postgresql-contrib \
 | 
				
			||||||
  yarn \
 | 
					 | 
				
			||||||
  libicu-dev \
 | 
					  libicu-dev \
 | 
				
			||||||
  libidn11-dev \
 | 
					  libidn11-dev \
 | 
				
			||||||
  libreadline-dev \
 | 
					  libreadline6-dev \
 | 
				
			||||||
  libpam0g-dev \
 | 
					  autoconf \
 | 
				
			||||||
 | 
					  bison \
 | 
				
			||||||
 | 
					  build-essential \
 | 
				
			||||||
 | 
					  ffmpeg \
 | 
				
			||||||
 | 
					  file \
 | 
				
			||||||
 | 
					  gcc \
 | 
				
			||||||
 | 
					  libffi-dev \
 | 
				
			||||||
 | 
					  libgdbm-dev \
 | 
				
			||||||
 | 
					  libjemalloc-dev \
 | 
				
			||||||
 | 
					  libncurses5-dev \
 | 
				
			||||||
 | 
					  libprotobuf-dev \
 | 
				
			||||||
 | 
					  libssl-dev \
 | 
				
			||||||
 | 
					  libyaml-dev \
 | 
				
			||||||
 | 
					  pkg-config \
 | 
				
			||||||
 | 
					  protobuf-compiler \
 | 
				
			||||||
 | 
					  zlib1g-dev \
 | 
				
			||||||
  -y
 | 
					  -y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Install rvm
 | 
					# Install rvm
 | 
				
			||||||
read RUBY_VERSION < .ruby-version
 | 
					sudo apt-add-repository -y ppa:rael-gc/rvm
 | 
				
			||||||
 | 
					sudo apt-get install rvm -y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
curl -sSL https://rvm.io/mpapis.asc | gpg --import
 | 
					sudo usermod -a -G rvm $USER
 | 
				
			||||||
curl -sSL https://rvm.io/pkuczynski.asc | gpg --import
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
curl -sSL https://raw.githubusercontent.com/rvm/rvm/stable/binscripts/rvm-installer | bash -s stable --ruby=$RUBY_VERSION
 | 
					SCRIPT
 | 
				
			||||||
source /home/vagrant/.rvm/scripts/rvm
 | 
					
 | 
				
			||||||
 | 
					$provisionB = <<SCRIPT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					source "/etc/profile.d/rvm.sh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Install Ruby
 | 
					# Install Ruby
 | 
				
			||||||
rvm reinstall ruby-$RUBY_VERSION --disable-binary
 | 
					read RUBY_VERSION < /vagrant/.ruby-version
 | 
				
			||||||
 | 
					rvm install ruby-$RUBY_VERSION --disable-binary
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Configure database
 | 
					# Configure database
 | 
				
			||||||
sudo -u postgres createuser -U postgres vagrant -s
 | 
					sudo -u postgres createuser -U postgres vagrant -s
 | 
				
			||||||
sudo -u postgres createdb -U postgres mastodon_development
 | 
					sudo -u postgres createdb -U postgres mastodon_development
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Install gems and node modules
 | 
					cd /vagrant # This is where the host folder/repo is mounted
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Install gems
 | 
				
			||||||
gem install bundler foreman
 | 
					gem install bundler foreman
 | 
				
			||||||
bundle install
 | 
					bundle install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Install node modules
 | 
				
			||||||
 | 
					sudo corepack enable
 | 
				
			||||||
 | 
					yarn set version classic
 | 
				
			||||||
yarn install
 | 
					yarn install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Build Mastodon
 | 
					# Build Mastodon
 | 
				
			||||||
@@ -72,18 +94,11 @@ echo 'export $(cat "/vagrant/.env.vagrant" | xargs)' >> ~/.bash_profile
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
SCRIPT
 | 
					SCRIPT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$start = <<SCRIPT
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo 'To start server'
 | 
					 | 
				
			||||||
echo '  $ vagrant ssh -c "cd /vagrant && foreman start"'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SCRIPT
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
VAGRANTFILE_API_VERSION = "2"
 | 
					VAGRANTFILE_API_VERSION = "2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
 | 
					Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  config.vm.box = "ubuntu/bionic64"
 | 
					  config.vm.box = "ubuntu/focal64"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  config.vm.provider :virtualbox do |vb|
 | 
					  config.vm.provider :virtualbox do |vb|
 | 
				
			||||||
    vb.name = "mastodon"
 | 
					    vb.name = "mastodon"
 | 
				
			||||||
@@ -100,7 +115,6 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
 | 
				
			|||||||
    # Use "virtio" network interfaces for better performance.
 | 
					    # Use "virtio" network interfaces for better performance.
 | 
				
			||||||
    vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
 | 
					    vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
 | 
				
			||||||
    vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
 | 
					    vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
 | 
				
			||||||
 | 
					 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # This uses the vagrant-hostsupdater plugin, and lets you
 | 
					  # This uses the vagrant-hostsupdater plugin, and lets you
 | 
				
			||||||
@@ -118,7 +132,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
 | 
				
			|||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if config.vm.networks.any? { |type, options| type == :private_network }
 | 
					  if config.vm.networks.any? { |type, options| type == :private_network }
 | 
				
			||||||
    config.vm.synced_folder ".", "/vagrant", type: "nfs", mount_options: ['rw', 'vers=3', 'tcp', 'actimeo=1']
 | 
					    config.vm.synced_folder ".", "/vagrant", type: "nfs", mount_options: ['rw', 'actimeo=1']
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    config.vm.synced_folder ".", "/vagrant"
 | 
					    config.vm.synced_folder ".", "/vagrant"
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
@@ -129,9 +143,12 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
 | 
				
			|||||||
  config.vm.network :forwarded_port, guest: 8080, host: 8080
 | 
					  config.vm.network :forwarded_port, guest: 8080, host: 8080
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Full provisioning script, only runs on first 'vagrant up' or with 'vagrant provision'
 | 
					  # Full provisioning script, only runs on first 'vagrant up' or with 'vagrant provision'
 | 
				
			||||||
  config.vm.provision :shell, inline: $provision, privileged: false
 | 
					  config.vm.provision :shell, inline: $provisionA, privileged: false, reset: true
 | 
				
			||||||
 | 
					  config.vm.provision :shell, inline: $provisionB, privileged: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Start up script, runs on every 'vagrant up'
 | 
					  config.vm.post_up_message = <<MESSAGE
 | 
				
			||||||
  config.vm.provision :shell, inline: $start, run: 'always', privileged: false
 | 
					To start server
 | 
				
			||||||
 | 
					  $ vagrant ssh -c "cd /vagrant && foreman start"
 | 
				
			||||||
 | 
					MESSAGE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user