Vagrantfile — это настроечный файл, руководствуясь которым Vagrant создаёт и настраивает конкретную виртуальную машину.
Дистрибутив Discouse содержит Vagrantfile в корневой папке.
Стандартный Vagrantfile для Discourse крайне неоптимален для Windows: если Вы будете использовать его, то страницы Discourse будут формироваться минутами.
Я вместо стандартного использую следующий Varantfile:
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Скрипт для настройки виртуальной машины для Discourse в среде Windows.
# Инструкция по установке Discourse на Windows: http://discourse-forum.ru/t/topic/54
Vagrant.configure("2") do |config|
config.vm.box = 'discourse/discourse-1.3.0'
# Сначала пытаемся загрузить контейнер Discourse из локального кэша:
# http://discourse-forum.ru/t/topic/87
config.vm.box_url = ['file:///c:/tools/vagrant/boxes/discourse-1.3.0.box', 'http://discourse-vms.s3.amazonaws.com/discourse-1.3.0.box']
# Зачем нам нужна частная сеть: http://discourse-forum.ru/t/topic/86
config.vm.network :private_network, type: "dhcp"
# Разрешаем гостевой операционной системе использовать ключи SSH из Windows.
config.ssh.forward_agent = true
config.vm.provider :virtualbox do |v|
# Даём виртуальной машине короткое, понятное и уникальное имя,
# чтобы виртуальной машиной можно было управлять посредством VBoxManage.
v.name = "discourse_forum_ru"
# Выделяю для Discourse 5000 Мб оперативной памяти.
# Поставьте своё значение в соответствии с возможностями Вашего компьютера.
v.customize ["modifyvm", :id, "--memory", [ENV['DISCOURSE_VM_MEM'].to_i, 5000].max]
# Укажите вместо «4» количество ядер Вашего процессора.
v.customize ["modifyvm", :id, "--cpus", 4]
v.customize ["modifyvm", :id, "--ioapic", "on"]
# This setting makes it so that network access from inside the vagrant guest
# is able to resolve DNS using the hosts VPN connection.
v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
# Опция «:auto_correct => true» говорит Vagrant автоматически скорректировать порт
# в том случае, если заданный порт уже занят.
config.vm.network :forwarded_port, guest: 3000, host: 4000, :auto_correct => true
# Используется для программы MailCatcher: http://discourse-forum.ru/t/topic/106
config.vm.network :forwarded_port, guest: 1080, host: 4080, :auto_correct => true
config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", type: "nfs"
# Для отладки плагина vagrant-winnfsd: https://github.com/GM-Alex/vagrant-winnfsd
config.winnfsd.logging = "on"
end