From f922cd5dafa02a465a76464a3fe8d7552ae3bb59 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Mon, 4 Dec 2017 21:48:02 +0100 Subject: Reboot vagrant integration. Use FreeBSD 10.3, and a setup more similar to what we have on the production server. Just installing basic dependensies for now. --- Vagrantfile | 6 +++--- vagrant/bootstrap.sh | 19 ++++++++----------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index b685bb5..5da39ab 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -2,8 +2,8 @@ # vi: set ft=ruby : Vagrant.configure("2") do |config| - config.vm.box = "vagrant-archlinux-2013-8" - config.vm.box_url = "https://googledrive.com/host/0B_BLFE4aPn5zUVpyaHdLanVnMTg/vagrant-archlinux-2013-8.box" - config.vm.provision :shell, :path => "vagrant/bootstrap.sh" + config.vm.box = "bento/freebsd-10.3" + config.vm.guest = :freebsd config.vm.network :forwarded_port, host: 4567, guest: 80 + config.vm.provision :shell, :path => "vagrant/bootstrap.sh" end diff --git a/vagrant/bootstrap.sh b/vagrant/bootstrap.sh index 7395aa7..c06b929 100644 --- a/vagrant/bootstrap.sh +++ b/vagrant/bootstrap.sh @@ -1,12 +1,9 @@ -#!/usr/bin/env bash +#!/bin/sh +pkg upgrade -y -q -f +pkg install -y -q ruby rubygem-bundler postgresql93-server postgresql93-client nginx -pacman -Suyq --noconfirm -pacman -Sq ruby gcc make sqlite3 nodejs imagemagick --noconfirm -echo "export GEM_HOME=`gem env gemdir`" > /etc/profile.d/rubygems.sh -source /etc/profile.d/rubygems.sh -gem install bundler --no-rdoc --no-ri --no-user-install -cd /vagrant -./script/setup -cp vagrant/rails.service /usr/lib/systemd/system -systemctl enable rails -systemctl start rails +echo 'postgresql_enable="YES"' >> /etc/rc.conf +echo 'nginx_enable="YES"' >> /etc/rc.conf + +service postgresql initdb +service -R -- cgit v1.2.3 From c50f69cf56055dc40c9070f3af2008979dead830 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Mon, 4 Dec 2017 23:10:44 +0100 Subject: The vagrant box needs git. --- vagrant/bootstrap.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vagrant/bootstrap.sh b/vagrant/bootstrap.sh index c06b929..81fd145 100644 --- a/vagrant/bootstrap.sh +++ b/vagrant/bootstrap.sh @@ -1,6 +1,6 @@ #!/bin/sh pkg upgrade -y -q -f -pkg install -y -q ruby rubygem-bundler postgresql93-server postgresql93-client nginx +pkg install -y -q ruby rubygem-bundler postgresql93-server postgresql93-client nginx git echo 'postgresql_enable="YES"' >> /etc/rc.conf echo 'nginx_enable="YES"' >> /etc/rc.conf -- cgit v1.2.3 From 11732909e191eabef8e9f11a86d32be3ad956e5b Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Mon, 4 Dec 2017 23:11:32 +0100 Subject: Setup rsynced folder mirroring the source dir into the vagrant box. --- Vagrantfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Vagrantfile b/Vagrantfile index 5da39ab..21fd8f7 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -1,9 +1,11 @@ # -*- mode: ruby -*- # vi: set ft=ruby : +# :mode=ruby: Vagrant.configure("2") do |config| config.vm.box = "bento/freebsd-10.3" config.vm.guest = :freebsd config.vm.network :forwarded_port, host: 4567, guest: 80 config.vm.provision :shell, :path => "vagrant/bootstrap.sh" + config.vm.synced_folder ".", "/vagrant", type: "rsync", rsync__exclude: %w[.git/ vendor/bundle/] end -- cgit v1.2.3 From c061c8a90c549f769065a68c27d70a198288ffe7 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sat, 9 Dec 2017 14:30:00 +0100 Subject: Exclude vendor/bundle from version control. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index d59442c..5d63604 100644 --- a/.gitignore +++ b/.gitignore @@ -105,3 +105,4 @@ config/initializers/refinery/core.rb .vagrant .path_progress .capistrano/* +vendor/bundle -- cgit v1.2.3 From d371e234be01451f983c333bc8c82862141f2ef4 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sun, 10 Dec 2017 16:13:07 +0100 Subject: Update version of capistrano-postgresql used. Not all that important for the vagrant stuff, but since the upstream references had changed, it choked on the gt fetch. --- Gemfile | 5 +++-- Gemfile.lock | 16 ++++++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Gemfile b/Gemfile index a70ed8e..9f8646f 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,4 @@ +# :jedit:mode=ruby: source 'https://rubygems.org' gem 'rails', '~> 3.2' @@ -24,8 +25,8 @@ group :deployment do gem 'capistrano-bundler' gem 'capistrano-rails' gem 'capistrano-postgresql', - :git => 'https://github.com/snake66/capistrano-postgresql.git', - :branch => 'make-sudo-optional' #'~>4.0' + :git => 'https://github.com/capistrano-plugins/capistrano-postgresql.git', + :branch => 'feature/psql_without_sudo' #'~>4.0' end # Gems used only for assets and not required diff --git a/Gemfile.lock b/Gemfile.lock index 4f6fb5d..a385121 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -6,6 +6,14 @@ GIT refinerycms-pc_banners (2.0.2) refinerycms-pages (~> 2.1.0) +GIT + remote: https://github.com/capistrano-plugins/capistrano-postgresql.git + revision: fcdd992993c146e382bdd86ec6e31cf97b5db387 + branch: feature/psql_without_sudo + specs: + capistrano-postgresql (4.6.0) + capistrano (>= 3.0) + GIT remote: https://github.com/refinery/refinerycms-acts-as-indexed.git revision: 47cd0b6427a1ee7c513124c7a56c7cb5f93716f6 @@ -29,14 +37,6 @@ GIT refinerycms-settings (~> 2.1.0) seo_meta (~> 1.4.0) -GIT - remote: https://github.com/snake66/capistrano-postgresql.git - revision: a51bd6bdcb8f14a844cacff6c18d6942adea8c23 - branch: make-sudo-optional - specs: - capistrano-postgresql (4.2.1) - capistrano (>= 3.0) - GEM remote: https://rubygems.org/ specs: -- cgit v1.2.3 From d70626928b34793489dfcacb5129f4b831c1854e Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sun, 10 Dec 2017 16:15:02 +0100 Subject: vagrant: Install sqlite3, drop nginx. We have sqlite3 as a development dependency for some reason. Don't really need nginx for the dev setup. --- vagrant/bootstrap.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/vagrant/bootstrap.sh b/vagrant/bootstrap.sh index 81fd145..2ff62a6 100644 --- a/vagrant/bootstrap.sh +++ b/vagrant/bootstrap.sh @@ -1,9 +1,8 @@ #!/bin/sh pkg upgrade -y -q -f -pkg install -y -q ruby rubygem-bundler postgresql93-server postgresql93-client nginx git +pkg install -y -q ruby rubygem-bundler postgresql93-server postgresql93-client git sqlite3 echo 'postgresql_enable="YES"' >> /etc/rc.conf -echo 'nginx_enable="YES"' >> /etc/rc.conf service postgresql initdb service -R -- cgit v1.2.3 From c94a41bd146c92c4f1a7487671a7b08a5454012a Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sun, 10 Dec 2017 16:25:44 +0100 Subject: vagrant: Forward local port 3000 to the vagrant box. --- Vagrantfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Vagrantfile b/Vagrantfile index 21fd8f7..d24ce9d 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -5,7 +5,7 @@ Vagrant.configure("2") do |config| config.vm.box = "bento/freebsd-10.3" config.vm.guest = :freebsd - config.vm.network :forwarded_port, host: 4567, guest: 80 + config.vm.network :forwarded_port, host: 3000, guest: 3000 config.vm.provision :shell, :path => "vagrant/bootstrap.sh" config.vm.synced_folder ".", "/vagrant", type: "rsync", rsync__exclude: %w[.git/ vendor/bundle/] end -- cgit v1.2.3 From 515b798b48c799df74f4132a7837faeaba141a8a Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Mon, 11 Dec 2017 15:33:06 +0100 Subject: Update readme for vagrant based setup. --- README.md | 83 +++++++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 59 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 1eb0097..851754d 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,60 @@ -Installasjonsveiledning -======================= - -Denne webapplikasjonen er laget ved hjelp av [RefineryCMS][1] som igjen er -bygget på [Ruby on Rails][2]. Litt kjenskap til Ruby on Rails er alltids greit å -ha, men for mange oppgaver kan man fint klare seg uten. - -Komme i gang ------------- -For å komme i gang trenger du en fungerende versjon av [Ruby][3] (helst versjon -1.9.3 eller bedre) og [Bundler][4] installert. I tillegg trenger du en -JavaScript-motor. [NodeJS][5] anbefales, da den ikke krever noe annet oppsett -enn å være installert. - -Er alt dette på plass kan du configurere utviklingsmiljøet ditt ved å kjøre -`script/setup`. Det vil installere alle avhengigheter applikasjonen har og sette -opp databasen som applikasjonen bruker. Dette er i utgangspunktet en tom -database med kun noen veldig få eksempelsider lagt inn. - -[1]: http://www.refinerycms.com -[2]: http://www.rubyonrails.org -[3]: http://www.ruby-lang.org -[4]: http://www.bundler.org -[5]: http://www.node.js +# Installasjonsveiledning +Denne webapplikasjonen er laget ved hjelp av [RefineryCMS][1] som igjen er bygget på [Ruby on Rails][2]. Litt kjenskap til Ruby on Rails er alltids greit å ha, men for mange oppgaver kan man fint klare seg uten. + +## Oppsett av utviklermiljø + +Vi bruker [Vagrant] for å gjøre det enkelt å sette opp et utviklermiljø som er mest mulig likt det som vi finner på serveren vi kjører på. + +Du trenger: + +* [VirtualBox] +* [Vagrant] +* [Git] +* En teksteditor. + +Sørg for at disse programmene er installert på din maskin. + +### Kopier koden: + + % git clone https://volse.anduin.net/gitrepos/hmnoweb.git + +### Last ned og start utviklermiljøet + + % cd hmnoweb + % vagrant up + +Dette vil ta noe tid første gang. Det laster ned en virtuell maskin og installerer alt du trenger på den. Når denne prosessen er ferdig kan du åpne en terminal for den virtuelle maskinen: + + % vagrant ssh + +Du vil finne kildekoden til programmet i `/vagrant`-katalogen. Du kan gå dit og sette opp selve applikasjonen slik: + + % cd /vagrant + % script/setup + +Du kan så starte serveren slik: + + % bundle exec rails server + +Du skal nå få opp en rimelig tom utgave av heavymetal.no dersom du går til `http://localhost:3000` i nettleseren din. + +### Logge inn og administrere sidene + +Du logger inn og kan administrere din lokale kopi av heavymetal.no ved å gå til `http://localhost:3000/refinery`. I utviklermodus har vi laget en eksempelbruker du kan bruke med brukernavn `admin` og passord `test`. + +### Synkronisere endringer + +Når du har gjort endringer i koden, må du synkronisere disse med vagrant-miljøet. Dette gjør du slik: + + % vagrant rsync + +Evt kan du kjøre `vagrant rsync-auto`, som vil synkronisere filene så snart de blir endret. Kjører du denne kommandoen i en egen terminal skal filene synkroniseres når du lagrer dem i teksteditoren din. Det gjør det enkelt å teste ut endringer ganske kjapt. + +De fleste endringer krever ikke at du stopper og starter serveren på nytt. Dersom du gjør endringer i konfigirasjonen av applikasjonen (nærmest hva som helst under `./config`-katalogen i kodetreet) så må du starte serveren på nytt. Det gjør du enklest ved å gå til terminalen hvor du har vagrant-miljøet ditt kjørende, trykk `CTRL-C` for å stoppe serveren, og så kjør `bundle exec rails server` på nytt. Vanligvis finner du linjen raskest ved å trykke pil opp på tastaturet. + +[1]: https://www.refinerycms.com +[2]: https://www.rubyonrails.org +[Vagrant]: https://www.vagrantup.com/ +[VirtualBox]: https://www.virtualbox.org/ +[Git]: https://git-scm.com/ -- cgit v1.2.3