mirror of
https://github.com/lrnselfreliance/wrolpi.git
synced 2026-10-26 19:01:39 -04:00
- Replace nginx with Caddy as the web server for both Docker and native (RPi/Debian) deployments. Caddy handles HTTPS termination, reverse proxying to all services (API, React app, Controller, Kiwix, Help, Map), and serves the media/download file browsers. - Generate a Root CA and signed leaf certificates for HTTPS. The Root CA uses Name Constraints to restrict signing to local addresses only (.local, localhost, and RFC 1918 private IP ranges), mitigating MITM risk if the CA key is compromised. - Add an HTTP landing page that guides users through one-time CA certificate installation on iOS, Android, macOS, Windows, Linux, and Firefox, with auto-redirect when the cert is already trusted. - Add trailing-slash redirects for /controller, /docs, /media, and /download so bare paths don't fall through to the React catch-all. - Add a Root CA download link on the Settings page under Configs. - Update help.sh diagnostics for IPv6 listener detection and HTTP/2 status codes. - Remove all nginx config files and the https_proxy Docker container. - Bump wrolpi-help submodule with certificate documentation.
27 lines
870 B
Bash
Executable file
27 lines
870 B
Bash
Executable file
#! /usr/bin/env bash
|
|
# This file imports all *.zim files in the Zim media directory, then starts kiwix-serve.
|
|
|
|
[ ! -d /media/wrolpi ] && echo "Cannot start kiwix without media directory mounted" && exit 1
|
|
|
|
LIBRARY=/media/wrolpi/zims/library.xml
|
|
|
|
# Wait for the zims directory to be mounted.
|
|
COUNT=0
|
|
while [ ${COUNT} -lt 30 ]; do
|
|
if [ -d /media/wrolpi/zims ]; then
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
# Create the zim directory, if necessary.
|
|
[ ! -d /media/wrolpi/zims ] && mkdir /media/wrolpi/zims
|
|
# We will replace the library file.
|
|
rm -f ${LIBRARY}
|
|
# Find all Zim files and import them.
|
|
find /media/wrolpi/zims -iname '*.zim' -exec kiwix-manage ${LIBRARY} add {} \;
|
|
|
|
[ ! -f ${LIBRARY} ] && echo "Could not find any Zim files to import" && exit 2
|
|
|
|
# Serve HTTP kiwix on 9085. Caddy will serve HTTPS on 8085.
|
|
kiwix-serve --library ${LIBRARY} --address 0.0.0.0 --port 9085
|