# frozen_string_literal: true uptimelink_root = ENV.fetch('UPTIMELINK_ROOT', File.expand_path('..', __dir__)) controller_ip = ENV.fetch('UPTIMELINK_VAGRANT_CONTROLLER_IP', '192.168.56.10') runner_ip = ENV.fetch('UPTIMELINK_VAGRANT_RUNNER_IP', '192.168.56.11') controller_port = ENV.fetch('UPTIMELINK_VAGRANT_CONTROLLER_PORT', '8080') runner_id = ENV.fetch('UPTIMELINK_VAGRANT_RUNNER_ID', 'vagrant-runner-1') runner_token = ENV.fetch('UPTIMELINK_VAGRANT_RUNNER_TOKEN', 'vagrant-token') target_port = ENV.fetch('UPTIMELINK_VAGRANT_TARGET_PORT', '18081') Vagrant.configure('2') do |config| config.vm.box = ENV.fetch('UPTIMELINK_VAGRANT_BOX', 'bento/ubuntu-24.04') config.vm.synced_folder '.', '/vagrant', disabled: true config.vm.synced_folder uptimelink_root, '/uptime.link', type: 'rsync', owner: 'vagrant', group: 'vagrant', rsync__auto: false, rsync__exclude: [ '.git/', '.nogit/', '.vagrant/', 'node_modules/', '**/.git/', '**/.nogit/', '**/.vagrant/', '**/node_modules/', '**/.cache/', '**/.pnpm-store/', '**/dist/', '**/dist_*/', ] config.vm.provider 'virtualbox' do |vb| vb.cpus = ENV.fetch('UPTIMELINK_VAGRANT_CPUS', '2').to_i vb.memory = ENV.fetch('UPTIMELINK_VAGRANT_MEMORY', '2048').to_i end config.vm.provider 'libvirt' do |lv| lv.cpus = ENV.fetch('UPTIMELINK_VAGRANT_CPUS', '2').to_i lv.memory = ENV.fetch('UPTIMELINK_VAGRANT_MEMORY', '2048').to_i end config.vm.define 'controller', primary: true do |controller| controller.vm.hostname = 'uptime-controller' controller.vm.network 'private_network', ip: controller_ip controller.vm.provision 'shell', path: 'scripts/provision-common.sh' end config.vm.define 'runner' do |runner| runner.vm.hostname = 'uptime-runner' runner.vm.network 'private_network', ip: runner_ip runner.vm.provision 'shell', path: 'scripts/provision-common.sh' runner.vm.provision 'shell', path: 'scripts/provision-runner.sh', env: { 'UPTIMELINK_CONTROLLER_URL' => "http://#{controller_ip}:#{controller_port}", 'UPTIMELINK_RUNNER_ID' => runner_id, 'UPTIMELINK_RUNNER_TOKEN' => runner_token, 'UPTIMELINK_TARGET_PORT' => target_port, } end end