diff options
Diffstat (limited to 'Vagrantfile')
-rw-r--r-- | Vagrantfile | 71 |
1 files changed, 44 insertions, 27 deletions
diff --git a/Vagrantfile b/Vagrantfile index 0d44b4d23..043bab3e9 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -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 + +SCRIPT -curl -sSL https://raw.githubusercontent.com/rvm/rvm/stable/binscripts/rvm-installer | bash -s stable --ruby=$RUBY_VERSION -source /home/vagrant/.rvm/scripts/rvm +$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 |