docs: generic doocumentation for searx-uwsgi

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
Markus Heiser 2020-03-03 19:57:15 +01:00
parent f25da6070e
commit 3cb7daedb7
4 changed files with 107 additions and 98 deletions

View File

@ -30,6 +30,9 @@ Create user
:start-after: START create user :start-after: START create user
:end-before: END create user :end-before: END create user
install searx & dependencies
============================
Start a interactive shell from new created user and clone searx: Start a interactive shell from new created user and clone searx:
.. include:: ../../build/docs/includes/searx.rst .. include:: ../../build/docs/includes/searx.rst
@ -55,7 +58,6 @@ from the login (*~/.profile*):
Open a second terminal for the configuration tasks and left the ``(searx)$`` Open a second terminal for the configuration tasks and left the ``(searx)$``
terminal open for the tasks below. terminal open for the tasks below.
Configuration Configuration
============== ==============
@ -67,7 +69,6 @@ a name of your choice -- *and/or* edit ``/etc/searx/settings.yml`` if necessary.
:start-after: START searx config :start-after: START searx config
:end-before: END searx config :end-before: END searx config
Check Check
===== =====

View File

@ -4,79 +4,53 @@
uwsgi uwsgi
===== =====
Create the configuration file ``/etc/uwsgi/apps-available/searx.ini`` with this Create the configuration ini-file according to your distribution (see below) and
content: restart the uwsgi application.
.. code:: ini .. tabs::
[uwsgi] .. group-tab:: Ubuntu / debian
# uWSGI core .. literalinclude:: ../../build/docs/includes/searx.rst
# ---------- :start-after: START searx uwsgi-description ubuntu-20.04
# :end-before: END searx uwsgi-description ubuntu-20.04
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core
# Who will run the code
uid = searx
gid = searx
# chdir to specified directory before apps loading
chdir = /usr/local/searx/searx-src/searx
# disable logging for privacy
disable-logging = true
# The right granted on the created socket
chmod-socket = 666
# Plugin to use and interpretor config
single-interpreter = true
# enable master process
master = true
# load apps in each worker instead of the master
lazy-apps = true
# load uWSGI plugins
plugin = python3,http
# By default the Python plugin does not initialize the GIL. This means your
# app-generated threads will not run. If you need threads, remember to enable
# them with enable-threads. Running uWSGI in multithreading mode (with the
# threads options) will automatically enable threading support. This *strange*
# default behaviour is for performance reasons.
enable-threads = true
# plugin: python
# --------------
#
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python
# load a WSGI module
module = searx.webapp
# set PYTHONHOME/virtualenv
virtualenv = /usr/local/searx/searx-pyenv
# add directory (or glob) to pythonpath
pythonpath = /usr/local/searx/searx-src
# plugin http .. group-tab:: Arch Linux
# -----------
#
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http
# Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html .. literalinclude:: ../../build/docs/includes/searx.rst
http = 127.0.0.1:8888 :start-after: START searx uwsgi-description arch
:end-before: END searx uwsgi-description arch
Activate the uwsgi application and restart:
.. code:: sh .. group-tab:: Fedora / RHEL
cd /etc/uwsgi/apps-enabled .. literalinclude:: ../../build/docs/includes/searx.rst
ln -s ../apps-available/searx.ini :start-after: START searx uwsgi-description fedora
/etc/init.d/uwsgi restart :end-before: END searx uwsgi-description fedora
.. tabs::
.. group-tab:: Ubuntu / debian
.. literalinclude:: ../../build/docs/includes/searx.rst
:language: ini
:start-after: START searx uwsgi-appini ubuntu-20.04
:end-before: END searx uwsgi-appini ubuntu-20.04
.. group-tab:: Arch Linux
.. literalinclude:: ../../build/docs/includes/searx.rst
:language: ini
:start-after: START searx uwsgi-appini arch
:end-before: END searx uwsgi-appini arch
.. group-tab:: Fedora / RHEL
.. literalinclude:: ../../build/docs/includes/searx.rst
:language: ini
:start-after: START searx uwsgi-appini fedora
:end-before: END searx uwsgi-appini fedora

View File

@ -708,6 +708,7 @@ uWSGI_GROUP=
# How distros manage uWSGI apps is very different. From uWSGI POV read: # How distros manage uWSGI apps is very different. From uWSGI POV read:
# - https://uwsgi-docs.readthedocs.io/en/latest/Management.html # - https://uwsgi-docs.readthedocs.io/en/latest/Management.html
uWSGI_distro_setup() {
case $DIST_ID-$DIST_VERS in case $DIST_ID-$DIST_VERS in
ubuntu-*|debian-*) ubuntu-*|debian-*)
# init.d --> /usr/share/doc/uwsgi/README.Debian.gz # init.d --> /usr/share/doc/uwsgi/README.Debian.gz
@ -737,6 +738,9 @@ case $DIST_ID-$DIST_VERS in
info_msg "$DIST_ID-$DIST_VERS: uWSGI not yet implemented" info_msg "$DIST_ID-$DIST_VERS: uWSGI not yet implemented"
;; ;;
esac esac
}
uWSGI_distro_setup
uWSGI_restart() { uWSGI_restart() {

View File

@ -645,8 +645,38 @@ rst-doc() {
eval "echo \"$(< ${REPO_ROOT}/docs/build-templates/searx.rst)\"" eval "echo \"$(< ${REPO_ROOT}/docs/build-templates/searx.rst)\""
# I use ubuntu-20.04 here to demonstrate that versions are also suported,
# normaly debian-* and ubuntu-* are most the same.
for DIST_NAME in ubuntu-20.04 arch fedora; do
(
DIST_ID=${DIST_NAME%-*}
DIST_VERS=${DIST_NAME#*-}
[[ $DIST_VERS =~ $DIST_ID ]] && DIST_VERS=
uWSGI_distro_setup
echo -e "\n.. START searx uwsgi-description $DIST_NAME"
echo "location: ${uWSGI_APPS_ENABLED}/${SEARX_UWSGI_APP}"
case $DIST_ID-$DIST_VERS in
ubuntu-*|debian-*)
echo "restart: sudo -H service uwsgi restart ${SEARX_UWSGI_APP%.*}" ;;
arch-*)
echo "restart: sudo -H systemctl restart uwsgi@${SEARX_UWSGI_APP%.*}" ;;
fedora-*)
echo "restart: sudo -H touch ${uWSGI_APPS_ENABLED}/${SEARX_UWSGI_APP}";;
esac
echo -e ".. END searx uwsgi-description $DIST_NAME"
echo -e "\n.. START searx uwsgi-appini $DIST_NAME"
eval "echo \"$(< ${TEMPLATES}/${uWSGI_APPS_AVAILABLE}/${SEARX_UWSGI_APP})\""
echo -e "\n.. END searx uwsgi-appini $DIST_NAME"
)
done
} }
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
main "$@" main "$@"
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------