fieat: sube versión de Koha

This commit is contained in:
aitor c. urrutia aranburu
2026-06-29 19:26:08 +02:00
parent 8124ef30ca
commit 397e816221
57 changed files with 462 additions and 14 deletions

View File

@@ -0,0 +1,60 @@
<acsconfig xmlns="http://openncip.org/acs-config/1.0/">
<!-- above address gets nothing, it's just a namespace -->
<error-detect enabled="true" />
<!--
Set Net::Server::PreFork runtime parameters
syslog_ident will identify SIP2 Koha server entries in syslog
For OpenSolaris, add: syslog_logsock=stream
-->
<server-params
min_servers='1'
min_spare_servers='0'
log_file='Sys::Syslog'
syslog_ident='koha_sip'
syslog_facility='local6'
/>
<listeners>
<!-- vestigial HTTP, never implemented: just use the OPAC!
<service
port="0:8080/tcp"
transport="http"
protocol="NCIP/1.0" />
-->
<service
port="8023/tcp"
transport="telnet"
protocol="SIP/2.00"
timeout="60" />
<service
port="127.0.0.1:6001/tcp"
transport="RAW"
protocol="SIP/2.00"
client_timeout="600"
timeout="60" />
<!--- client_timeout times out active connections which have not received
input from the client. Many persistent connections will send a status request
every 5-7 mins so setting this to less than that will add instability to the connection
if explicitly set to zero, no timeout is applied to the connection.
NB the parameter timeout applies to the login process only and should be set to a lower value
to time out failed connections
-->
</listeners>
<accounts>
${SIP_CONF_ACCOUNTS}
</accounts>
<!--
Institution tags are for enabled branches. There needs to be one
institution stanza for each institution named in the accounts above.
The implementation attribute is actually used to find the code to run,
in our case "ILS".
-->
<institutions>
${SIP_CONF_LIBS}
</institutions>
</acsconfig>

View File

@@ -0,0 +1,4 @@
[client]
host = ${MYSQL_SERVER}
user = root
password = ${MYSQL_PASSWORD}

View File

@@ -0,0 +1,61 @@
# NOTE: for a complete list of valid options please read koha-create(8)
## Apache virtual hosts creation variables
#
# Please note that the URLs are built like this:
# OPAC: http://<OPACPREFIX><INSTANCE NAME><OPACSUFFIX><DOMAIN>:<OPACPORT>
# STAFF: http://<INTRAPREFIX><INSTANCE NAME><INTRASUFFIX><DOMAIN>:<INTRAPORT>
DOMAIN="${KOHA_DOMAIN}"
INTRAPORT="${KOHA_INTRANET_PORT}"
INTRAPREFIX="${KOHA_INTRANET_PREFIX}"
INTRASUFFIX="${KOHA_INTRANET_SUFFIX}"
OPACPORT="${KOHA_OPAC_PORT}"
OPACPREFIX="${KOHA_OPAC_PREFIX}"
OPACSUFFIX="${KOHA_OPAC_SUFFIX}"
## Default data to be loaded
#
# DEFAULTSQL: filename
# Specify an SQL file with default data to load during instance creation
# default: (empty)
DEFAULTSQL=""
## Zebra global configuration variables
#
# ZEBRA_MARC_FORMAT: 'marc21' | 'normarc' | 'unimarc'
# Specifies the MARC records format for indexing
# default: 'marc21'
ZEBRA_MARC_FORMAT="${ZEBRA_MARC_FORMAT}"
# ZEBRA_LANGUAGE: 'cs' | 'en' | 'es' | 'fr' | 'nb' | 'ru' | 'uk'
# Primary language for Zebra indexing
# default: 'en'
ZEBRA_LANGUAGE="${ZEBRA_LANGUAGE}"
# BIBLIOS_INDEXING_MODE: 'dom' | 'grs1'
# Indexing mode for bibliographic records
# default: 'dom'
BIBLIOS_INDEXING_MODE="${BIBLIOS_INDEXING_MODE}"
# AUTHORITIES_INDEXING_MODE: 'dom' | 'grs1'
# Indexing mode for authority records
# default: 'dom'
AUTHORITIES_INDEXING_MODE="${AUTHORITIES_INDEXING_MODE}"
## Memcached global configuration variables
#
# USE_MEMCACHED: 'yes' | 'no'
# Make the created instance use memcached. Can be altered later.
# default: 'no'
USE_MEMCACHED="${USE_MEMCACHED}"
# MEMCACHED_SERVERS: comma separated list of memcached servers (ip:port)
# Specify a list of memcached servers for the Koha instance
# default: '127.0.0.1:11211'
MEMCACHED_SERVERS="${MEMCACHED_SERVERS}"
# MEMCACHED_PREFIX:
# Specify a string to be used as prefix for defining the memcached namespace
# for the created instance.
# default: 'koha_'
MEMCACHED_PREFIX="koha_"

View File

@@ -0,0 +1,12 @@
# /etc/cron.d/koha-common
#
# Call koha-rebuild-zebra for each enabled Koha instance, to make sure the
# Zebra indexes are up to date.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Uncomment the following line if you do not want to use the koha-index-daemon integration
# */5 * * * * root test -x /usr/sbin/koha-rebuild-zebra && koha-rebuild-zebra -q $(koha-list --enabled)
*/15 * * * * root koha-foreach --chdir --enabled --email /usr/share/koha/bin/cronjobs/process_message_queue.pl

33
koha/files/etc/cron.daily/koha Executable file
View File

@@ -0,0 +1,33 @@
#!/bin/sh
# /etc/cron.daily/koha-common -- Daily housekeeping tasks for all Kohas.
# Copyright 2010 Catalyst IT, Ltd
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
koha-foreach --chdir --enabled /usr/share/koha/bin/cronjobs/automatic_renewals.pl -c
koha-foreach --chdir --enabled /usr/share/koha/bin/cronjobs/automatic_checkin.pl
koha-foreach --chdir --enabled /usr/share/koha/bin/cronjobs/recalls/expire_recalls.pl
koha-foreach --chdir --enabled /usr/share/koha/bin/cronjobs/recalls/overdue_recalls.pl
koha-foreach --chdir --enabled /usr/share/koha/bin/cronjobs/fines.pl
koha-foreach --chdir --enabled --email /usr/share/koha/bin/cronjobs/overdue_notices.pl -t
koha-foreach --chdir --enabled --email /usr/share/koha/bin/cronjobs/advance_notices.pl -c
koha-foreach --chdir --enabled /usr/share/koha/bin/cronjobs/serialsUpdate.pl -c
koha-foreach --chdir --enabled /usr/share/koha/bin/cronjobs/membership_expiry.pl -c
koha-foreach --chdir --enabled /usr/share/koha/bin/cronjobs/holds/cancel_expired_holds.pl >/dev/null 2>&1
koha-foreach --chdir --enabled /usr/share/koha/bin/cronjobs/cleanup_database.pl --confirm --sessions --zebraqueue 10 --list-invites --temp-uploads --del-unv-selfreg 14
koha-foreach --chdir --enabled --noemail /usr/share/koha/bin/cronjobs/cleanup_database.pl --confirm --mail
koha-foreach --chdir --enabled /usr/share/koha/bin/cronjobs/holds/auto_unsuspend_holds.pl > /dev/null 2>&1
koha-foreach --chdir --enabled /usr/share/koha/bin/cronjobs/merge_authorities.pl -b
koha-foreach --chdir --enabled /usr/share/koha/bin/cronjobs/plugins_nightly.pl
koha-run-backups --days 2 --output /var/spool/koha

20
koha/files/etc/cron.hourly/koha Executable file
View File

@@ -0,0 +1,20 @@
#!/bin/sh
# /etc/cron.hourly/koha-common -- Hourly housekeeping tasks for all Kohas.
# Copyright 2010 Catalyst IT, Ltd
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
koha-foreach --chdir --enabled /usr/share/koha/bin/cronjobs/holds/build_holds_queue.pl
koha-foreach --chdir --enabled /usr/share/koha/bin/cronjobs/automatic_checkin.pl

View File

@@ -0,0 +1,19 @@
#!/bin/sh
# /etc/cron.monthly/koha-common -- Monthly housekeeping tasks for all Kohas.
# Copyright 2015 Biblibre
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
koha-foreach --chdir --enabled /usr/share/koha/bin/cronjobs/share_usage_with_koha_community.pl

View File

@@ -0,0 +1 @@
default

View File

@@ -0,0 +1 @@
/etc/koha/sites/default/koha-conf.xml

View File

@@ -0,0 +1 @@
/usr/share/koha

View File

@@ -0,0 +1 @@
/usr/share/koha/lib

View File

@@ -0,0 +1,15 @@
/var/log/koha/*/*.log {
rotate 5
weekly
missingok
copytruncate
compress
delaycompress
notifempty
sharedscripts
postrotate
/command/s6-svc -h /run/service/apache2
/command/s6-svc -r /run/service/plack
/command/s6-svc -r /run/service/zebra-indexer
endscript
}

View File

@@ -0,0 +1,7 @@
#!/command/execlineb -P
fdmove -c 2 1
trap { SIGTERM { apache2ctl stop }
SIGHUP { apache2ctl graceful } }
apache2ctl -D "FOREGROUND"

View File

@@ -0,0 +1 @@
longrun

View File

@@ -0,0 +1,3 @@
#!/command/execlineb -P
fdmove -c 2 1
/usr/sbin/cron -f -L 5

View File

@@ -0,0 +1 @@
longrun

View File

@@ -0,0 +1,6 @@
#!/command/execlineb -P
fdmove -c 2 1
s6-envdir /etc/koha-envvars
/usr/bin/starman -M FindBin --socket /var/run/koha/default/plack.sock --max-requests 50 --workers 2 -E deployment --user=default-koha --group=default-koha --access-log /var/log/koha/default/plack.log --error-log /var/log/koha/default/plack-error.log "/etc/koha/plack.psgi"

View File

@@ -0,0 +1 @@
longrun

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/scripts/02-setup-koha.sh

View File

@@ -0,0 +1 @@
bundle

View File

@@ -0,0 +1,9 @@
#!/command/execlineb -P
fdmove -c 2 1
s6-envdir /etc/koha-envvars
s6-setuidgid default-koha
/usr/bin/perl /usr/share/koha/bin/workers/background_jobs_worker.pl --queue long_tasks

View File

@@ -0,0 +1 @@
longrun

View File

@@ -0,0 +1,9 @@
#!/command/execlineb -P
fdmove -c 2 1
s6-envdir /etc/koha-envvars
s6-setuidgid default-koha
/usr/bin/perl /usr/share/koha/bin/workers/background_jobs_worker.pl

View File

@@ -0,0 +1 @@
longrun

View File

@@ -0,0 +1,16 @@
#!/command/execlineb -P
with-contenv
importas -D "" elastic USE_ELASTICSEARCH
if -n { test "${elastic}" = "true" }
redirfd -a 1 /var/log/koha/default/zebra-indexer.log
fdmove -c 2 1
s6-envdir /etc/koha-envvars
s6-setuidgid default-koha
/usr/bin/perl /usr/share/koha/bin/migration_tools/rebuild_zebra.pl -daemon -sleep 5

View File

@@ -0,0 +1 @@
longrun

View File

@@ -0,0 +1,15 @@
#!/command/execlineb -P
with-contenv
importas -D "" elastic USE_ELASTICSEARCH
if -n { test "${elastic}" = "true" }
fdmove -c 2 1
s6-envdir /etc/koha-envvars
s6-setuidgid default-koha
/usr/bin/zebrasrv -v 1 -f /etc/koha/sites/default/koha-conf.xml

View File

@@ -0,0 +1 @@
longrun

View File

@@ -0,0 +1,97 @@
#!/command/with-contenv bash
export KOHA_INSTANCE=default
export KOHA_INTRANET_PORT=8081
export KOHA_OPAC_PORT=8080
export MEMCACHED_SERVERS=${MEMCACHED_SERVERS:-memcached}
export MYSQL_SERVER=${MYSQL_SERVER:-db}
export DB_NAME=${DB_NAME:-koha_default}
export MYSQL_USER=${MYSQL_USER:-koha_default}
export MYSQL_PASSWORD=${MYSQL_PASSWORD:-$(pwgen -s 15 1)}
export ZEBRA_MARC_FORMAT=${ZEBRA_MARC_FORMAT:-marc21}
export KOHA_PLACK_NAME=${KOHA_PLACK_NAME:-koha}
export KOHA_ES_NAME=${KOHA_ES_NAME:-es}
# RabbitMQ settings
export MB_HOST=${MB_HOST:-rabbitmq}
export MB_PORT=${MB_PORT:-61613}
export MB_USER=${MB_USER:-guest}
export MB_PASS=${MB_PASS:-guest}
envsubst < /docker/templates/koha-sites.conf > /etc/koha/koha-sites.conf
# /etc/mysql/koha-common.cnf is used by a few koha scripts
rm /etc/mysql/koha-common.cnf && envsubst < /docker/templates/koha-common.cnf > /etc/mysql/koha-common.cnf
chmod 660 /etc/mysql/koha-common.cnf
# Create entry with admin username, password and myqsl server for this instance
echo -n "default:${MYSQL_USER}:${MYSQL_PASSWORD}:${DB_NAME}:${MYSQL_SERVER}" > /etc/koha/passwd
source /usr/share/koha/bin/koha-functions.sh
MB_PARAMS="--mb-host ${MB_HOST} --mb-port ${MB_PORT} --mb-user ${MB_USER} --mb-pass ${MB_PASS}"
# Configure the elasticsearch server
ES_PARAMS=""
if [[ "${USE_ELASTICSEARCH}" = "true" ]]
then
ES_PARAMS="--elasticsearch-server ${ELASTICSEARCH_HOST}"
fi
if ! is_instance ${KOHA_INSTANCE} || [ ! -f "/etc/koha/sites/${KOHA_INSTANCE}/koha_conf.xml" ]
then
echo "Executing koha-create for instance ${KOHA_INSTANCE}"
koha-create ${ES_PARAMS} ${MB_PARAMS} --use-db ${KOHA_INSTANCE} | true
else
echo "Creating directory structure"
koha-create-dirs ${KOHA_INSTANCE}
fi
# Configure search daemon
if [ "${USE_ELASTICSEARCH}" = "true" ]
then
koha-elasticsearch --rebuild -p $(grep -c ^processor /proc/cpuinfo) ${KOHA_INSTANCE} &
fi
for i in $(koha-translate -l)
do
if [ "${KOHA_LANGS}" = "" ] || ! echo "${KOHA_LANGS}"|grep -q -w $i
then
echo "Removing language $i"
koha-translate -r $i
else
echo "Checking language $i"
koha-translate -c $i
fi
done
if [ "${KOHA_LANGS}" != "" ]
then
echo "Installing languages"
LANGS=$(koha-translate -l)
for i in $KOHA_LANGS
do
if ! echo "${LANGS}"|grep -q -w $i
then
echo "Installing language $i"
koha-translate -i $i
else
echo "Language $i already present"
fi
done
fi
koha-plack --enable ${KOHA_INSTANCE}
a2enmod proxy
# Prevent Plack from throwing permission errors
touch /var/log/koha/${KOHA_INSTANCE}/opac-error.log /var/log/koha/${KOHA_INSTANCE}/intranet-error.log
chown -R ${KOHA_INSTANCE}-koha:${KOHA_INSTANCE}-koha /var/log/koha/${KOHA_INSTANCE}/
service apache2 stop
koha-indexer --stop ${KOHA_INSTANCE}
koha-zebra --stop ${KOHA_INSTANCE}
koha-worker --stop ${KOHA_INSTANCE}
koha-email-enable ${KOHA_INSTANCE}