├── .gitignore
├── LICENSE
├── README.md
├── Vagrantfile
├── roles
└── kohadevbox
│ ├── handlers
│ └── main.yml
│ ├── meta
│ └── main.yml
│ ├── tasks
│ ├── apache.yml
│ ├── database.yml
│ ├── elasticsearch.yml
│ ├── environment.yml
│ ├── gitbz.yml
│ ├── gitify.yml
│ ├── koha-debian-specific.yml
│ ├── koha-instance.yml
│ ├── koha-src.yml
│ ├── koha.yml
│ ├── kohadocs-src.yml
│ ├── less.yml
│ ├── main.yml
│ ├── misc4dev.yml
│ ├── plack.yml
│ ├── qatools.yml
│ ├── releasetools.yml
│ ├── remote-debugger.yml
│ ├── sample_data.yml
│ ├── selenium.yml
│ └── tools.yml
│ └── templates
│ ├── apt_conf_koha.j2
│ ├── bash_aliases.j2
│ ├── bashrc.j2
│ ├── gitconfig.j2
│ ├── instance_bashrc.j2
│ ├── koha-conf-site.xml.in.j2
│ ├── koha-sites.conf.j2
│ ├── koha_passwd.j2
│ ├── my.cnf.j2
│ ├── ports.conf.j2
│ └── vimrc.local.j2
├── site.yml
└── vars
├── defaults.yml
└── user.yml.sample
/.gitignore:
--------------------------------------------------------------------------------
1 | .vagrant
2 | vars/user.yml
3 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Digital Development Team at Oslo Public Library
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | KohaDevBox
2 | ==========
3 |
4 | IMPORTANT: This project has been moved to https://gitlab.com/koha-community/kohadevbox
5 |
6 | This repository is obsolete and should no longer be used!
7 |
8 |
--------------------------------------------------------------------------------
/Vagrantfile:
--------------------------------------------------------------------------------
1 | # -*- mode: ruby -*-
2 | # vi: set ft=ruby :
3 | require 'fileutils'
4 |
5 | module OS
6 | # Try detecting Windows
7 | def OS.windows?
8 | (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
9 | end
10 | end
11 |
12 | Vagrant.require_version ">= 2.0.0"
13 |
14 | # Absolute path on the host machine.
15 | host_config_dir = File.dirname(File.expand_path(__FILE__))
16 |
17 | require 'yaml'
18 | # Load default VM configuration.
19 | vconfig = YAML.load_file("#{host_config_dir}/vars/defaults.yml")
20 |
21 | # Load user VM configuration if exists.
22 | if File.file?("#{host_config_dir}/vars/user.yml")
23 | user_prefs = YAML.load_file("#{host_config_dir}/vars/user.yml");
24 | if !user_prefs == nil
25 | vconfig.merge!(user_prefs)
26 | end
27 | end
28 |
29 | def walk(obj, &fn)
30 | if obj.is_a?(Array)
31 | obj.map { |value| walk(value, &fn) }
32 | elsif obj.is_a?(Hash)
33 | obj.each_pair { |key, value| obj[key] = walk(value, &fn) }
34 | else
35 | obj = yield(obj)
36 | end
37 | end
38 |
39 | # Replace jinja variables in config.
40 | vconfig = walk(vconfig) do |value|
41 | while value.is_a?(String) && value.match(/{{ .* }}/)
42 | value = value.gsub(/{{ (.*?) }}/) { vconfig[Regexp.last_match(1)] }
43 | end
44 | value
45 | end
46 |
47 | Vagrant.configure(2) do |config|
48 |
49 | # http://fgrehm.viewdocs.io/vagrant-cachier
50 | if Vagrant.has_plugin?("vagrant-cachier") and not OS.windows?
51 | config.cache.scope = :box
52 | config.cache.synced_folder_opts = {
53 | type: :nfs,
54 | # The nolock option can be useful for an NFSv3 client that wants to avoid the
55 | # NLM sideband protocol. Without this option, apt-get might hang if it tries
56 | # to lock files needed for /var/cache/* operations. All of this can be avoided
57 | # by using NFSv4 everywhere. Please note that the tcp option is not the default.
58 | mount_options: ['rw', 'vers=3', 'tcp', 'nolock']
59 | }
60 | else
61 | puts "Run 'vagrant plugin install vagrant-cachier' to speed up provisioning."
62 | end
63 |
64 | config.vm.hostname = "kohadevbox"
65 | if OS.windows?
66 | if ENV['SMB']
67 | config.vm.synced_folder ".", "/vagrant", type: "smb"
68 | else
69 | config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
70 | end
71 | end
72 |
73 | config.vm.define "stretch", autostart: false do |stretch|
74 | stretch.vm.box = "debian/stretch64"
75 | end
76 |
77 | config.vm.define "jessie", primary: true do |jessie|
78 | jessie.vm.box = "debian/jessie64"
79 | end
80 |
81 | config.vm.define "xenial", autostart: false do |xenial|
82 | xenial.vm.box = "geerlingguy/ubuntu1604"
83 | end
84 |
85 | config.vm.network :forwarded_port, guest: 6001, host: 6001, auto_correct: true # SIP2
86 | config.vm.network :forwarded_port, guest: 80, host: 8080, auto_correct: true # OPAC
87 | config.vm.network :forwarded_port, guest: 8080, host: 8081, auto_correct: true # INTRA
88 | config.vm.network :forwarded_port, guest: 9200, host: 9200, auto_correct: true # ES
89 | config.vm.network "private_network", ip: "192.168.50.10"
90 |
91 | config.vm.provider :virtualbox do |vb|
92 | if ENV['KOHA_ELASTICSEARCH']
93 | vb.customize ["modifyvm", :id, "--memory", "4096"]
94 | else
95 | vb.customize ["modifyvm", :id, "--memory", "2048"]
96 | end
97 | end
98 |
99 | sync_repo_dir = ENV['SYNC_REPO'] || vconfig['sync_repo'] && vconfig['sync_repo_dir']
100 |
101 | if sync_repo_dir
102 | if OS.windows?
103 | unless Vagrant.has_plugin?("vagrant-vbguest")
104 | raise 'The vagrant-vbguest plugin is not present, and is mandatory for SYNC_REPO on Windows! See README.md'
105 | end
106 |
107 | if ENV['SMB']
108 | config.vm.synced_folder sync_repo_dir, vconfig['koha_dir'], type: "smb"
109 | else
110 | config.vm.synced_folder sync_repo_dir, vconfig['koha_dir'], type: "virtualbox"
111 | end
112 |
113 | else
114 | # We should safely rely on NFS
115 | config.vm.synced_folder sync_repo_dir, vconfig['koha_dir'], type: "nfs"
116 | end
117 | end
118 |
119 | if ENV['SYNC_KOHADOCS']
120 | if OS.windows?
121 | unless Vagrant.has_plugin?("vagrant-vbguest")
122 | raise 'The vagrant-vbguest plugin is not present, and is mandatory for SYNC_KOHADOCS on Windows! See README.md'
123 | end
124 |
125 | if ENV['SMB']
126 | config.vm.synced_folder ENV['SYNC_KOHADOCS'], vconfig['kohadocs_dir'], type: "smb"
127 | else
128 | config.vm.synced_folder ENV['SYNC_KOHADOCS'], vconfig['kohadocs_dir'], type: "virtualbox"
129 | end
130 |
131 | else
132 | # We should safely rely on NFS
133 | config.vm.synced_folder ENV['SYNC_KOHADOCS'], vconfig['kohadocs_dir'], type: "nfs"
134 | end
135 | end
136 |
137 | if ENV['PLUGIN_REPO']
138 |
139 | plugin_dir = vconfig['home_dir'] + "/koha_plugin"
140 |
141 | if OS.windows?
142 | unless Vagrant.has_plugin?("vagrant-vbguest")
143 | raise 'The vagrant-vbguest plugin is not present, and is mandatory for PLUGIN_REPO on Windows! See README.md'
144 | end
145 |
146 | if ENV['SMB']
147 | config.vm.synced_folder ENV['PLUGIN_REPO'], plugin_dir, type: "smb"
148 | else
149 | config.vm.synced_folder ENV['PLUGIN_REPO'], plugin_dir, type: "virtualbox"
150 | end
151 |
152 | else
153 | # We should safely rely on NFS
154 | config.vm.synced_folder ENV['PLUGIN_REPO'], plugin_dir, type: "nfs"
155 | end
156 | end
157 |
158 | # The default is to run Ansible on the host OS
159 | local_ansible = false
160 | provisioner = :ansible
161 |
162 | if ENV['LOCAL_ANSIBLE'] or OS.windows?
163 | # Windows host, or we got explicitly requested
164 | # running ansible on the guest OS
165 | local_ansible = true
166 | provisioner = "ansible_local"
167 | end
168 |
169 | config.vm.provision provisioner do |ansible|
170 |
171 | if Vagrant::VERSION > '2.0.0'
172 | ansible.compatibility_mode = "2.0"
173 | end
174 |
175 | ansible.extra_vars = { ansible_ssh_user: "vagrant", testing: true }
176 |
177 | if ENV['SKIP_WEBINSTALLER']
178 | ansible.extra_vars.merge!({ skip_webinstaller: true })
179 | end
180 |
181 | if ENV['SYNC_REPO']
182 | ansible.extra_vars.merge!({ sync_repo: true });
183 | end
184 |
185 | if ENV['SYNC_KOHADOCS']
186 | ansible.extra_vars.merge!({ sync_kohadocs: true });
187 | end
188 |
189 | if ENV['KOHA_ELASTICSEARCH']
190 | ansible.extra_vars.merge!({ elasticsearch: true });
191 | end
192 |
193 | if ENV['CREATE_ADMIN_USER']
194 | ansible.extra_vars.merge!({ create_admin_user: true });
195 | end
196 |
197 | ansible.playbook = "site.yml"
198 |
199 | if local_ansible
200 | ansible.install_mode = "pip"
201 | end
202 |
203 | end
204 |
205 | config.vm.post_up_message = "Welcome to KohaDevBox!\nSee https://github.com/digibib/kohadevbox for details"
206 |
207 | end
208 |
--------------------------------------------------------------------------------
/roles/kohadevbox/handlers/main.yml:
--------------------------------------------------------------------------------
1 | # file: roles/kohadevbox/handlers/main.yml
2 | ---
3 | - name: restart apache
4 | service:
5 | name: apache2
6 | state: restarted
7 | become: yes
8 |
9 | - name: reload ssh
10 | service:
11 | name: ssh
12 | state: reloaded
13 | become: yes
--------------------------------------------------------------------------------
/roles/kohadevbox/meta/main.yml:
--------------------------------------------------------------------------------
1 | # file: roles/kohadevbox/meta/main.yml
2 | ---
3 | galaxy_info:
4 | author: Magnus Enger and Tomás Cohen Arazi
5 | license: GPLv3
6 | min_ansible_version: 1.6
7 | platforms:
8 | - name: Ubuntu
9 | versions:
10 | - trusty
11 | - name: Debian
12 | versions:
13 | - wheezy
14 | - jessie
15 | categories:
16 | - web
17 | dependencies: []
18 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/apache.yml:
--------------------------------------------------------------------------------
1 | # This needs to be done before trying to enable the cgi module
2 | - name: Apache | MPM fix
3 | apache2_module:
4 | name: mpm_event
5 | state: absent
6 | notify: restart apache
7 |
8 | - name: Apache | Disable default vhost
9 | shell: a2dissite 000-default
10 | notify: restart apache
11 |
12 | - name: Apache | Set ports
13 | template:
14 | src: ports.conf.j2
15 | dest: /etc/apache2/ports.conf
16 | mode: 0644
17 |
18 | - name: Apache | Enable needed modules
19 | apache2_module:
20 | name: "{{ item }}"
21 | state: present
22 | with_items:
23 | - rewrite
24 | - headers
25 | - proxy_http
26 | - cgi
27 | notify: restart apache
28 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/database.yml:
--------------------------------------------------------------------------------
1 | - name: Database | Install ({{ mysql_engine }})
2 | apt:
3 | name: "{{ mysql_engine }}-server"
4 | state: latest
5 | force: yes
6 |
7 | - name: Database | Set up ({{ mysql_engine }})
8 | template:
9 | src: my.cnf.j2
10 | dest: /etc/mysql/my.cnf
11 | owner: root
12 | mode: 0644
13 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/elasticsearch.yml:
--------------------------------------------------------------------------------
1 | # file: roles/kohadevbox/tasks/elasticsearch.yml
2 | ---
3 | - name: Elasticsearch {{ elasticsearch_version }} | Add Oracle Java 8 repository (key)
4 | apt_key:
5 | keyserver: keyserver.ubuntu.com
6 | id: 7B2C3B0889BF5709A105D03AC2518248EEA14886
7 | state: present
8 |
9 | - name: Elasticsearch {{ elasticsearch_version }} | Add Oracle Java 8 repository (repo)
10 | apt_repository:
11 | repo: 'deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main'
12 | state: present
13 | update_cache: yes
14 |
15 | - name: Elasticsearch {{ elasticsearch_version }} | Accept Oracle license
16 | shell: echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections
17 |
18 | - name: Elasticsearch {{ elasticsearch_version }} | Install Oracle Java 8
19 | apt:
20 | name: oracle-java8-installer
21 | state: latest
22 |
23 | - name: Elasticsearch {{ elasticsearch_version }} | Add Elasticsearch repository (key)
24 | apt_key:
25 | url: 'https://artifacts.elastic.co/GPG-KEY-elasticsearch'
26 | state: present
27 |
28 | - name: Elasticsearch {{ elasticsearch_version }} | Add Elasticsearch repository (repo)
29 | apt_repository:
30 | repo: "deb https://artifacts.elastic.co/packages/{{ elasticsearch_version }}/apt stable main"
31 | state: present
32 |
33 | - name: Elasticsearch {{ elasticsearch_version }} | Install Elasticsearch
34 | apt:
35 | name: elasticsearch
36 | state: latest
37 | force: yes
38 |
39 | - name: Elasticsearch {{ elasticsearch_version }} | Install ICU analysis plugin (check)
40 | shell: "/usr/share/elasticsearch/bin/elasticsearch-plugin list | grep -q analysis-icu && echo installed || echo absent"
41 | become: yes
42 | register: result
43 | ignore_errors: yes
44 |
45 | - name: Elasticsearch {{ elasticsearch_version }} | Install ICU analysis plugin
46 | shell: "/usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu"
47 | become: yes
48 | when: result.stdout == 'absent'
49 |
50 | - name: Elasticsearch {{ elasticsearch_version }} | Run Elasticsearch on startup
51 | service:
52 | name: elasticsearch
53 | enabled: yes
54 | state: started
55 |
56 | - name: Elasticsearch {{ elasticsearch_version }} | Install Koha's Elasticsearch deps
57 | apt:
58 | name: koha-elasticsearch
59 | state: latest
60 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/environment.yml:
--------------------------------------------------------------------------------
1 | - name: Environment | SSH tweak
2 | shell: perl -pi -e 's/AcceptEnv LANG LC_\*/# AcceptEnv LANG LC_\*/g' '/etc/ssh/sshd_config'
3 | notify: reload ssh
4 |
5 | - name: Environment | Set git user configuration
6 | template:
7 | src: gitconfig.j2
8 | dest: "{{ home_dir }}/.gitconfig"
9 | owner: "{{ user }}"
10 | group: "{{ group }}"
11 | mode: 0644
12 |
13 | - name: Environment | Set Bash configuration
14 | template:
15 | src: bashrc.j2
16 | dest: "{{ home_dir }}/.bashrc"
17 | owner: "{{ user }}"
18 | group: "{{ group }}"
19 | mode: 0644
20 |
21 | - name: Environment | Set some Bash aliases
22 | template:
23 | src: bash_aliases.j2
24 | dest: "{{ home_dir }}/.bash_aliases"
25 | owner: "{{ user }}"
26 | group: "{{ group }}"
27 | mode: 0644
28 |
29 | - name: Environment | Set up vimrc
30 | template:
31 | src: vimrc.local.j2
32 | dest: /etc/vim/vimrc.local
33 | owner: root
34 | mode: 0644
35 | become: yes
36 |
37 | - name: Environment | Copy public ssh key from host to {{ user }}
38 | copy:
39 | src: ~/.ssh/id_rsa.pub
40 | dest: "{{ home_dir }}/.ssh/id_rsa.pub"
41 | owner: "{{ user }}"
42 | group: "{{ group }}"
43 | mode: 0600
44 | when: ssh_key_from_host
45 |
46 | - name: Environment | Copy private ssh key from host to {{ user }}
47 | copy:
48 | src: ~/.ssh/id_rsa
49 | dest: "{{ home_dir }}/.ssh/id_rsa"
50 | owner: "{{ user }}"
51 | group: "{{ group }}"
52 | mode: 0600
53 | when: ssh_key_from_host
54 |
55 | - name: Environment | Update /etc/hosts file (opac domain)
56 | shell: echo "127.0.0.1 {{ koha_opac_prefix }}{{ koha_instance_name }}{{ koha_opac_suffix }}{{ koha_domain }}" >> /etc/hosts
57 | become: yes
58 |
59 | - name: Environment | Update /etc/hosts file (intranet domain)
60 | shell: echo "127.0.0.1 {{ koha_intra_prefix }}{{ koha_instance_name }}{{ koha_intra_suffix }}{{ koha_domain }}" >> /etc/hosts
61 | become: yes
62 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/gitbz.yml:
--------------------------------------------------------------------------------
1 | # Tasks required to have git-bz working for {{ user }}
2 | - name: Git-bz | Clone repository
3 | git:
4 | repo: "{{ gitbz_repo }}"
5 | dest: "{{ gitbz_dir }}"
6 | version: "{{ gitbz_version }}"
7 |
8 | - name: Git-bz | Make git-bz globally available
9 | file:
10 | src: "{{ gitbz_dir }}/git-bz"
11 | dest: "/usr/local/bin/git-bz"
12 | state: link
13 | become: yes
14 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/gitify.yml:
--------------------------------------------------------------------------------
1 | # Tasks required to have gitify working
2 | - name: koha-gitify | Clone koha-gitify
3 | git:
4 | repo: "{{ gitify_repo }}"
5 | dest: "{{ gitify_dir }}"
6 | version: "{{ gitify_version }}"
7 |
8 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/koha-debian-specific.yml:
--------------------------------------------------------------------------------
1 | - name: Koha packages tweaks | Use our koha-sites.conf file
2 | template:
3 | src: koha-sites.conf.j2
4 | dest: /etc/koha/koha-sites.conf
5 | mode: 0644
6 | owner: root
7 |
8 | - name: Koha packages tweaks | Use our Koha's passwd file
9 | template:
10 | src: koha_passwd.j2
11 | dest: /etc/koha/passwd
12 | mode: 0644
13 | owner: root
14 |
15 | - name: Koha packages tweaks | Use our koha-conf-site.xml.in file
16 | template:
17 | src: koha-conf-site.xml.in.j2
18 | dest: /etc/koha/koha-conf-site.xml.in
19 | mode: 0644
20 | owner: root
21 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/koha-instance.yml:
--------------------------------------------------------------------------------
1 | - name: Instance creation | Check for instance existence
2 | command: koha-list | grep {{ koha_instance_name }}
3 | become_user: root
4 | register: result
5 | ignore_errors: yes
6 |
7 | - name: Instance creation | Create Koha instance
8 | shell: koha-create --create-db {{ koha_instance_name }}
9 | become_user: root
10 | when: result.stdout == ""
11 | notify: restart apache
12 |
13 | - name: Instance creation | Set instance's env variables needed for testing
14 | template:
15 | src: instance_bashrc.j2
16 | dest: "/var/lib/koha/{{ koha_instance_name }}/.bashrc"
17 | mode: 0644
18 | owner: "{{ koha_instance_name }}-koha"
19 |
20 | - name: Instance creation | Create .ssh directory for {{ koha_instance_name }}
21 | file:
22 | path: "/var/lib/koha/{{ koha_instance_name }}/.ssh"
23 | owner: "{{ koha_instance_name }}-koha"
24 | mode: 0700
25 | state: directory
26 |
27 | - name: Instance creation | Copy public ssh key from host to {{ koha_instance_name }}
28 | copy:
29 | src: ~/.ssh/id_rsa.pub
30 | dest: "/var/lib/koha/{{ koha_instance_name }}/.ssh/id_rsa.pub"
31 | owner: "{{ koha_instance_name }}-koha"
32 | group: "{{ koha_instance_name }}-koha"
33 | mode: 0600
34 | when: ssh_key_from_host
35 |
36 | - name: Instance creation | Copy private ssh key from host to {{ koha_instance_name }}
37 | copy:
38 | src: ~/.ssh/id_rsa
39 | dest: "/var/lib/koha/{{ koha_instance_name }}/.ssh/id_rsa"
40 | owner: "{{ koha_instance_name }}-koha"
41 | group: "{{ koha_instance_name }}-koha"
42 | mode: 0600
43 | when: ssh_key_from_host
44 |
45 | - name: Instance creation | Gitify the Koha instance
46 | shell: ./koha-gitify {{ koha_instance_name }} {{ koha_dir }} chdir={{ gitify_dir }}
47 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/koha-src.yml:
--------------------------------------------------------------------------------
1 | - name: Koha source | Clone repository
2 | git:
3 | repo: "{{ koha_git_repo }}"
4 | dest: "{{ koha_dir }}"
5 | version: "{{ koha_git_branch }}"
6 | when: not sync_repo
7 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/koha.yml:
--------------------------------------------------------------------------------
1 |
2 | - name: Install Koha | Add official Koha repository (key)
3 | apt_key:
4 | url: "{{ koha_official_repo_key }}"
5 | state: present
6 |
7 | - name: Install Koha | Add official Koha repository (repo)
8 | apt_repository:
9 | repo: "deb {{ koha_official_repo }} {{ koha_official_repo_distribution }} main"
10 | state: present
11 |
12 | - name: Install Koha | Add custom Koha repository (key)
13 | apt_key:
14 | url: "{{ koha_custom_repo_key }}"
15 | state: present
16 | when: koha_use_custom_repo and koha_custom_repo_has_key
17 |
18 | - name: Install Koha | Add custom Koha repository (repo)
19 | apt_repository:
20 | repo: "deb {{ koha_custom_repo }} {{ koha_custom_repo_distribution }} main"
21 | state: present
22 | when: koha_use_custom_repo
23 |
24 | - name: Install Koha | Pin custom Koha repository (repo)
25 | template:
26 | src: apt_conf_koha.j2
27 | dest: /etc/apt/preferences.d/koha
28 | mode: 0644
29 | owner: root
30 | when: koha_use_custom_repo and koha_pin_custom_repo
31 |
32 | - name: Install Koha | Install koha-common
33 | apt:
34 | name: koha-common
35 | state: latest
36 | force: yes
37 |
38 | - name: Install Koha | Missing dependencies
39 | apt:
40 | name: "{{ item }}"
41 | state: latest
42 | force: yes
43 | with_items:
44 | - libsearch-elasticsearch-perl
45 | - libmojolicious-plugin-openapi-perl
46 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/kohadocs-src.yml:
--------------------------------------------------------------------------------
1 | - name: Koha manual | Clone repository
2 | git:
3 | repo: "{{ kohadocs_git_repo }}"
4 | dest: "{{ home_dir }}/kohadocs"
5 | version: "{{ kohadocs_git_branch }}"
6 | when: enable_kohadocs and not sync_kohadocs
7 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/less.yml:
--------------------------------------------------------------------------------
1 |
2 | - name: Less | Add Node.js repository (key)
3 | apt_key:
4 | url: "https://deb.nodesource.com/gpgkey/nodesource.gpg.key"
5 | state: present
6 |
7 | - name: Less | Add Node.js repository (repo)
8 | apt_repository:
9 | repo: "deb https://deb.nodesource.com/{{ node_version }} {{ ansible_distribution_release }} main"
10 | state: present
11 |
12 | - name: Less | Instal Node.js
13 | apt:
14 | name: nodejs
15 | state: latest
16 |
17 | - name: Less | Install Less globally
18 | npm:
19 | name: less
20 | global: yes
21 |
22 | - name: Less | Install the Clean CSS plugin for Less globally
23 | npm:
24 | name: less-plugin-clean-css
25 | global: yes
26 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/main.yml:
--------------------------------------------------------------------------------
1 | # file: roles/kohadevbox/tasks/main.yml
2 | ---
3 | - include: tools.yml
4 | become: yes
5 |
6 | - include: environment.yml
7 |
8 | - include: apache.yml
9 | become: yes
10 |
11 | - include: database.yml
12 | become: yes
13 |
14 | - include: gitify.yml
15 |
16 | - include: koha-src.yml
17 |
18 | - include: kohadocs-src.yml
19 |
20 | - include: koha.yml
21 | become: yes
22 |
23 | - include: misc4dev.yml
24 |
25 | - include: koha-debian-specific.yml
26 | become: yes
27 |
28 | - include: koha-instance.yml
29 | become: yes
30 |
31 | - include: qatools.yml
32 |
33 | - include: gitbz.yml
34 |
35 | - include: releasetools.yml
36 |
37 | - include: elasticsearch.yml
38 | become: yes
39 | when: elasticsearch
40 |
41 | - include: less.yml
42 | become: yes
43 |
44 | - include: remote-debugger.yml
45 | when: remote_debugger
46 |
47 | - include: selenium.yml
48 | when: selenium
49 |
50 | - include: sample_data.yml
51 |
52 | - include: plack.yml
53 | when:
54 | - plack
55 | - ansible_distribution_release != 'wheezy' # plack not supported on wheezy
56 | - ansible_distribution_release != 'trusty' # plack not supported on trusty
57 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/misc4dev.yml:
--------------------------------------------------------------------------------
1 | # Tasks required to have the misc4dev working for {{ user }}
2 |
3 | - name: misc4dev | Clone the misc4dev repo
4 | git:
5 | repo: "{{ misc4dev_repo }}"
6 | dest: "{{ misc4dev_dir }}"
7 | version: "{{ misc4dev_version }}"
8 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/plack.yml:
--------------------------------------------------------------------------------
1 | # Tasks required for setting Plack
2 | - name: Plack | Enable Plack for {{ koha_instance_name }}
3 | shell: koha-plack --enable {{ koha_instance_name }} > /dev/null 2>&1 || /bin/true
4 | become: yes
5 | ignore_errors: yes
6 |
7 | - name: Plack | Start Plack for {{ koha_instance_name }}
8 | shell: koha-plack --start {{ koha_instance_name }} > /dev/null 2>&1 || /bin/true
9 | become: yes
10 | notify: restart apache
11 | ignore_errors: yes
12 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/qatools.yml:
--------------------------------------------------------------------------------
1 | # Tasks required to have Koha QA Tools working for {{ user }}
2 | - name: Koha QA tools | Packaged dependencies
3 | apt:
4 | name: "{{ item }}"
5 | state: latest
6 | with_items:
7 | - libfile-chdir-perl
8 | - libgit-repository-perl
9 | - liblist-compare-perl
10 | - libmoo-perl
11 | - libperl-critic-perl
12 | - libtest-perl-critic-perl
13 | - libtest-perl-critic-progressive-perl
14 | - libsmart-comments-perl
15 | - libdatetimex-easy-perl
16 | - libtest-differences-perl
17 | - libdbd-sqlite2-perl
18 | - codespell
19 | - libdbix-class-timestamp-perl
20 | - libmodule-install-perl
21 | become: yes
22 |
23 | - name: Koha QA tools | CPAN dependencies
24 | become: yes
25 | cpanm:
26 | name: "{{ item }}"
27 | mirror: "{{ cpan_mirror }}"
28 | with_items:
29 | - DBD::SQLite
30 | - HTTPD::Bench::ApacheBench
31 | - MooseX::Attribute::ENV
32 | - Test::DBIx::Class
33 | retries: 5
34 | delay: 1
35 |
36 | - name: Koha QA tools | Clone repository
37 | git:
38 | repo: "{{ koha_qa_repo }}"
39 | dest: "{{ koha_qa_dir }}"
40 | version: "{{ koha_qa_version }}"
41 | accept_hostkey: yes
42 |
43 | - name: Koha QA tools | Set perlcritic for {{ user }}
44 | file:
45 | src: "{{ koha_qa_dir }}/perlcriticrc"
46 | dest: "{{ home_dir }}/.perlcriticrc"
47 | state: link
48 |
49 | - name: Koha QA tools | Set perlcritic for the instance user
50 | file:
51 | src: "{{ koha_qa_dir }}/perlcriticrc"
52 | dest: "/var/lib/koha/{{ koha_instance_name }}/.perlcriticrc"
53 | mode: 0644
54 | owner: "{{ koha_instance_name }}-koha"
55 | state: link
56 | become: yes
57 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/releasetools.yml:
--------------------------------------------------------------------------------
1 | # Tasks required to have the release-tools working for {{ user }}
2 | - name: Release tools | Packaged dependencies
3 | become: yes
4 | apt:
5 | name: "{{ item }}"
6 | state: latest
7 | with_items:
8 | - libhtml-tableextract-perl
9 | - libtext-multimarkdown-perl
10 |
11 | - name: Release tools | CPAN dependencies
12 | become: yes
13 | cpanm:
14 | name: "{{ item }}"
15 | mirror: "{{ cpan_mirror }}"
16 | with_items:
17 | - File::FindLib
18 | - REST::Client
19 |
20 | - name: Release tools | Clone repository
21 | git:
22 | repo: "{{ release_tools_repo }}"
23 | dest: "{{ release_tools_dir }}"
24 | version: "{{ release_tools_version }}"
25 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/remote-debugger.yml:
--------------------------------------------------------------------------------
1 | - name: Remote debugger | Create destination dir
2 | file:
3 | path: "{{ remote_debugger_dir }}"
4 | state: directory
5 | mode: 0755
6 |
7 | - name: Remote debugger | Extract Komodo remote debugger
8 | unarchive:
9 | src: "{{ remote_debugger_baseurl }}/{{ remote_debugger_package }}.tar.gz"
10 | dest: "{{ remote_debugger_dir }}"
11 | remote_src: True
12 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/sample_data.yml:
--------------------------------------------------------------------------------
1 | - name: Sample data | Load
2 | become: yes
3 | shell: koha-shell {{ koha_instance_name }} -c "{{ misc4dev_dir }}/populate_db.pl --marcflavour {{ koha_marc_flavour }} --opac-base-url http://{{ koha_opac_prefix }}{{ koha_instance_name }}{{ koha_opac_suffix }}{{ koha_domain }}:{{ koha_opac_port }} --intranet-base-url http://{{ koha_intra_prefix }}{{ koha_instance_name }}{{ koha_intra_suffix }}{{ koha_domain }}:{{ koha_intra_port }}"
4 | when: skip_webinstaller
5 |
6 | - name: Sample data | Create Koha admin user ({{ koha_admin_user }} / {{ koha_admin_pass }})
7 | become: yes
8 | shell: koha-shell {{ koha_instance_name }} -c "{{ misc4dev_dir }}/create_superlibrarian.pl --userid {{ koha_admin_user }} --password {{ koha_admin_pass }}"
9 | when: skip_webinstaller and create_admin_user
10 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/selenium.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Selenium | Add Oracle Java 8 repository (key)
3 | become: yes
4 | apt_key:
5 | keyserver: keyserver.ubuntu.com
6 | id: 7B2C3B0889BF5709A105D03AC2518248EEA14886
7 | state: present
8 |
9 | - name: Selenium | Add Oracle Java 8 repository (repo)
10 | become: yes
11 | apt_repository:
12 | repo: 'deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main'
13 | state: present
14 | update_cache: yes
15 |
16 | - name: Selenium | Accept Oracle license
17 | become: yes
18 | shell: echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections
19 |
20 | - name: Selenium | Dependencies (apt)
21 | become: yes
22 | apt:
23 | name: "{{ item }}"
24 | state: latest
25 | force: yes
26 | with_items:
27 | - oracle-java8-installer
28 | - firefox-esr
29 | - xvfb
30 |
31 | - name: Selenium | Dependencies (cpanm)
32 | become: yes
33 | cpanm:
34 | name={{ item }}
35 | with_items:
36 | - Selenium::Remote::Driver
37 |
38 | - name: Selenium | Download jar
39 | get_url:
40 | url: "{{ selenium_url }}"
41 | dest: "{{ home_dir }}/selenium.jar"
42 | mode: 0440
43 |
--------------------------------------------------------------------------------
/roles/kohadevbox/tasks/tools.yml:
--------------------------------------------------------------------------------
1 | - name: Tools | Install default tools
2 | apt:
3 | name: "{{ item }}"
4 | state: latest
5 | force: yes
6 | with_items:
7 | - apt-transport-https
8 | - bash-completion
9 | - cpanminus
10 | - dh-make-perl
11 | - git
12 | - git-email
13 | - apache2
14 | - libapache2-mpm-itk
15 | - libdata-printer-perl
16 | - mlocate
17 | - perltidy
18 | - pmtools
19 | - memcached
20 | - ntp
21 |
22 | - name: Tools | Install extra tools
23 | apt:
24 | name: "{{ extra_tools }}"
25 | state: latest
26 |
27 | - name: Tools | Install sphinx
28 | apt:
29 | name: "{{ item }}"
30 | state: latest
31 | force: yes
32 | with_items:
33 | - python-sphinx
34 | when: enable_kohadocs
35 |
36 | - name: Tools | Stop memcached if required
37 | service:
38 | name: memcached
39 | state: started
40 | enabled: yes
41 | when: enable_memcached
42 |
--------------------------------------------------------------------------------
/roles/kohadevbox/templates/apt_conf_koha.j2:
--------------------------------------------------------------------------------
1 | Package: *
2 | Pin: origin {{ koha_custom_repo_origin }}
3 | Pin-Priority: 610
4 |
5 | Package: *
6 | Pin: origin {{ koha_official_repo_origin }}
7 | Pin-Priority: 600
--------------------------------------------------------------------------------
/roles/kohadevbox/templates/bash_aliases.j2:
--------------------------------------------------------------------------------
1 | # Alias for the Koha QA tool
2 | alias qa="{{ home_dir }}/qa-test-tools/koha-qa.pl"
3 |
4 | # Aliases for reading logs
5 | alias koha-opac-err="sudo tail -f /var/log/koha/{{ koha_instance_name }}/opac-error.log"
6 | alias koha-intra-err="sudo tail -f /var/log/koha/{{ koha_instance_name }}/intranet-error.log"
7 | alias koha-plack-log="sudo tail -f /var/log/koha/{{ koha_instance_name }}/plack.log"
8 | alias koha-plack-err="sudo tail -f /var/log/koha/{{ koha_instance_name }}/plack-error.log"
9 |
10 | # Alias for getting into the {{ koha_instance_name }} user, inside {{ koha_dir }}
11 | alias kshell='cd {{ koha_dir }} ; sudo koha-shell {{ koha_instance_name }}'
12 |
13 | # Aliases for getting the db/admin user and password for our instance
14 | alias koha-user="sudo xmlstarlet sel -t -v 'yazgfs/config/user' -n '/etc/koha/sites/{{ koha_instance_name }}/koha-conf.xml'"
15 | alias koha-pass="sudo xmlstarlet sel -t -v 'yazgfs/config/pass' -n '/etc/koha/sites/{{ koha_instance_name }}/koha-conf.xml'"
16 |
17 | # Aliases for dealing with Less compilation
18 | alias less-opac="lessc --clean-css='--s0 --advanced --compatibility=ie7' \
19 | {{ koha_dir }}/koha-tmpl/opac-tmpl/bootstrap/less/opac.less \
20 | > {{ koha_dir }}/koha-tmpl/opac-tmpl/bootstrap/css/opac.css"
21 |
22 | # Alias to recreate the schema files
23 | alias dbic="mysql -uroot -e 'DROP DATABASE IF EXISTS dbic; CREATE DATABASE dbic' ; \
24 | cd '{{ koha_dir }}' ; \
25 | mysql -uroot dbic < installer/data/mysql/kohastructure.sql ;\
26 | misc/devel/update_dbix_class_files.pl --db_name dbic --db_user root"
27 |
28 | # Alias for restarting all needed services
29 | alias restart_all="sudo service memcached restart ; sudo service apache2 reload ; sudo service koha-common restart"
30 |
31 | # Alias for running updatedatabase.pl
32 | alias updatedatabase="sudo koha-shell {{ koha_instance_name }} -p -c 'perl {{ koha_dir }}/installer/data/mysql/updatedatabase.pl'"
33 |
34 | # Alias for reseting everything koha-related
35 | alias reset_all='read -p "This action will erase all your data. Are you sure? (y/N) " -n 1 -r
36 | echo # move to a new line
37 | if [[ $REPLY =~ ^[Yy]$ ]]; then
38 | mysql -u koha_{{ koha_instance_name }} -p{{ koha_db_password }} -e"DROP DATABASE koha_{{ koha_instance_name }}"
39 | mysql -u koha_{{ koha_instance_name }} -p{{ koha_db_password }} -e"CREATE DATABASE koha_{{ koha_instance_name }}"
40 | perl {{ misc4dev_dir }}/do_all_you_can_do.pl \
41 | --instance {{ koha_instance_name }} {% if elasticsearch %} --elasticsearch {% endif %}\
42 | --userid {{ koha_admin_user }} \
43 | --password {{ koha_admin_pass }} \
44 | --marcflavour {{ koha_marc_flavour }} \
45 | --koha_dir {{ koha_dir }} \
46 | --opac-base-url http://{{ koha_opac_prefix }}{{ koha_instance_name }}{{ koha_opac_suffix }}{{ koha_domain }}:{{ koha_opac_port }} \
47 | --intranet-base-url http://{{ koha_intra_prefix }}{{ koha_instance_name }}{{ koha_intra_suffix }}{{ koha_domain }}:{{ koha_intra_port }}
48 | restart_all
49 | else
50 | echo "Aborted"
51 | fi'
52 |
53 | alias reset_all_marc21='read -p "This action will erase all your data. Are you sure? (y/N) " -n 1 -r
54 | echo # move to a new line
55 | if [[ $REPLY =~ ^[Yy]$ ]]; then
56 | mysql -u koha_{{ koha_instance_name }} -p{{ koha_db_password }} -e"DROP DATABASE koha_{{ koha_instance_name }}"
57 | mysql -u koha_{{ koha_instance_name }} -p{{ koha_db_password }} -e"CREATE DATABASE koha_{{ koha_instance_name }}"
58 | perl {{ misc4dev_dir }}/do_all_you_can_do.pl \
59 | --instance {{ koha_instance_name }} {% if elasticsearch %} --elasticsearch {% endif %}\
60 | --userid {{ koha_admin_user }} \
61 | --password {{ koha_admin_pass }} \
62 | --marcflavour marc21 \
63 | --koha_dir {{ koha_dir }} \
64 | --opac-base-url http://{{ koha_opac_prefix }}{{ koha_instance_name }}{{ koha_opac_suffix }}{{ koha_domain }}:{{ koha_opac_port }} \
65 | --intranet-base-url http://{{ koha_intra_prefix }}{{ koha_instance_name }}{{ koha_intra_suffix }}{{ koha_domain }}:{{ koha_intra_port }}
66 | restart_all
67 | else
68 | echo "Aborted"
69 | fi'
70 |
71 | alias reset_all_unimarc='read -p "This action will erase all your data. Are you sure? (y/N) " -n 1 -r
72 | echo # move to a new line
73 | if [[ $REPLY =~ ^[Yy]$ ]]; then
74 | mysql -u koha_{{ koha_instance_name }} -p{{ koha_db_password }} -e"DROP DATABASE koha_{{ koha_instance_name }}"
75 | mysql -u koha_{{ koha_instance_name }} -p{{ koha_db_password }} -e"CREATE DATABASE koha_{{ koha_instance_name }}"
76 | perl {{ misc4dev_dir }}/do_all_you_can_do.pl \
77 | --instance {{ koha_instance_name }} {% if elasticsearch %} --elasticsearch {% endif %}\
78 | --userid {{ koha_admin_user }} \
79 | --password {{ koha_admin_pass }} \
80 | --marcflavour unimarc \
81 | --koha_dir {{ koha_dir }} \
82 | --opac-base-url http://{{ koha_opac_prefix }}{{ koha_instance_name }}{{ koha_opac_suffix }}{{ koha_domain }}:{{ koha_opac_port }} \
83 | --intranet-base-url http://{{ koha_intra_prefix }}{{ koha_instance_name }}{{ koha_intra_suffix }}{{ koha_domain }}:{{ koha_intra_port }}
84 | restart_all
85 | else
86 | echo "Aborted"
87 | fi'
88 |
89 | alias start_plack_debug='sudo koha-plack --start \
90 | --debugger \
91 | --debugger-path "{{ remote_debugger_dir }}/{{ remote_debugger_package }}" \
92 | --debugger-location "{{ remote_debugger_location }}" \
93 | --debugger-key "{{ remote_debugger_key }}" \
94 | {{ koha_instance_name }}'
95 |
96 | alias start_selenium='Xvfb :1 -screen 0 1024x768x24 > /dev/null 2>&1 & \
97 | DISPLAY=:1 java -jar selenium.jar 2> /dev/null'
98 |
--------------------------------------------------------------------------------
/roles/kohadevbox/templates/bashrc.j2:
--------------------------------------------------------------------------------
1 | #!/usr/bin/bash
2 |
3 | export LANGUAGE='en_US.UTF-8'
4 | export LC_ALL='en_US.UTF-8'
5 |
6 | shopt -s histappend
7 |
8 | # executable -> green
9 | export CLICOLOR=1
10 | export LSCOLORS=ExFxBxDxCxegedabagacad
11 |
12 | # Completion!
13 | if [ -f /etc/bash_completion ]; then
14 | . /etc/bash_completion
15 | fi
16 |
17 | # Aliases :-D
18 | if [ -f ~/.bash_aliases ]; then
19 | . ~/.bash_aliases
20 | fi
21 | # Load profile
22 | if [ -f ~/.bash_profile ]; then
23 | . ~/.bash_profile
24 | fi
25 |
26 | export EDITOR="{{ editor }}"
27 | export KOHA_CONF=/etc/koha/sites/{{ koha_instance_name }}/koha-conf.xml
28 | export PERL5LIB="{{ koha_dir }}:{{ koha_qa_dir }}"
29 | export TEST_QA=1
30 |
31 | PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]$(__git_ps1 "\[\e[1;33m\](%s)\[\e[0m\]")$ '
32 |
--------------------------------------------------------------------------------
/roles/kohadevbox/templates/gitconfig.j2:
--------------------------------------------------------------------------------
1 | [user]
2 | name = {{ git_full_name }}
3 | email = {{ git_email }}
4 |
5 | [bz]
6 | default-tracker = bugs.koha-community.org
7 | default-product = Koha
8 |
9 | [bz-tracker "bugs.koha-community.org"]
10 | path = /bugzilla3
11 | bz-user = {{ bz_user }}
12 | bz-password = {{ bz_password }}
13 | https = true
14 |
15 | [core]
16 | whitespace = trailing-space,space-before-tab
17 | editor = {{ editor }}
18 |
19 | [apply]
20 | whitespace = fix
21 |
22 | [diff]
23 | tool = vimdiff
24 |
25 | [difftool]
26 | prompt = false
27 |
28 | [color]
29 | status = auto
30 | branch = auto
31 | diff = auto
32 | ui = auto
33 |
34 | [alias]
35 | s = "!f() { c=`expr $1 - 1`; git filter-branch -f --msg-filter \"cat && echo \\\"\nSigned-off-by: {{ git_full_name }} <{{ git_email }}>\\\"\" HEAD~$c^..; }; f"
36 | so = "!f() { c=`expr $1 - 1`; git filter-branch -f --msg-filter \"cat && echo \\\"\nSigned-off-by: {{ git_full_name }} <{{ git_email }}>\\\"\" HEAD~$c^..; }; f"
37 | sob = "!f() { c=`expr $1 - 1`; git filter-branch -f --msg-filter \"cat && echo \\\"\nSigned-off-by: $2\\\"\" HEAD~$c^..; }; f"
38 | qa = !sh -c 'git fetch origin && git checkout origin/master && ( git checkout -b bug$1-qa origin/master || ( git branch -D bug$1-qa && git checkout -b bug$1-qa origin/master ) ) && git bz apply $1' -
39 | qa2 = "!f() { c=`expr $1 - 1`; git filter-branch -f --msg-filter \"cat && echo \\\"\nSigned-off-by: {{ git_full_name }} <{{ git_email }}>\\\"\" HEAD~$c^..; }; f"
40 | gr = log --graph --full-history --all --color --pretty=tformat:"%x1b[31m%h%x09%x1b[32m%x1b[0m%x20%d%s%x20%x1b[33m(%an)%x1b[0m"
41 | bza = !sh -c 'git bz attach -e $2 HEAD~$(($1 - 1)) && git bz attach $2 HEAD~$(($1 - 1))...HEAD' -
42 | dqa = !sh -c 'git branch | cut -c3- | egrep "^bug.*-qa" | xargs git branch -D' -
43 |
--------------------------------------------------------------------------------
/roles/kohadevbox/templates/instance_bashrc.j2:
--------------------------------------------------------------------------------
1 | export KOHA_USER={{ koha_admin_user }}
2 | export KOHA_PASS={{ koha_admin_pass }}
3 | export KOHA_INTRANET_URL=http://{{ koha_intra_prefix }}{{ koha_instance_name }}{{ koha_intra_suffix }}{{ koha_domain }}:{{ koha_intra_port }}
4 | export KOHA_OPAC_URL=http://{{ koha_opac_prefix }}{{ koha_instance_name }}{{ koha_opac_suffix }}{{ koha_domain }}:{{ koha_opac_port }}
5 | export PERL5LIB="{{ koha_dir }}:{{ koha_qa_dir }}"
6 | export TEST_QA=1
7 |
8 | # Alias for the Koha QA tool
9 | alias qa="{{ home_dir }}/qa-test-tools/koha-qa.pl"
10 | alias prove_debug='PERL5LIB="{{ remote_debugger_dir }}/{{ remote_debugger_package }}":$PERL5LIB \
11 | PERL5DB="BEGIN { require q({{ remote_debugger_dir }}/{{ remote_debugger_package }}/perl5db.pl) }" \
12 | PERLDB_OPTS="RemotePort={{ remote_debugger_location }} async=1 LogFile=/var/log/koha/{{ koha_instance_name }}/plack-debug.log" \
13 | perl -d'
--------------------------------------------------------------------------------
/roles/kohadevbox/templates/koha-conf-site.xml.in.j2:
--------------------------------------------------------------------------------
1 |
2 |
3 | unix:/var/run/koha/__KOHASITE__/bibliosocket
4 | unix:/var/run/koha/__KOHASITE__/authoritysocket
5 |
6 |
9 | __START_SRU_PUBLICSERVER__
10 | tcp:@:__SRU_BIBLIOS_PORT__
11 | __END_SRU_PUBLICSERVER__
12 |
13 |
17 |
25 |
26 |
27 |
28 | /var/lib/koha/__KOHASITE__/biblios
29 | /etc/koha/sites/__KOHASITE__/__ZEBRA_BIBLIOS_CFG__
30 | /etc/koha/zebradb/pqf.properties
31 |
32 | __START_BIBLIOS_RETRIEVAL_INFO__
33 |
34 |
35 |
36 |
37 |
39 |
40 |
42 |
43 |
44 |
45 |
46 |
48 |
49 |
50 |
51 |
52 |
53 |
55 |
56 |
57 |
58 |
59 |
60 |
62 |
63 |
64 |
65 |
66 |
67 |
69 |
70 |
71 |
72 |
73 |
74 |
76 |
77 |
78 |
79 | __END_BIBLIOS_RETRIEVAL_INFO__
80 |
81 |
97 |
98 |
99 | /etc/koha/zebradb/ccl.properties
100 | kohauser
101 | __ZEBRA_PASS__
102 |
103 |
104 |
105 |
106 | /var/lib/koha/__KOHASITE__/authorities
107 | /etc/koha/sites/__KOHASITE__/__ZEBRA_AUTHORITIES_CFG__
108 | /etc/koha/zebradb/pqf.properties
109 |
110 | __START_AUTHORITIES_RETRIEVAL_INFO__
111 |
112 |
113 |
115 |
116 |
118 |
119 |
120 |
121 |
122 |
124 |
125 |
126 |
127 |
128 |
129 |
131 |
132 |
133 |
134 |
135 |
136 |
138 |
139 |
140 |
141 |
142 |
143 |
145 |
146 |
147 |
148 | __END_AUTHORITIES_RETRIEVAL_INFO__
149 |
150 |
166 |
167 |
168 | /etc/koha/zebradb/ccl.properties
169 | kohauser
170 | __ZEBRA_PASS__
171 |
172 |
173 |
174 |
175 | __START_SRU_PUBLICSERVER__
176 |
177 | /var/lib/koha/__KOHASITE__/biblios
178 | /etc/koha/sites/__KOHASITE__/__ZEBRA_BIBLIOS_CFG__
179 | /etc/koha/zebradb/pqf.properties
180 |
181 | __START_BIBLIOS_RETRIEVAL_INFO__
182 |
183 |
184 |
185 |
186 |
188 |
189 |
191 |
192 |
193 |
194 |
195 |
197 |
198 |
199 |
200 |
201 |
202 |
204 |
205 |
206 |
207 |
208 |
209 |
211 |
212 |
213 |
214 |
215 |
216 |
218 |
219 |
220 |
221 |
222 |
223 |
225 |
226 |
227 |
228 | __END_BIBLIOS_RETRIEVAL_INFO__
229 |
230 |
232 |
233 |
234 |
235 | __ZEBRA_SRU_HOST__
236 | __ZEBRA_SRU_BIBLIOS_PORT__
237 | biblios
238 |
239 |
240 |
241 |
242 |
243 |
244 | /etc/koha/zebradb/ccl.properties
245 | kohauser
246 | __ZEBRA_PASS__
247 |
248 | __END_SRU_PUBLICSERVER__
249 |
250 |
251 | mysql
252 | __DB_NAME__
253 | __DB_HOST__
254 | 3306
255 | __DB_USER__
256 | __DB_PASS__
257 | biblios
258 | 1
259 | authorities
260 | 1
261 |
262 | localhost:9200
263 | koha_{{ koha_instance_name }}
264 |
265 | __PLUGINS_DIR__
266 | 0
267 | __UPLOAD_PATH__
268 | /usr/share/koha/intranet/cgi-bin
269 | /usr/share/koha/opac/cgi-bin/opac
270 | /usr/share/koha/opac/htdocs/opac-tmpl
271 | /usr/share/koha/intranet/htdocs/intranet-tmpl
272 | /usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/includes/
273 | __LOG_DIR__
274 | {{ koha_dir }}/docs
275 | /var/spool/koha/__KOHASITE__
276 |
279 | 0
280 | 0
281 |
282 | /usr/share/koha/misc/koha-install-log
283 | 0
284 | 0
285 | __BIBLIOS_INDEXING_MODE__
286 | __AUTHORITIES_INDEXING_MODE__
287 | /var/lock/koha/__KOHASITE__
288 | 1
289 | /etc/koha/searchengine/queryparser.yaml
290 | __KOHA_CONF_DIR__/log4perl.conf
291 |
295 |
296 | __MEMCACHED_SERVERS__
297 | __MEMCACHED_NAMESPACE__
298 |
299 | 1
300 |
301 |
302 | __API_SECRET__
303 |
304 |
305 |
306 | /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf
307 | /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf
308 | /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Italic.ttf
309 | /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldItalic.ttf
310 | /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf
311 | /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf
312 | /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Oblique.ttf
313 | /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-BoldOblique.ttf
314 | /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
315 | /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf
316 | /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf
317 | /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-BoldOblique.ttf
318 |
319 |
320 |
321 |
322 | {{ mana_url }}
323 |
324 |
325 |
326 |
--------------------------------------------------------------------------------
/roles/kohadevbox/templates/koha-sites.conf.j2:
--------------------------------------------------------------------------------
1 | # NOTE: for a complete list of valid options please read koha-create(8)
2 |
3 | ## Apache virtual hosts creation variables
4 | #
5 | # Please note that the URLs are built like this:
6 | # OPAC: http://:
7 | # STAFF: http://:
8 | DOMAIN="{{ koha_domain }}"
9 | INTRAPORT="{{ koha_intra_port }}"
10 | INTRAPREFIX="{{ koha_intra_prefix }}"
11 | INTRASUFFIX="{{ koha_intra_suffix }}"
12 | OPACPORT="{{ koha_opac_port }}"
13 | OPACPREFIX="{{ koha_opac_prefix }}"
14 | OPACSUFFIX="{{ koha_opac_suffix }}"
15 |
16 | ## Default data to be loaded
17 | #
18 | # DEFAULTSQL: filename
19 | # Specify an SQL file with default data to load during instance creation
20 | # default: (empty)
21 | DEFAULTSQL=""
22 |
23 | ## Zebra global configuration variables
24 | #
25 | # ZEBRA_MARC_FORMAT: 'marc21' | 'normarc' | 'unimarc'
26 | # Specifies the MARC records format for indexing
27 | # default: 'marc21'
28 | ZEBRA_MARC_FORMAT="{{ koha_marc_flavour }}"
29 |
30 | # ZEBRA_LANGUAGE: 'en' | 'es' | 'fr' | 'nb' | 'ru' | 'uk'
31 | # Primary language for Zebra indexing
32 | # default: 'en'
33 | ZEBRA_LANGUAGE="{{ koha_zebra_language }}"
34 |
35 | # BIBLIOS_INDEXING_MODE: 'dom' | 'grs1'
36 | # Indexing mode for bibliographic records
37 | # default: 'dom'
38 | BIBLIOS_INDEXING_MODE="dom"
39 |
40 | # AUTHORITIES_INDEXING_MODE: 'dom' | 'grs1'
41 | # Indexing mode for authorithy records
42 | # default: 'dom'
43 | AUTHORITIES_INDEXING_MODE="dom"
44 |
45 | ## Memcached global configuration variables
46 | #
47 | # USE_MEMCACHED: 'yes' | 'no'
48 | # Make the created instance use memcached. Can be altered later.
49 | # default: 'no'
50 | USE_MEMCACHED="yes"
51 |
52 | # MEMCACHED_SERVERS: comma separated list of memcached servers (ip:port)
53 | # Specify a list of memcached servers for the Koha instance
54 | # default: '127.0.0.1:11211'
55 | MEMCACHED_SERVERS="127.0.0.1:11211"
56 |
57 | # MEMCACHED_PREFIX:
58 | # Specify a string to be used as prefix for defining the memcached namespace
59 | # for the created instance.
60 | # default: 'koha_'
61 | MEMCACHED_PREFIX="koha_"
62 |
--------------------------------------------------------------------------------
/roles/kohadevbox/templates/koha_passwd.j2:
--------------------------------------------------------------------------------
1 | {{ koha_instance_name }}:koha_{{ koha_instance_name }}:{{ koha_db_password }}:koha_{{ koha_instance_name }}
--------------------------------------------------------------------------------
/roles/kohadevbox/templates/my.cnf.j2:
--------------------------------------------------------------------------------
1 | #
2 | # The MySQL database server configuration file.
3 | #
4 | # You can copy this to one of:
5 | # - "/etc/mysql/my.cnf" to set global options,
6 | # - "~/.my.cnf" to set user-specific options.
7 | #
8 | # One can use all long options that the program supports.
9 | # Run program with --help to get a list of available options and with
10 | # --print-defaults to see which it would actually understand and use.
11 | #
12 | # For explanations see
13 | # http://dev.mysql.com/doc/mysql/en/server-system-variables.html
14 |
15 | # This will be passed to all mysql clients
16 | # It has been reported that passwords should be enclosed with ticks/quotes
17 | # escpecially if they contain "#" chars...
18 | # Remember to edit /etc/mysql/debian.cnf when changing the socket location.
19 | [client]
20 | port = 3306
21 | socket = /var/run/mysqld/mysqld.sock
22 |
23 | # Here is entries for some specific programs
24 | # The following values assume you have at least 32M ram
25 |
26 | # This was formally known as [safe_mysqld]. Both versions are currently parsed.
27 | [mysqld_safe]
28 | socket = /var/run/mysqld/mysqld.sock
29 | nice = 0
30 |
31 | [mysqld]
32 | #
33 | # * Basic Settings
34 | #
35 | user = mysql
36 | pid-file = /var/run/mysqld/mysqld.pid
37 | socket = /var/run/mysqld/mysqld.sock
38 | port = 3306
39 | basedir = /usr
40 | datadir = /var/lib/mysql
41 | tmpdir = /tmp
42 | lc-messages-dir = /usr/share/mysql
43 | skip-external-locking
44 | #
45 | # Instead of skip-networking the default is now to listen only on
46 | # localhost which is more compatible and is not less secure.
47 | bind-address = {{ mysql_bind_address }}
48 | #
49 | # * Fine Tuning
50 | #
51 | key_buffer = 16M
52 | max_allowed_packet = 16M
53 | thread_stack = 192K
54 | thread_cache_size = 8
55 | # This replaces the startup script and checks MyISAM tables if needed
56 | # the first time they are touched
57 | myisam-recover = BACKUP
58 | #max_connections = 100
59 | #table_cache = 64
60 | #thread_concurrency = 10
61 | #
62 | # * Query Cache Configuration
63 | #
64 | query_cache_limit = 1M
65 | query_cache_size = 16M
66 | #
67 | # * Logging and Replication
68 | #
69 | # Both location gets rotated by the cronjob.
70 | # Be aware that this log type is a performance killer.
71 | # As of 5.1 you can enable the log at runtime!
72 | #general_log_file = /var/log/mysql/mysql.log
73 | #general_log = 1
74 | #
75 | # Error log - should be very few entries.
76 | #
77 | log_error = /var/log/mysql/error.log
78 | #
79 | # Here you can see queries with especially long duration
80 | #slow_query_log_file = /var/log/mysql/mysql-slow.log
81 | #slow_query_log = 1
82 | #long_query_time = 2
83 | #log_queries_not_using_indexes
84 | #
85 | # The following can be used as easy to replay backup logs or for replication.
86 | # note: if you are setting up a replication slave, see README.Debian about
87 | # other settings you may need to change.
88 | #server-id = 1
89 | #log_bin = /var/log/mysql/mysql-bin.log
90 | expire_logs_days = 10
91 | max_binlog_size = 100M
92 | #binlog_do_db = include_database_name
93 | #binlog_ignore_db = include_database_name
94 | #
95 | # * InnoDB
96 | #
97 | # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
98 | # Read the manual for more InnoDB related options. There are many!
99 | #
100 | # * Security Features
101 | #
102 | # Read the manual, too, if you want chroot!
103 | # chroot = /var/lib/mysql/
104 | #
105 | # For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
106 | #
107 | # ssl-ca=/etc/mysql/cacert.pem
108 | # ssl-cert=/etc/mysql/server-cert.pem
109 | # ssl-key=/etc/mysql/server-key.pem
110 |
111 |
112 |
113 | [mysqldump]
114 | quick
115 | quote-names
116 | max_allowed_packet = 16M
117 |
118 | [mysql]
119 | #no-auto-rehash # faster start of mysql but no tab completition
120 |
121 | [isamchk]
122 | key_buffer = 16M
123 |
124 | #
125 | # * IMPORTANT: Additional settings that can override those from this file!
126 | # The files must end with '.cnf', otherwise they'll be ignored.
127 | #
128 | !includedir /etc/mysql/conf.d/
129 |
--------------------------------------------------------------------------------
/roles/kohadevbox/templates/ports.conf.j2:
--------------------------------------------------------------------------------
1 | # If you just change the port or add more ports here, you will likely also
2 | # have to change the VirtualHost statement in
3 | # /etc/apache2/sites-enabled/000-default.conf
4 |
5 | Listen 80
6 | Listen 8080
7 |
8 |
9 | Listen 443
10 |
11 |
12 |
13 | Listen 443
14 |
15 |
16 | # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
17 |
--------------------------------------------------------------------------------
/roles/kohadevbox/templates/vimrc.local.j2:
--------------------------------------------------------------------------------
1 | "set syntax highlighting on by default
2 | syntax on
3 |
4 | "set default color scheme
5 | colorscheme slate
6 |
7 | "Add line numbers along the left-hand side of the screen
8 | set number
9 |
10 | " size of a hard tabstop
11 | set tabstop=4
12 |
13 | " size of an "indent"
14 | set shiftwidth=4
15 |
16 | " a combination of spaces and tabs are used to simulate tab stops at a width
17 | " other than the (hard)tabstop
18 | set softtabstop=4
19 |
20 | " make "tab" insert indents instead of tabs at the beginning of a line
21 | set smarttab
22 |
23 | " always uses spaces instead of tab characters
24 | set expandtab
25 |
26 | " always show filename at the bottom of the screen
27 | set modeline
28 | set ls=2
29 |
30 | "define :Tidy command to run perltidy on visual selection || entire buffer"
31 | command -range=% -nargs=* Tidy ,!perltidy
32 |
33 | "run :Tidy on entire buffer and return cursor to (approximate) original position"
34 | fun DoTidy()
35 | let Pos = line2byte( line( "." ) )
36 | :Tidy
37 | exe "goto " . Pos
38 | endfun
39 |
40 | "shortcut for normal mode to run on entire buffer then return to current line"
41 | au Filetype perl nmap :call DoTidy()
42 |
43 | "shortcut for visual mode to run on the the current visual selection"
44 | au Filetype perl vmap :Tidy
45 |
46 | " Enable HTML syntax highlighting for Template Toolkit files
47 | au BufRead,BufNewFile *.tt set filetype=html
48 |
49 | "Assuming autoindent and smartindent are set correctly, typing Ctrl + Return between braces will put your cursor where you want it to be.
50 | set autoindent
51 | set cindent
52 |
53 |
54 | " Uncomment the following to have Vim jump to the last position when reopening a file
55 | if has("autocmd")
56 | au BufReadPost * if line("'\"") < 0 && line("'\"") >= line("$")
57 | \| exe "normal! g'\"" | endif
58 | endif
59 |
60 | " If vim-perl is installed, this will allow F2 to comment/uncomment selected
61 | " blocks of code
62 | filetype plugin on
63 | map \cc
64 |
65 | set pastetoggle=
66 |
67 | " Removes trailing spaces
68 | function TrimWhiteSpace()
69 | %s/\s*$//
70 | ''
71 | :endfunction
72 |
73 | set list listchars=trail:.,extends:>
74 | "autocmd FileWritePre * :call TrimWhiteSpace()
75 | "autocmd FileAppendPre * :call TrimWhiteSpace()
76 | "autocmd FilterWritePre * :call TrimWhiteSpace()
77 | "autocmd BufWritePre * :call TrimWhiteSpace()
78 |
79 | map :call TrimWhiteSpace()
80 | map! :call TrimWhiteSpace()
81 |
--------------------------------------------------------------------------------
/site.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # This is the top-level playbook for deploying Koha
3 | - hosts: all
4 | remote_user: vagrant
5 | gather_facts: true
6 |
7 | vars_files:
8 | - vars/defaults.yml
9 | - vars/user.yml
10 |
11 | pre_tasks:
12 | - name: Update apt cache if needed
13 | apt:
14 | update_cache: yes
15 | upgrade: dist
16 | cache_valid_time: 3600
17 | become: yes
18 |
19 | roles:
20 | - kohadevbox
21 |
22 | post_tasks:
23 | - name: Init mlocate database
24 | shell: updatedb
25 | become: yes
26 |
--------------------------------------------------------------------------------
/vars/defaults.yml:
--------------------------------------------------------------------------------
1 | # Default configuration values
2 | ---
3 |
4 | home_dir: /home/vagrant
5 | user: vagrant
6 | group: vagrant
7 |
8 | ssh_key_from_host: false
9 |
10 | sync_repo: false
11 | skip_webinstaller: false
12 | create_admin_user: false
13 | enable_memcached: true
14 | enable_kohadocs: false
15 | sync_kohadocs: false
16 | elasticsearch: false
17 | elasticsearch_version: '5.x'
18 | plack: true
19 |
20 | mana_url: "https://mana-test.koha-community.org"
21 |
22 | remote_debugger: false
23 | remote_debugger_dir: "{{ home_dir }}/dbgp"
24 | remote_debugger_baseurl: "http://downloads.activestate.com/Komodo/releases/11.0.2/remotedebugging/"
25 | remote_debugger_package: "Komodo-PerlRemoteDebugging-11.0.2-90813-linux-x86_64"
26 | remote_debugger_location: "localhost:9000"
27 | remote_debugger_key: "''"
28 |
29 | selenium: false
30 | selenium_url: https://selenium-release.storage.googleapis.com/2.53/selenium-server-standalone-2.53.1.jar
31 |
32 | # Set mysql_engine: mysql | mariadb
33 | mysql_engine: mysql
34 | # Set to "*" to listen on all interfaces
35 | mysql_bind_address: "127.0.0.1"
36 |
37 | koha_official_repo_origin: debian.koha-community.org
38 | koha_official_repo: http://{{ koha_official_repo_origin }}/koha
39 | koha_official_repo_key: http://debian.koha-community.org/koha/gpg.asc
40 | koha_official_repo_distribution: unstable
41 |
42 | koha_custom_repo_origin: apt.abunchofthings.net
43 | koha_custom_repo: '[trusted=yes] http://{{ koha_custom_repo_origin }}/koha-nightly'
44 | koha_custom_repo_has_key: no
45 | koha_custom_repo_key:
46 | koha_custom_repo_distribution: unstable
47 |
48 | koha_use_custom_repo: yes
49 | koha_pin_custom_repo: no
50 |
51 | koha_git_repo: http://git.koha-community.org/koha.git
52 | koha_git_branch: master
53 |
54 | kohadocs_git_repo: https://gitlab.com/koha-community/koha-manual.git
55 | kohadocs_git_branch: master
56 | kohadocs_dir: "{{ home_dir }}/kohadocs"
57 |
58 | koha_dir: "{{ home_dir }}/kohaclone"
59 | koha_instance_name: kohadev
60 | koha_domain: .myDNSname.org
61 | koha_intra_port: 8080
62 | koha_intra_prefix: ""
63 | koha_intra_suffix: "-intra"
64 | koha_opac_port: 80
65 | koha_opac_prefix: ""
66 | koha_opac_suffix: ""
67 | koha_marc_flavour: marc21
68 | koha_zebra_language: en
69 | koha_db_password: password
70 | koha_admin_user: admin
71 | koha_admin_pass: admin
72 |
73 | gitify_repo: https://github.com/mkfifo/koha-gitify.git
74 | gitify_version: master
75 | gitify_dir: "{{ home_dir }}/gitify"
76 |
77 | gitbz_repo: https://github.com/joubu/git-bz.git
78 | gitbz_version: apply_on_cascade
79 | gitbz_dir: "{{ home_dir }}/gitbz"
80 |
81 | release_tools_repo: git://git.koha-community.org/release-tools.git
82 | release_tools_version: master
83 | release_tools_dir: "{{ home_dir }}/release-tools"
84 |
85 | misc4dev_repo: https://gitlab.com/koha-community/koha-misc4dev.git
86 | misc4dev_version: master
87 | misc4dev_dir: "{{ home_dir }}/misc4dev"
88 |
89 | koha_qa_repo: https://gitlab.com/koha-community/qa-test-tools.git
90 | koha_qa_version: master
91 | koha_qa_dir: "{{ home_dir }}/qa-test-tools"
92 |
93 | node_version: node_6.x
94 |
95 | git_email: your_email
96 | git_full_name: "Your Full Name"
97 |
98 | bz_user: your_email
99 | bz_password: your_bz_password
100 |
101 | cpan_mirror: http://cpan.metacpan.org
102 |
103 | extra_tools:
104 | - vim
105 | - byobu
106 | - htop
107 |
108 | editor: vim
109 |
--------------------------------------------------------------------------------
/vars/user.yml.sample:
--------------------------------------------------------------------------------
1 | # Default configuration values
2 | ---
3 |
4 | # home_dir: /home/vagrant
5 | # user: vagrant
6 | # group: vagrant
7 |
8 | # ssh_key_from_host: false
9 |
10 | # sync_repo: false
11 | # skip_webinstaller: false
12 | # create_admin_user: false
13 | # enable_memcached: true
14 | # enable_kohadocs: false
15 | # sync_kohadocs: false
16 | # elasticsearch: false
17 | # elasticsearch_version: '5.x'
18 | # plack: true
19 |
20 | # mana_url: "https://mana-test.koha-community.org"
21 |
22 | # remote_debugger: false
23 | # remote_debugger_dir: "{{ home_dir }}/dbgp"
24 | # remote_debugger_baseurl: "http://downloads.activestate.com/Komodo/releases/11.0.2/remotedebugging/"
25 | # remote_debugger_package: "Komodo-PerlRemoteDebugging-11.0.2-90813-linux-x86_64"
26 | # remote_debugger_location: "localhost:9000"
27 | # remote_debugger_key: "''"
28 |
29 | # selenium: false
30 | # selenium_url: https://selenium-release.storage.googleapis.com/2.53/selenium-server-standalone-2.53.1.jar
31 |
32 | # Set mysql_engine: mysql | mariadb
33 | # mysql_engine: mysql
34 | # Set to "*" to listen on all interfaces
35 | # mysql_bind_address: "127.0.0.1"
36 |
37 | # koha_official_repo_origin: debian.koha-community.org
38 | # koha_official_repo: http://{{ koha_official_repo_origin }}/koha
39 | # koha_official_repo_key: http://debian.koha-community.org/koha/gpg.asc
40 | # koha_official_repo_distribution: unstable
41 |
42 | # koha_custom_repo_origin: apt.abunchofthings.net
43 | # koha_custom_repo: '[trusted=yes] http://{{ koha_custom_repo_origin }}/koha-nightly'
44 | # koha_custom_repo_has_key: no
45 | # koha_custom_repo_key:
46 | # koha_custom_repo_distribution: unstable
47 |
48 | # koha_use_custom_repo: yes
49 | # koha_pin_custom_repo: no
50 |
51 | # koha_git_repo: http://git.koha-community.org/koha.git
52 | # koha_git_branch: master
53 |
54 | # kohadocs_git_repo: https://gitlab.com/koha-community/koha-manual.git
55 | # kohadocs_git_branch: master
56 | # kohadocs_dir: "{{ home_dir }}/kohadocs"
57 |
58 | # koha_dir: "{{ home_dir }}/kohaclone"
59 | # koha_instance_name: kohadev
60 | # koha_domain: .myDNSname.org
61 | # koha_intra_port: 8080
62 | # koha_intra_prefix: ""
63 | # koha_intra_suffix: "-intra"
64 | # koha_opac_port: 80
65 | # koha_opac_prefix: ""
66 | # koha_opac_suffix: ""
67 | # koha_marc_flavour: marc21
68 | # koha_zebra_language: en
69 | # koha_db_password: password
70 | # koha_admin_user: admin
71 | # koha_admin_pass: admin
72 |
73 | # gitify_repo: https://github.com/mkfifo/koha-gitify.git
74 | # gitify_version: master
75 | # gitify_dir: "{{ home_dir }}/gitify"
76 |
77 | # gitbz_repo: https://github.com/joubu/git-bz.git
78 | # gitbz_version: apply_on_cascade
79 | # gitbz_dir: "{{ home_dir }}/gitbz"
80 |
81 | # release_tools_repo: git://git.koha-community.org/release-tools.git
82 | # release_tools_version: master
83 | # release_tools_dir: "{{ home_dir }}/release-tools"
84 |
85 | # misc4dev_repo: https://gitlab.com/koha-community/koha-misc4dev.git
86 | # misc4dev_version: master
87 | # misc4dev_dir: "{{ home_dir }}/misc4dev"
88 |
89 | # koha_qa_repo: https://gitlab.com/koha-community/qa-test-tools.git
90 | # koha_qa_version: master
91 | # koha_qa_dir: "{{ home_dir }}/qa-test-tools"
92 |
93 | # node_version: node_6.x
94 |
95 | # git_email: your_email
96 | # git_full_name: "Your Full Name"
97 |
98 | # bz_user: your_email
99 | # bz_password: your_bz_password
100 |
101 | # cpan_mirror: http://cpan.metacpan.org
102 |
103 | # extra_tools:
104 | # - vim
105 | # - byobu
106 | # - htop
107 |
108 | # editor: vim
109 |
--------------------------------------------------------------------------------