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\app\or\workspace\folderset 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/trusty64(Ubuntu 14.04 64bit - useubuntu/trusty32for x86)- Edit the Vagrantfile and add the following inside the
Vagrant.configure(...)block:config.vm.synced_folder '.', '/home/vagrant/<your-app-or-workspace-name>' config.vm.network :public_network config.vm.network :forwarded_port, guest: 3000, host: 3000 config.vm.provider "virtualbox" do |vb| vb.gui = false vb.memory = 2048 vb.cpus = 2 vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"] end vagrant upvagrant ssh
Now that you are inside the VM command-line:
sudo apt-get install curl gitcurl 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 ~/<your-app-or-workspace-folder> to make their code available to the Windows host.
cd ~/<your-app-or-workspace-folder>meteor create <your-app-name>(if doesn't exist)cd <your-app-name>mkdir -p ~/mock/<your-app-name>mv .meteor ~/mock/<your-app-name>mkdir .meteorsudo mount --bind /home/vagrant/mock/<your-app-name>/.meteor .meteormeteor(finally!)
Go to http://localhost:3000 in Windows browser!
- Make sure you do version control (git, svn, etc.) INSIDE THE VM, so the software can follow the mounted
.meteordirectory. - If your version controll tool find changes in all files for
mode changeyou can dogit config core.filemode falseto ignore it. - You can automate the mount the
.meteordirectory (step7above) by adding to~/.bashrcthis line:sudo mount --bind /home/vagrant/mock/<your-app-name>/.meteor <your-app-path>/.meteor. Otherwise you will have to remount the.meteordirectory on every vagrant restart. Mount the directory before you do any version control! - To halt a vagrant VM:
vagrant halt - To backup or snapshot
vagrant plugin install vagrant-vbox-snapshot(documentation), then you can dovagrant snapshot take <your-snapshot-name>(better after avagrant halt) - To destroy a VM:
vagrant destroy(WARNING! you will lose all your previous configuration) - You might want to run
sudo apt-get updatein the VM to install the latest Ubuntu security updates
Original tutorial by @gabrielsapo