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:
es sind keine persistenten volumes ausgeleitet: man verliert also immer alle Daten…
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 …
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.
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.
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).