Koha fuer die Schule

Hallo zusammen,

ich will koha für die Schule installieren: am liebsten in docker, weil die Schule, seit wir von BelWü weggezwungen wurden, nurnoch sehr wenige externe IPs hat. Deswegen will ich das auf unserem docker server hinter einem ReverseProxy laufen lassen.
Ich such schon mehrere Tage, finde aber nur docker Umgebungen von Koha, die nur für Testing vorgesehen sind. Alle diese Umgebunden haben die gleichen zwei Fehler:

  1. es sind keine persistenten volumes ausgeleitet: man verliert also immer alle Daten…
  2. sie sind alle veraltet und werden nicht weitergeführt.

Ist Koha selbst tot? Oder nur die Dockerableger?

Jetzt muss ich wohl koha auf einem eigenen Server installieren und den hinter den ReverseProxy stecken … hatte ich eigentlich keine Lust drauf …

LG
Holger

Habe auch Interesse…

obwohl ich schon gegen Perpustakaka verloren habe, was die Schulbücher angeht…

Moin Holger,

kenn das Programm jetzt nicht, aber auf den ersten Blick siehts doch so aus, als würden die auch nur die Paketinstallation unterstützen: Download Koha – Official Website of Koha Library Software

Da die ja selbst noch News veröffentlichen, glaub ich schon dass das eigentliche Projekt noch am leben ist.

Wo hast du denn das Docker-Image gefunden? Die vom docker-hub sind glaub eher für die Entwickler, soweit ich das erkennen kann.
Timo

Hi Holger,
ich mache das ja genauso mit diversen Stand-alone-diensten und habe das aber trotzdem „scheinbar“ im docker-container:

Was ich da mache: (WARNUNG, Hack!)

  • ich stecke einen dummy container auf den docker host und leite den Verkehr weiter.
  • Der Grund bei mir ist, dass (noch) mein SSL und mein reverse proxy je in einem dockercontainer selbst laufen und viel automatisch machen.
--- Firewall --- dockerhost --- nginx(docker) -+- nextcloud(docker)
                                               +- BBB-Frontend(docker)
                                               +- usw....
                                               +- server-dummy(docker) --- 10.16.1.1:443(schulkonsole mit eigenem ssl)
                                               +- git-dummy(docker) --- 172.16.17.1:443(gitlab mit eigenem ssl)
                                               +- blog-dummy(docker) --- 172.16.17.2:80(wordpress ohne ssl)

Die Konfiguration zum „-dummy“ Dockercontainer ist dann simpel. Der NGINX-Proxy-Container weiß, dass er zu einem „UPSTREAM“ host proxien muss.

Das ganze ist aber nur deswegen sinnig, weil durch den docker-start der dummy-container automatisch ein SSL-ZErtifitkat erstellt wird und weil ich ja keinen zweiten nginx auf dem dockerhost laufen lassen kann.

Hier ein dummy docker-compose.yml inkl. proxy + ssl-companion + git-ext + wordpress-ext

## Proxy
##
services:
  proxy:
    container_name: proxy
    restart: always
    image: nginxproxy/nginx-proxy:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ./proxy/certs:/etc/nginx/certs:ro
      - ./proxy/vhost.d:/etc/nginx/vhost.d
      - ./proxy/html:/usr/share/nginx/html
#      - /srv/docker/nginx/custom.conf:/etc/nginx/conf.d/my_proxy.conf:ro      # if you need a custom global nginx configuration
      - ./proxy/nginx.tmpl:/app/nginx.tmpl                           # if you need a custom (global) nginx template
    labels:
      - "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy"

##
## Letsencrypt
##
  proxy-le:
    container_name: proxy-le
    restart: always
    #image: nginxproxy/acme-companion:latest
    image: humbihupf/acme-companion:working
    volumes:
      - ./proxy/certs:/etc/nginx/certs:rw
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./proxy/acme:/etc/acme.sh
      - ./proxy/vhost.d:/etc/nginx/vhost.d
      - ./proxy/html:/usr/share/nginx/html
      - ./proxy/nginx.tmpl:/app/nginx.tmpl                           # if you need a custom (global) nginx template

##
## SSL-Termination für Gitlab
##
  git-ext:
    container_name: git-ext
    image: python:3.7-slim
    restart: always
    command: tail -f /dev/null
    environment:
      - "VIRTUAL_HOST=git.meine-domain.de"
      - "VIRTUAL_PORT=443"
      - "VIRTUAL_PROTO=https"
      - "UPSTREAM_NAME=172.16.17.1"
      - "LETSENCRYPT_HOST=git.meine-domain.de"
      - "LETSENCRYPT_EMAIL=admin@meine-domain.de"
      #- "LETSENCRYPT_TEST=true"

##
## SSL-Termination für Blogserver
##
  blog-ext:
    container_name: blog-ext
    image: python:3.7-slim
    restart: always
    command: tail -f /dev/null
    environment:
      VIRTUAL_HOST: blog.meine-domain.de
      VIRTUAL_PORT: 80
      VIRTUAL_PROTO: http
      UPSTREAM_NAME: "172.16.17.2"
      LETSENCRYPT_HOST: blog.meine-domain.de
      LETSENCRYPT_EMAIL: admin@meine-domain.de
      #LETSENCRYPT_TEST: "true"

ACHTUNG!
Das ganze basiert vor allem für die beschriebenen dummy-container darauf, dass man ein UPSTREAM_NAME definieren kann und dieses vom nginx explizit verstanden werden muss…
Das ist leider ein Hack, für den es viel Zustimmung in github zum nginx-proxy-docker-container gibt, der aber ein Hack bleiben wird, weil der Entwickler sagt, dass nginxproxy/nginx-proxy:latest nur proxy für echte dockercontainer sein sollten.

Ich kann mir noch Alternativen vorstellen:

  • traefik als docker-SSL-Termination-Reverse-proxy - wenn der regulär externe Ziele zulässt.
  • nginx + SSL aus dem docker-container umfeld lösen: man verliert den container-automatismus für SSL und muss das durch certbot/dehydrated etc. ersetzen, man muss sich mehr über Netzwerke Gedanken machen, in denen einzelne dockercontainer stecken sollen.

VG, Tobias

Hallo Holger,

nur die Dockerableger werden aktuell nicht gepflegt. Koha an sich ist auch für große Institutionen ausgelegt. Damit kannste mehrere Stadt- und Universitätsbibliotheken verwalten.

Hab ich mal für 'ne mittelgroße gewerbliche Schule eingerichtet → wurde als „für unsere Zwecke zu komplex“ eingestuft.

Gruß
Thomas

wenn Du auf deren (bzw. dessen, ist eine OneManShow) Seite guckst, siehst Du, dass man mittlerweile den Quellcode bekommt. Meine Vermutung: der gute geht in Rente und möchte sein Projekt am Leben erhalten. Ich hoffe nicht, dass das demnächst den Bach runtergeht…

Deshalb haben wir auf Koha (ohne Docker) gewechselt (kam ich einfach nicht auf die Idee).

LG
Max