Update Ubuntu, Node versions, dependencies (#22075)
This commit is contained in:
		
							parent
							
								
									69137f4a90
								
							
						
					
					
						commit
						98a9347dd7
					
				
							
								
								
									
										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 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user