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" | 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 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user