blob: e7b5fd8f8df41fecf874fdefa26a6d22411e7d49 [file] [log] [blame]
Akron228cfa12018-10-01 16:14:41 +02001# -*- mode: ruby -*-
2# vi: set ft=ruby :
3
Akrona7b661d2018-10-09 19:13:45 +02004# The "2" in Vagrant.configure configures the configuration version.
5# Please don't change it unless you know what you're doing.
Akron228cfa12018-10-01 16:14:41 +02006Vagrant.configure(2) do |config|
Akroncc10f9a2018-10-09 19:57:27 +02007
Akron228cfa12018-10-01 16:14:41 +02008 # https://docs.vagrantup.com.
9
Akrona7b661d2018-10-09 19:13:45 +020010 # More at https://vagrantcloud.com/search.
Akronb66814e2018-10-17 16:51:11 +020011 config.vm.box = "ubuntu/xenial64"
Akron228cfa12018-10-01 16:14:41 +020012
Akron3c9cb422018-10-19 13:21:39 +020013 # Memory size is set for installation of Krill
Akrona7b661d2018-10-09 19:13:45 +020014 config.vm.provider "virtualbox" do |vb|
15 vb.customize ["modifyvm", :id, "--memory", "1024"]
16 end
Akronef285652018-10-10 15:50:29 +020017
18 config.vm.network "forwarded_port", guest: 5555, host: 5555
19 config.vm.network "forwarded_port", guest: 5556, host: 5556
Akrona7b661d2018-10-09 19:13:45 +020020
21 config.vm.box_download_insecure = true
22
23 # Provisioning of KorAP with a Shell script
24 config.vm.provision "shell", privileged: false, inline: <<-SHELL
Akron228cfa12018-10-01 16:14:41 +020025
Akrona7b661d2018-10-09 19:13:45 +020026 ###############################################
27 echo "Install Packages"
Akron228cfa12018-10-01 16:14:41 +020028
Akrona7b661d2018-10-09 19:13:45 +020029 # Add repository for OpenJDK
30 sudo add-apt-repository ppa:openjdk-r/ppa
Akron228cfa12018-10-01 16:14:41 +020031
Akrona7b661d2018-10-09 19:13:45 +020032 sudo apt-get update
Akron228cfa12018-10-01 16:14:41 +020033
Akrona7b661d2018-10-09 19:13:45 +020034 echo "Install dependencies"
35 sudo apt-get install -qq git
36 sudo apt-get install -qq openjdk-8-jdk
37 sudo apt-get install -qq perlbrew
38 sudo apt-get install -qq emacs
39 sudo apt-get install -qq maven
Akroncc10f9a2018-10-09 19:57:27 +020040 sudo apt-get install -qq nodejs
41 sudo apt-get install -qq npm
42 sudo apt-get install -qq ruby
Akron228cfa12018-10-01 16:14:41 +020043
Akronb9406112018-11-15 19:34:32 +010044
45 ###############################################
46 echo "Stop the server"
47
48 sudo systemctl stop kalamar
49
50 # Kill Kustvakt before restarting
51 if [ -f /home/vagrant/Built/kustvakt.pid ]
52 then
53 echo 'Shutdown Kustvakt server'
54 sudo kill -9 `cat /home/vagrant/Built/kustvakt.pid`
55 fi
56
Akron4d0c9ef2018-11-06 16:49:35 +010057 sudo systemctl disable kustvakt
58 sudo systemctl disable kalamar
59
Akronb9406112018-11-15 19:34:32 +010060
Akrona7b661d2018-10-09 19:13:45 +020061 ###############################################
Akrone0486172018-12-06 16:44:32 +010062 echo "Configure Git"
63 cd ~/
64 git config --global user.email "korap+vagrant@ids-mannheim.de"
65 git config --global user.name "Vagrant"
66 sudo chown vagrant:vagrant .config
67
68 ###############################################
Akrona7b661d2018-10-09 19:13:45 +020069 echo "Install Koral"
70 cd ~/
71 if [ -e ./Koral ] && [ -d ./Koral ]
72 then
73 cd Koral
Akronb9406112018-11-15 19:34:32 +010074 git checkout master
75 git fetch --tags
Akrona7b661d2018-10-09 19:13:45 +020076 else
77 git clone https://github.com/KorAP/Koral.git Koral
78 cd Koral
79 fi
Akronb9406112018-11-15 19:34:32 +010080
81 # Checkout a specific version
Akronc43370f2018-12-13 16:10:18 +010082 git checkout tags/v0.32
Akronb9406112018-11-15 19:34:32 +010083
Akrona7b661d2018-10-09 19:13:45 +020084 mvn clean install -Dhttps.protocols=TLSv1.2
85
86
87 ###############################################
88 echo "Install Krill"
89 cd ~/
90 if [ -e ./Krill ] && [ -d ./Krill ]
91 then
92 cd Krill
Akronb9406112018-11-15 19:34:32 +010093 git checkout master
94 git fetch --tags
Akrona7b661d2018-10-09 19:13:45 +020095 else
96 git clone https://github.com/KorAP/Krill.git Krill
97 cd Krill
98 fi
Akronb9406112018-11-15 19:34:32 +010099
100 # Checkout a specific version
Akrone0486172018-12-06 16:44:32 +0100101 git checkout tags/v0.58.2
Akronb9406112018-11-15 19:34:32 +0100102
Akrona7b661d2018-10-09 19:13:45 +0200103 mvn clean install
104
105
106 ###############################################
107 echo "Install Kustvakt"
108 cd ~/
109 if [ -e ./Kustvakt ] && [ -d ./Kustvakt ]
110 then
111 cd Kustvakt
Akronb9406112018-11-15 19:34:32 +0100112 git checkout master
113 git fetch --tags
Akrona7b661d2018-10-09 19:13:45 +0200114 else
115 git clone https://github.com/KorAP/Kustvakt.git Kustvakt
116 cd Kustvakt
117 fi
118
Akronb9406112018-11-15 19:34:32 +0100119 # Checkout a specific version
Akrone0486172018-12-06 16:44:32 +0100120 git checkout tags/v0.61.4-release
Akronb9406112018-11-15 19:34:32 +0100121
Akrona7b661d2018-10-09 19:13:45 +0200122 cd ~/Kustvakt/core
123 mvn clean install
124
125 cd ~/Kustvakt/lite
126 mvn clean package
127
128
129 ###############################################
Akroncc10f9a2018-10-09 19:57:27 +0200130 echo "Install NodeJS"
131 # This is required unfortunately
Akronef285652018-10-10 15:50:29 +0200132 if [ ! -e ~/tmp ]; then
133 mkdir ~/tmp
134 fi
Akroncc10f9a2018-10-09 19:57:27 +0200135 npm set ca null
Akronef285652018-10-10 15:50:29 +0200136 sudo npm install -g n
137 sudo n stable
Akroncc10f9a2018-10-09 19:57:27 +0200138 sudo npm install -g sass
139 sudo npm install -g grunt-cli
140 sudo npm install grunt
141
142
143 ###############################################
Akrona7b661d2018-10-09 19:13:45 +0200144 echo "Install Perlbrew + CPANminus"
145 cd ~/
146
147 perlbrew init
148 echo "source ~/perl5/perlbrew/etc/bashrc" >> ~/.bashrc
149
150 source ~/perl5/perlbrew/etc/bashrc
151
Akrona7b661d2018-10-09 19:13:45 +0200152 perlbrew install -q perl-5.24.0
153
154 perlbrew switch perl-5.24.0
155 perlbrew install-cpanm
156
157
158 ###############################################
159 echo "Install Kalamar server-side dependencies"
Akrona7b661d2018-10-09 19:13:45 +0200160 cpanm git://github.com/Akron/Mojolicious-Plugin-Localize.git
161 cpanm git://github.com/Akron/Mojolicious-Plugin-TagHelpers-ContentBlock.git
162
163
164 ###############################################
165 echo "Install Kalamar"
Akroncc10f9a2018-10-09 19:57:27 +0200166 cd ~/
Akrona7b661d2018-10-09 19:13:45 +0200167 if [ -e ./Kalamar ] && [ -d ./Kalamar ]
168 then
169 cd Kalamar
Akronb9406112018-11-15 19:34:32 +0100170 git checkout master
171 git fetch --tags
Akrona7b661d2018-10-09 19:13:45 +0200172 else
173 git clone git://github.com/KorAP/Kalamar.git Kalamar
174 cd Kalamar
175 fi
176
Akronb9406112018-11-15 19:34:32 +0100177 # Checkout a specific version
Akrone0486172018-12-06 16:44:32 +0100178 git checkout tags/v0.31
Akronb9406112018-11-15 19:34:32 +0100179
Akrona7b661d2018-10-09 19:13:45 +0200180 cpanm --installdeps .
181
182 ###############################################
Akron92ff3592019-01-30 20:03:16 +0100183 # echo "Configure Kalamar for asset building"
184
185 echo "KorAP.Conf = KorAP.Conf || {};\
186 require([\
187 \'hint/foundries/base\',\
188 \'hint/foundries/corenlp\',\
189 \'hint/foundries/dereko\',\
190 \'hint/foundries/malt\',\
191 \'hint/foundries/marmot\',\
192 \'hint/foundries/opennlp\',\
193 \'hint/foundries/treetagger\'\
194 ]);" > kalamar.conf.js
195
196
197 ###############################################
Akrona7b661d2018-10-09 19:13:45 +0200198 # echo "Install Kalamar client-side dependencies"
Akroncc10f9a2018-10-09 19:57:27 +0200199 npm install
200 grunt
Akrona7b661d2018-10-09 19:13:45 +0200201
Akronef285652018-10-10 15:50:29 +0200202
203 ###############################################
204 echo "Prepare Kustvakt"
205 cd ~/
206
207 if [ ! -e ./Built ]; then
208 mkdir Built
209 fi
210
211 # Copy the jar file to the built folder
212 # This will do so for all files - but the last one will be kept
213 find ~/Kustvakt/lite/target/Kustvakt-lite-*.jar -exec mv {} ~/Built/Kustvakt-lite.jar ';'
214
215 # Rewrite the configuration file
216 sed -e 's#^krill\.indexDir\s*=\s*.*$#krill.indexDir=../Kustvakt/sample-index#gm' \
217 -e 's#^server\.port\s*=\s*.*$#server.port=5556#gm' \
218 ~/Kustvakt/lite/src/main/resources/kustvakt-lite.conf \
219 > ~/Built/kustvakt-lite.conf
220
Akronef285652018-10-10 15:50:29 +0200221
Akronef285652018-10-10 15:50:29 +0200222 ###############################################
Akron4d0c9ef2018-11-06 16:49:35 +0100223 echo "Configure Kalamar"
Akronef285652018-10-10 15:50:29 +0200224 cd ~/
225 cd Kalamar
226
227 # Add new configuration
228 echo "{hypnotoad=>{listen=>['http://*:5555']}}" \
229 > kalamar.vagrant.conf
230
231 echo "not really secret" > kalamar.secret
232
Akronb66814e2018-10-17 16:51:11 +0200233 ###############################################
234 echo "Establish systemd"
235
Akronb9406112018-11-15 19:34:32 +0100236 echo "[Unit]
Akronb66814e2018-10-17 16:51:11 +0200237Description=Kustvakt
238After=network.target
239
240[Service]
241User=root
242Type=forking
Akronb9406112018-11-15 19:34:32 +0100243ExecStart=/bin/su - vagrant -c 'cd /home/vagrant/Built ; nohup java -jar Kustvakt-lite.jar & echo" '$!' " > kustvakt.pid'
Akronb66814e2018-10-17 16:51:11 +0200244PIDFile=/home/vagrant/Built/kustvakt.pid
245KillMode=process
246
247[Install]
Akronb9406112018-11-15 19:34:32 +0100248WantedBy=multi-user.target" | sudo tee /lib/systemd/system/kustvakt.service
Akronb66814e2018-10-17 16:51:11 +0200249
250 echo "[Unit]
251Description=Kalamar
252After=network.target
253
254[Service]
255User=root
256Type=forking
257PIDFile=/home/vagrant/Kalamar/script/hypnotoad.pid
258ExecStart=/bin/su - vagrant -c 'MOJO_MODE=vagrant KALAMAR_API=\"http://localhost:5556/api/\" /home/vagrant/perl5/perlbrew/perls/perl-5.24.0/bin/hypnotoad /home/vagrant/Kalamar/script/kalamar'
259ExecStop=/bin/su - vagrant -c 'MOJO_MODE=vagrant /home/vagrant/perl5/perlbrew/perls/perl-5.24.0/bin/hypnotoad -s /home/vagrant/Kalamar/script/kalamar'
260ExecReload=/bin/su - vagrant -c 'MOJO_MODE=vagrant KALAMAR_API=\"http://localhost:5556/api/\" /home/vagrant/perl5/perlbrew/perls/perl-5.24.0/bin/hypnotoad /home/vagrant/Kalamar/script/kalamar'
261killMode=process
262
263[Install]
264WantedBy=multi-user.target" | sudo tee /lib/systemd/system/kalamar.service
265
266 sudo systemctl enable kustvakt
267 sudo systemctl enable kalamar
268
Akron4d0c9ef2018-11-06 16:49:35 +0100269 # echo "Start Kustvakt"
270 sudo systemctl start kustvakt
271
272 # echo "Start Kalamar"
273 sudo systemctl start kalamar
274
Akrona7b661d2018-10-09 19:13:45 +0200275 SHELL
Akron228cfa12018-10-01 16:14:41 +0200276end