[Koha] Step by step guide to enable REST API koha 20.11

Javi Legido javi at legido.com
Sat Mar 27 01:48:31 NZDT 2021


Good afternoon.

Many thanks, it worked like a charm!

I'll post the steps at the end of this e-mail. Regarding
koha-testing-docker I've just tried now and it gave me an error, maybe I'll
fill a bug, but thanks in advance.

Steps with buster.

buster
koha 20.11

docker stop test && docker rm test
docker run \
  --name test \
  --cap-add=SYS_NICE \
  --cap-add=DAC_READ_SEARCH \
  -p 8080:8080 \
  -p 80:80 \
  -d debian:buster \
bin/sh -c "while true; do echo hello world; sleep 1; done"
docker exec -ti test bash

apt-get update && apt-get install -y \
  wget \
  gnupg

wget -q -O- https://debian.koha-community.org/koha/gpg.asc | apt-key add -

echo 'deb http://debian.koha-community.org/koha stable main' | tee
/etc/apt/sources.list.d/koha.list

apt-get update && apt-get install -y \
  koha-common \
  mariadb-server

service mysql start

a2enmod rewrite \
  cgi \
  headers \
  proxy_http \
  && a2dissite 000-default

koha-create --create-db mykoha

koha-plack --enable mykoha

koha-plack --start mykoha

service apache2 restart

GUI install

docker exec -ti test koha-passwd mykoha

http://mykoha-intra.mydnsname.org

koha_mykoha
*****

http://mykoha-intra.mydnsname.org/api/v1/.html

Voila!

On Fri, 26 Mar 2021 at 12:50, Tomas Cohen Arazi <tomascohen at gmail.com>
wrote:

> Those look correct.
>
> Have you seen koha-testing-docker?
>
> Kind regards
>
> El vie, 26 mar 2021 a las 8:44, Javier Legido at Kedu (<
> javier.legido at kedu.coop>) escribió:
>
>> Good morning.
>>
>> Many thanks for your quick reply Tomas.
>>
>> I will do the test with stable debian version just right now, but maybe
>> you (or someone else) can confirm or discard if the provided steps are
>> accurate in order to get the REST API up and running.
>>
>> Thanks.
>>
>> --
>>
>> Javier Legido Martínez
>> javier.legido at kedu.coop
>> +34 600 840 948
>>
>> Kedu SCCL
>> https://kedu.coop
>> info at kedu.coop
>>
>> On Fri, 26 Mar 2021 at 12:36, Tomas Cohen Arazi <tomascohen at gmail.com>
>> wrote:
>>
>>> Hi, we don't support Debian testing (things change often regarding
>>> dependencies and available packages).
>>>
>>> Please use the debian:buster image instead.
>>>
>>> Kind regards
>>>
>>> El vie., 26 mar. 2021 1:50, Javi Legido <javi at legido.com> escribió:
>>>
>>>> Hi there.
>>>>
>>>> I would like to enable REST API, but so far i got 404 while trying to
>>>> access:
>>>>
>>>> http://mykoha-intra.mydnsname.org/api/v1/.html
>>>>
>>>> http://mykoha.myDNSname.org/api/v1/.html
>>>>
>>>> I enabled below options:
>>>>
>>>>  OPACBaseURL => http://mykoha.myDNSname.org
>>>>  OpacPublic
>>>>  RESTBasicAuth
>>>>  RESTOAuth2ClientCredentials
>>>>  RESTPublicAnonymousRequests
>>>>  RESTPublicAPI
>>>>
>>>> I see below errors in '/var/log/koha/mykoha/plack.log':
>>>>
>>>> 172.17.0.1 - - [26/Mar/2021:04:42:52 +0000] "GET /api/v1/
>>>> app.pl/api/v1/.html
>>>> HTTP/1.1" 404 - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:78.0)
>>>> Gecko/20100101 Firefox/78.0"
>>>>
>>>> Many thanks in advice.
>>>>
>>>> Now verbose things, configuration files and step by step ways to
>>>> reproduce
>>>> the issue:
>>>>
>>>> 1. Configuration files
>>>>
>>>> /etc/apache2/sites-enabled/mykoha.conf
>>>>
>>>> # Koha instance mykoha Apache config.
>>>>
>>>> # OPAC
>>>> <VirtualHost *:80>
>>>>   <IfVersion >= 2.4>
>>>>    Define instance "mykoha"
>>>>   </IfVersion>
>>>>    Include /etc/koha/apache-shared.conf
>>>> #  Include /etc/koha/apache-shared-disable.conf
>>>>   Include /etc/koha/apache-shared-opac-plack.conf
>>>>    Include /etc/koha/apache-shared-opac.conf
>>>>
>>>>    ServerName mykoha.myDNSname.org
>>>>    SetEnv KOHA_CONF "/etc/koha/sites/mykoha/koha-conf.xml"
>>>>    AssignUserID mykoha-koha mykoha-koha
>>>>
>>>>    ErrorLog    /var/log/koha/mykoha/opac-error.log
>>>> #  TransferLog /var/log/koha/mykoha/opac-access.log
>>>> </VirtualHost>
>>>>
>>>> # Intranet
>>>> <VirtualHost *:80>
>>>>   <IfVersion >= 2.4>
>>>>    Define instance "mykoha"
>>>>   </IfVersion>
>>>>    Include /etc/koha/apache-shared.conf
>>>> #  Include /etc/koha/apache-shared-disable.conf
>>>>   Include /etc/koha/apache-shared-intranet-plack.conf
>>>>    Include /etc/koha/apache-shared-intranet.conf
>>>>
>>>>    ServerName mykoha-intra.myDNSname.org
>>>>    SetEnv KOHA_CONF "/etc/koha/sites/mykoha/koha-conf.xml"
>>>>    AssignUserID mykoha-koha mykoha-koha
>>>>
>>>>    ErrorLog    /var/log/koha/mykoha/intranet-error.log
>>>> #  TransferLog /var/log/koha/mykoha/intranet-access.log
>>>> </VirtualHost>
>>>>
>>>> /etc/koha/apache-shared-opac-plack.conf
>>>>
>>>> # Apache configuration settings that are shared for every Koha instance.
>>>> # This file contains settings for the Plack configuration of the OPAC.
>>>> #
>>>> # This file should be included from an instance's
>>>> # /etc/apache2/site-available file, from within the VirtualHost section
>>>> # for the OPAC.
>>>>
>>>> # Plack is only available out-of-the-box for Apache 2.4.7+ setups
>>>> <IfVersion >= 2.4.8>
>>>>     <IfModule mod_proxy_http.c>
>>>>
>>>>         ProxyPreserveHost On
>>>>
>>>>         RequestHeader set X-FORWARDED-PROTO "https" env=HTTPS
>>>>
>>>>         # Point the OPAC site to Plack
>>>>         ProxyPass /index.html
>>>> "unix:/var/run/koha/${instance}/plack.sock|
>>>> http://localhost/opac/opac-main.pl"
>>>>         ProxyPassReverse /index.html
>>>> "unix:/var/run/koha/${instance}/plack.sock|
>>>> http://localhost/opac/opac-main.pl"
>>>>         ProxyPass /cgi-bin/koha
>>>> "unix:/var/run/koha/${instance}/plack.sock|
>>>> http://localhost/opac"
>>>>         ProxyPassReverse /cgi-bin/koha
>>>> "unix:/var/run/koha/${instance}/plack.sock|http://localhost/opac"
>>>>
>>>>         # Point the /api endpoint to Plack
>>>>         RewriteCond %{REQUEST_URI} !^/api/v[0-1]+/app.pl
>>>>         RewriteRule ^/api/(v[0-9]+)/(.*)$ /api/$1/app.pl/api/$1/$2
>>>> [L,PT]
>>>>
>>>>         ProxyPass /api "unix:/var/run/koha/${instance}/plack.sock|
>>>> http://localhost/api"
>>>>         ProxyPassReverse /api
>>>> "unix:/var/run/koha/${instance}/plack.sock|
>>>> http://localhost/api"
>>>>
>>>>     </IfModule>
>>>> </IfVersion>
>>>>
>>>> /etc/koha/apache-shared-intranet-plack.conf
>>>>
>>>> # Apache configuration settings that are shared for every Koha instance.
>>>> # This file contains settings for the Plack configuration of the
>>>> intranet.
>>>> #
>>>> # This file should be included from an instance's
>>>> # /etc/apache2/site-available file, from within the VirtualHost section
>>>> # for the intranet.
>>>>
>>>> # Plack is only available out-of-the-box for Apache 2.4.8+ setups
>>>> <IfVersion >= 2.4.8>
>>>>     <IfModule mod_proxy_http.c>
>>>>
>>>>         # FIXME: These scripts should be fixed so they
>>>>         # don't break under plack/starman
>>>>         ProxyPass "/cgi-bin/koha/offline_circ/process_koc.pl" "!"
>>>>         ProxyPass "/cgi-bin/koha/tools/background-job-progress.pl" "!"
>>>>         ProxyPass "/cgi-bin/koha/tools/batchMod.pl" "!"
>>>>         ProxyPass "/cgi-bin/koha/tools/export.pl" "!"
>>>>         ProxyPass "/cgi-bin/koha/tools/manage-marc-import.pl" "!"
>>>>         ProxyPass "/cgi-bin/koha/tools/stage-marc-import.pl" "!"
>>>>         ProxyPass "/cgi-bin/koha/tools/upload-cover-image.pl" "!"
>>>>         ProxyPass "/cgi-bin/koha/svc/cataloguing/metasearch" "!"
>>>>
>>>>         ProxyPreserveHost On
>>>>
>>>>         RequestHeader set X-FORWARDED-PROTO "https" env=HTTPS
>>>>
>>>>         # Point the intranet site to Plack
>>>>         ProxyPass /index.html
>>>> "unix:/var/run/koha/${instance}/plack.sock|
>>>> http://localhost/intranet/mainpage.pl"
>>>>         ProxyPassReverse /index.html
>>>> "unix:/var/run/koha/${instance}/plack.sock|
>>>> http://localhost/intranet/mainpage.pl"
>>>>         ProxyPass /cgi-bin/koha
>>>> "unix:/var/run/koha/${instance}/plack.sock|
>>>> http://localhost/intranet"
>>>>         ProxyPassReverse /cgi-bin/koha
>>>> "unix:/var/run/koha/${instance}/plack.sock|http://localhost/intranet"
>>>>
>>>>         # Point the /api endpoint to Plack
>>>>         RewriteCond %{REQUEST_URI} !^/api/v[0-1]+/app.pl
>>>>         RewriteRule ^/api/(v[0-9]+)/(.*)$ /api/$1/app.pl/api/$1/$2
>>>> [L,PT]
>>>>
>>>>         ProxyPass /api "unix:/var/run/koha/${instance}/plack.sock|
>>>> http://localhost/api"
>>>>         ProxyPassReverse /api
>>>> "unix:/var/run/koha/${instance}/plack.sock|
>>>> http://localhost/api"
>>>>
>>>>     </IfModule>
>>>> </IfVersion>
>>>>
>>>> 2. Step by step way to reproduce the issue
>>>>
>>>> docker stop test && docker rm test
>>>> docker run \
>>>>   --name test \
>>>>   --cap-add=SYS_NICE \
>>>>   --cap-add=DAC_READ_SEARCH \
>>>>   -p 8080:8080 \
>>>>   -p 80:80 \
>>>>   -d debian:testing \
>>>> bin/sh -c "while true; do echo hello world; sleep 1; done"
>>>> docker exec -ti test bash
>>>>
>>>> apt-get update && apt-get install -y \
>>>>   wget \
>>>>   gnupg
>>>>
>>>> wget -q -O- https://debian.koha-community.org/koha/gpg.asc | apt-key
>>>> add -
>>>>
>>>> echo 'deb http://debian.koha-community.org/koha stable main' | tee
>>>> /etc/apt/sources.list.d/koha.list
>>>>
>>>> apt-get update && apt-get install -y \
>>>>   koha-common \
>>>>   mariadb-server
>>>>
>>>> service mariadb start
>>>>
>>>> a2enmod rewrite \
>>>>   cgi \
>>>>   headers \
>>>>   proxy_http \
>>>>   && a2dissite 000-default
>>>>
>>>> service apache2 restart
>>>>
>>>> koha-create --create-db mykoha
>>>>
>>>> koha-plack --enable mykoha
>>>>
>>>> koha-plack --start mykoha
>>>>
>>>> service apache2 restart
>>>> _______________________________________________
>>>>
>>>> Koha mailing list  http://koha-community.org
>>>> Koha at lists.katipo.co.nz
>>>> Unsubscribe: https://lists.katipo.co.nz/mailman/listinfo/koha
>>>>
>>>
>
> --
> Tomás Cohen Arazi
> Theke Solutions (http://theke.io)
> ✆ +54 9351 3513384
> GPG: B2F3C15F
>


More information about the Koha mailing list