# -*- mode: ruby -*- # vi: set ft=ruby : # Copyright (c) 2020 Bubble, Inc. All rights reserved. For personal (non-commercial) use, see license: https://getbubblenow.com/bubble-license/ # # ================== # Bubble Vagrantfile # ================== # Running `vagrant up` will create a full Bubble development environment, and # optionally start a local launcher. # # ## Environment Variables # # ### LETSENCRYPT_EMAIL # If you specify the LETSENCRYPT_EMAIL environment variable, then `vagrant up` will also # start a Local Launcher (see docs/local-launcher.md) which is your starting point for # launching new Bubbles. # # ### BUBBLE_PORT # By default, Bubble will listen on port 8090. # If something else is already using that port on your computer, `vagrant up` will fail. # Set the `BUBBLE_PORT` environment variable to another port, and Bubble will listen on # that port instead. # # ### BUBBLE_TAG # By default, the Vagrant box will run the bleeding edge (`master` branch) of Bubble. # Set the `BUBBLE_TAG` environment variable to the name of a git branch or tag to check # out instead. # # Vagrant.configure("2") do |config| config.vm.box = "ubuntu/focal64" # You can access the launcher on port 8090 (or BUBBLE_PORT) but only on 127.0.0.1 # If you want to allow outside access to port 8090 (listen on 0.0.0.0), use the version below config.vm.network "forwarded_port", guest: 8090, host: ENV['BUBBLE_PORT'] || 8090, host_ip: "127.0.0.1" # Anyone who can reach port 8090 on this system will be able to access the launcher # config.vm.network "forwarded_port", guest: 8090, host: ENV['BUBBLE_PORT'] || 8090 config.vm.provision :shell do |s| s.inline = <<-SHELL apt-get update -y apt-get upgrade -y SHELL end config.vm.provision :shell do |s| s.env = { LETSENCRYPT_EMAIL: ENV['LETSENCRYPT_EMAIL'], BUBBLE_TAG: ENV['BUBBLE_TAG'] || 'master' } s.privileged = false s.inline = <<-SHELL # Get the code git clone https://git.bubblev.org/bubblev/bubble.git cd bubble && git fetch && git pull origin ${BUBBLE_TAG} # Initialize the system ./bin/first_time_ubuntu.sh # Clone and build all dependencies SKIP_BUBBLE_BUILD=1 ./bin/first_time_setup.sh # Build the bubble jar MVN_QUIET="" BUBBLE_PRODUCTION=1 mvn ${MVN_QUIET} -Pproduction clean package # Start the Local Launcher if LETSENCRYPT_EMAIL is defined if [[ -n \"${LETSENCRYPT_EMAIL}\" ]] ; then echo \"export LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}\" > bubble.env # ./bin/run.sh bubble.env fi SHELL end end