Before doing anything else, install those:
- VirtualBox: https://www.virtualbox.org/wiki/Downloads
- Vagrant: https://www.vagrantup.com/downloads.html
- git: http://git-scm.com/download/win
Open cmd: Start > type cmd > ENTER
cd C:\path\to\your\vagrant+meteor\project\folder
mkdir shared
set PATH=%PATH%;C:\Program Files (x86)\Git\bin
(Append git binaries to path so vagrant can run ssh - you should add git to your PATH environmental variable permanently so you don't have to run this everytime)vagrant init ubuntu/trusty32
(Ubuntu 14.04 32bit - useubuntu/trusty64
for x64)- Edit the Vagrantfile and add the following inside the
Vagrant.configure(...)
block:config.vm.synced_folder './shared', '/home/vagrant/shared' config.vm.network :forwarded_port, guest: 3000, host: 3000 config.vm.provider "virtualbox" do |v| v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"] end
vagrant up
vagrant ssh
Now that you are inside the VM command-line:
sudo apt-get install curl git
curl https://install.meteor.com | sh
This also applies when you clone an app from git. The idea is to move the .meteor
folder out of the shared directory and link it back in. MongoDB cannot run in the shared folder because of permission problems. Create all apps in the ~/shared
folder to make their code available to the Windows host.
- (
cd ~/shared
) meteor create --example leaderboard
cd leaderboard
mkdir -p ~/mock/leaderboard
mv .meteor ~/mock/leaderboard
mkdir .meteor
sudo mount --bind /home/vagrant/mock/leaderboard/.meteor .meteor
meteor
(finally!)
Go to http://localhost:3000
in Windows browser!
- Make sure you do version control INSIDE THE VM, so the software can follow the mounted
.meteor
directory. - You will have to remount (step
7
above) the.meteor
directory on every vagrant restart. Mount the directory before you do any version control! - To halt a vagrant VM:
vagrant halt
- To destroy a VM:
vagrant destroy
- You might want to run
sudo apt-get update
in the VM to install the latest Ubuntu security updates
Original tutorial by @gabrielsapo
Thanks for this.