├── .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 | --------------------------------------------------------------------------------