# frozen_string_literal: true # -*- mode: ruby -*- # vi: set ft=ruby : # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! VAGRANTFILE_API_VERSION = '2' Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = 'ubuntu/bionic64' config.vm.define 'fabmanager-devbox' # Forward ports so services running in the virtual machine can be accessed by # the host [ 3000, # rails/puma 9200, # elasticsearch 5432, # postgres 1080, # mailcatcher web ui 4040 # ngrok web ui ].each do |port| config.vm.network 'forwarded_port', guest: port, host: port end # nginx server config.vm.network 'forwarded_port', guest: 80, host: 8080 # Configuration to allocate resources fro the virtual machine config.vm.provider 'virtualbox' do |vb| vb.customize ['modifyvm', :id, '--memory', '2048'] end # If you are using Windows o Linux with an encrypted volume stick with the # configuration below for file syncronization config.vm.synced_folder '.', '/vagrant', type: 'virtualbox' # Copy default configuration files for the database connection and the Rails application config.vm.provision 'file', source: './config/database.yml.default', destination: '/vagrant/config/database.yml' config.vm.provision 'file', source: './env.example', destination: '/vagrant/.env' # Copy default configuration files to allow reviewing the Docker Compose integration config.vm.provision 'file', source: './docker/development/docker-compose.yml', destination: '/home/vagrant/docker-compose.yml' config.vm.provision 'file', source: './setup/env.example', destination: '/home/vagrant/config/env' config.vm.provision 'file', source: './setup/nginx.conf.example', destination: '/home/vagrant/config/nginx/fabmanager.conf' config.vm.provision 'file', source: './setup/elasticsearch.yml', destination: '/home/vagrant/elasticsearch/config/elasticsearch.yml' config.vm.provision 'file', source: './setup/log4j2.properties', destination: '/home/vagrant/elasticsearch/config/log4j2.properties' ## Provision software dependencies config.vm.provision 'shell', privileged: false, run: 'once', path: 'provision/zsh_setup.sh' config.vm.provision 'shell', privileged: false, run: 'once', path: 'provision/box_setup.zsh', env: { 'LC_ALL' => 'en_US.UTF-8', 'LANG' => 'en_US.UTF-8', 'LANGUAGE' => 'en_US.UTF-8' } config.vm.provision 'shell', privileged: true, run: 'once', path: 'provision/box_tuning.zsh' end