Update Ubuntu, Node versions, dependencies (#22075)
This commit is contained in:
		
							
								
								
									
										71
									
								
								Vagrantfile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										71
									
								
								Vagrantfile
									
									
									
									
										vendored
									
									
								
							@@ -3,16 +3,14 @@
 | 
			
		||||
 | 
			
		||||
ENV["PORT"] ||= "3000"
 | 
			
		||||
 | 
			
		||||
$provision = <<SCRIPT
 | 
			
		||||
 | 
			
		||||
cd /vagrant # This is where the host folder/repo is mounted
 | 
			
		||||
$provisionA = <<SCRIPT
 | 
			
		||||
 | 
			
		||||
# Add the yarn repo + yarn repo keys
 | 
			
		||||
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'
 | 
			
		||||
 | 
			
		||||
# 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
 | 
			
		||||
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 \
 | 
			
		||||
  postgresql \
 | 
			
		||||
  postgresql-contrib \
 | 
			
		||||
  yarn \
 | 
			
		||||
  libicu-dev \
 | 
			
		||||
  libidn11-dev \
 | 
			
		||||
  libreadline-dev \
 | 
			
		||||
  libpam0g-dev \
 | 
			
		||||
  libreadline6-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
 | 
			
		||||
 | 
			
		||||
# 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
 | 
			
		||||
curl -sSL https://rvm.io/pkuczynski.asc | gpg --import
 | 
			
		||||
sudo usermod -a -G rvm $USER
 | 
			
		||||
 | 
			
		||||
curl -sSL https://raw.githubusercontent.com/rvm/rvm/stable/binscripts/rvm-installer | bash -s stable --ruby=$RUBY_VERSION
 | 
			
		||||
source /home/vagrant/.rvm/scripts/rvm
 | 
			
		||||
SCRIPT
 | 
			
		||||
 | 
			
		||||
$provisionB = <<SCRIPT
 | 
			
		||||
 | 
			
		||||
source "/etc/profile.d/rvm.sh"
 | 
			
		||||
 | 
			
		||||
# Install Ruby
 | 
			
		||||
rvm reinstall ruby-$RUBY_VERSION --disable-binary
 | 
			
		||||
read RUBY_VERSION < /vagrant/.ruby-version
 | 
			
		||||
rvm install ruby-$RUBY_VERSION --disable-binary
 | 
			
		||||
 | 
			
		||||
# Configure database
 | 
			
		||||
sudo -u postgres createuser -U postgres vagrant -s
 | 
			
		||||
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
 | 
			
		||||
bundle install
 | 
			
		||||
 | 
			
		||||
# Install node modules
 | 
			
		||||
sudo corepack enable
 | 
			
		||||
yarn set version classic
 | 
			
		||||
yarn install
 | 
			
		||||
 | 
			
		||||
# Build Mastodon
 | 
			
		||||
@@ -72,18 +94,11 @@ echo 'export $(cat "/vagrant/.env.vagrant" | xargs)' >> ~/.bash_profile
 | 
			
		||||
 | 
			
		||||
SCRIPT
 | 
			
		||||
 | 
			
		||||
$start = <<SCRIPT
 | 
			
		||||
 | 
			
		||||
echo 'To start server'
 | 
			
		||||
echo '  $ vagrant ssh -c "cd /vagrant && foreman start"'
 | 
			
		||||
 | 
			
		||||
SCRIPT
 | 
			
		||||
 | 
			
		||||
VAGRANTFILE_API_VERSION = "2"
 | 
			
		||||
 | 
			
		||||
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
 | 
			
		||||
 | 
			
		||||
  config.vm.box = "ubuntu/bionic64"
 | 
			
		||||
  config.vm.box = "ubuntu/focal64"
 | 
			
		||||
 | 
			
		||||
  config.vm.provider :virtualbox do |vb|
 | 
			
		||||
    vb.name = "mastodon"
 | 
			
		||||
@@ -100,7 +115,6 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
 | 
			
		||||
    # Use "virtio" network interfaces for better performance.
 | 
			
		||||
    vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
 | 
			
		||||
    vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # This uses the vagrant-hostsupdater plugin, and lets you
 | 
			
		||||
@@ -118,7 +132,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  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
 | 
			
		||||
    config.vm.synced_folder ".", "/vagrant"
 | 
			
		||||
  end
 | 
			
		||||
@@ -129,9 +143,12 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
 | 
			
		||||
  config.vm.network :forwarded_port, guest: 8080, host: 8080
 | 
			
		||||
 | 
			
		||||
  # 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.provision :shell, inline: $start, run: 'always', privileged: false
 | 
			
		||||
  config.vm.post_up_message = <<MESSAGE
 | 
			
		||||
To start server
 | 
			
		||||
  $ vagrant ssh -c "cd /vagrant && foreman start"
 | 
			
		||||
MESSAGE
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user