diff --git a/Vagrantfile b/Vagrantfile index 92d26d5f..181e3aec 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -17,22 +17,30 @@ Vagrant.configure("2") do |config| # Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine and only allow access # via 127.0.0.1 to disable public access + # dev node process config.vm.network "forwarded_port", guest: 3000, host: 3000, host_ip: "127.0.0.1" + # dev (node helper process) + config.vm.network "forwarded_port", guest: 3001, host: 3001, host_ip: "127.0.0.1" + # Postgres + config.vm.network "forwarded_port", guest: 5432, host: 6543, host_ip: "127.0.0.1" # Provider-specific configuration so you can fine-tune various # backing providers for Vagrant. These expose provider-specific options. - # Example for VirtualBox: - # - # config.vm.provider "virtualbox" do |vb| - # # Display the VirtualBox GUI when booting the machine - # vb.gui = true - # - # # Customize the amount of memory on the VM: - # vb.memory = "1024" - # end - # - # View the documentation for the provider you are using for more - # information on available options. + + # Using VirtualBox: + config.vm.provider :virtualbox do |vm| + # # Display the VirtualBox GUI when booting the machine + # vb.gui = true + + # # Customize the amount of memory on the VM: + # vb.memory = "1024" + + # Enable creating symlinks in shared folder + # On a Windows host, vagrant will need to run with permissions to 'Create Symlinks', either + # set for the current user in the Local Security Policy, or run from a shell with + # Administrative rights. + vm.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"] + end # Enable provisioning with a shell script. Additional provisioners such as # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the diff --git a/provision/vm_provision.sh b/provision/vm_provision.sh index ec28213d..4d6428ab 100644 --- a/provision/vm_provision.sh +++ b/provision/vm_provision.sh @@ -73,7 +73,7 @@ service postgresql start # Ensure en_US locale exists locale-gen en_US.UTF-8 # Database config to listen on network connection -sed -i "s/#\?listen_address.*/listen_addresses '*'/" /etc/postgresql/9.5/main/postgresql.conf +sed -i "s/#\?listen_address.*/listen_addresses '*'/" /etc/postgresql/10/main/postgresql.conf # Allow password connections from any IP (so includes host) echo "host all all all md5" >> /etc/postgresql/10/main/pg_hba.conf # Restart postgres to pick up config changes @@ -86,8 +86,14 @@ su postgres -c "psql -c \"SELECT 1 FROM pg_user WHERE usename = 'vagrant';\" " \ su postgres -c "psql -c \"SELECT 1 FROM pg_database WHERE datname = 'vagrant';\" " \ | grep -q 1 || su postgres -c "createdb -E UTF8 -T template0 --locale=en_US.utf8 -O vagrant vagrant" + +# Create extensions +su vagrant -c "psql -c \"create extension postgis;\" " +su vagrant -c "psql -c \"create extension pgcrypto;\" " +su vagrant -c "psql -c \"create extension pg_trgm;\" " + # Run all 'up' migrations to create tables, data types, indexes -su postgres -c "ls /vagrant/migrations/*.up.sql 2>/dev/null | while read -r migration; do psql < $migration; done;" +su vagrant -c "ls /vagrant/migrations/*.up.sql 2>/dev/null | while read -r migration; do psql < \$migration; done;" # @@ -115,7 +121,7 @@ chown -R vagrant:vagrant /home/vagrant/colouringlondon npm install -g npm@next # Local fixed install of node modules -cd /vagrant/app && npm ci +cd /vagrant/app && npm install #