mirror of
https://github.com/searxng/searxng.git
synced 2025-07-15 01:09:21 +02:00
docs: generic documentation from the installation scripts
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
parent
491cb95a1f
commit
c3e4753ce9
13 changed files with 484 additions and 241 deletions
|
@ -7,8 +7,12 @@ Administrator documentation
|
|||
:caption: Contents
|
||||
|
||||
installation
|
||||
installation-searx
|
||||
installation-uwsgi
|
||||
installation-nginx
|
||||
installation-apache
|
||||
installation-docker
|
||||
update-searx
|
||||
settings
|
||||
api
|
||||
architecture
|
||||
|
|
28
docs/admin/installation-docker.rst
Normal file
28
docs/admin/installation-docker.rst
Normal file
|
@ -0,0 +1,28 @@
|
|||
.. _installation docker:
|
||||
|
||||
===================
|
||||
Docker installation
|
||||
===================
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
Make sure you have installed Docker. For instance, you can deploy searx like this:
|
||||
|
||||
.. code:: sh
|
||||
|
||||
docker pull wonderfall/searx
|
||||
docker run -d --name searx -p $PORT:8888 wonderfall/searx
|
||||
|
||||
Go to ``http://localhost:$PORT``.
|
||||
|
||||
See https://hub.docker.com/r/wonderfall/searx/ for more informations. It's also
|
||||
possible to build searx from the embedded Dockerfile.
|
||||
|
||||
.. code:: sh
|
||||
|
||||
git clone https://github.com/asciimoo/searx.git
|
||||
cd searx
|
||||
docker build -t whatever/searx .
|
85
docs/admin/installation-searx.rst
Normal file
85
docs/admin/installation-searx.rst
Normal file
|
@ -0,0 +1,85 @@
|
|||
.. _installation basic:
|
||||
|
||||
=========================
|
||||
Step by step installation
|
||||
=========================
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
Step by step installation with virtualenv. For Ubuntu, be sure to have enable
|
||||
universe repository.
|
||||
|
||||
Install packages
|
||||
================
|
||||
|
||||
.. include:: ../../build/docs/includes/searx.rst
|
||||
:start-after: START distro-packages
|
||||
:end-before: END distro-packages
|
||||
|
||||
.. hint::
|
||||
|
||||
This installs also the packages needed by :ref:`searx uwsgi`
|
||||
|
||||
Create user
|
||||
===========
|
||||
|
||||
.. include:: ../../build/docs/includes/searx.rst
|
||||
:start-after: START create user
|
||||
:end-before: END create user
|
||||
|
||||
Start a interactive shell from new created user and clone searx:
|
||||
|
||||
.. include:: ../../build/docs/includes/searx.rst
|
||||
:start-after: START clone searx
|
||||
:end-before: END clone searx
|
||||
|
||||
In the same shell create *virtualenv*:
|
||||
|
||||
.. include:: ../../build/docs/includes/searx.rst
|
||||
:start-after: START create virtualenv
|
||||
:end-before: END create virtualenv
|
||||
|
||||
To install searx's dependencies, exit the searx *bash* session you opened above
|
||||
and restart a new. Before install, first check if your *virualenv* was sourced
|
||||
from the login (*~/.profile*):
|
||||
|
||||
.. include:: ../../build/docs/includes/searx.rst
|
||||
:start-after: START manage.sh update_packages
|
||||
:end-before: END manage.sh update_packages
|
||||
|
||||
.. tip::
|
||||
|
||||
Open a second terminal for the configuration tasks and left the ``(searx)$``
|
||||
terminal open for the tasks below.
|
||||
|
||||
|
||||
Configuration
|
||||
==============
|
||||
|
||||
Create a copy of the :origin:`searx/settings.yml` configuration file in system's
|
||||
*/etc* folder. Configure like shown below -- replace ``searx@\$(uname -n)`` with
|
||||
a name of your choice -- *and/or* edit ``/etc/searx/settings.yml`` if necessary.
|
||||
|
||||
.. include:: ../../build/docs/includes/searx.rst
|
||||
:start-after: START searx config
|
||||
:end-before: END searx config
|
||||
|
||||
|
||||
Check
|
||||
=====
|
||||
|
||||
To check your searx setup, optional enable debugging and start the *webapp*.
|
||||
Searx looks at the exported environment ``$SEARX_SETTINGS_PATH`` for a
|
||||
configuration file.
|
||||
|
||||
.. include:: ../../build/docs/includes/searx.rst
|
||||
:start-after: START check searx installation
|
||||
:end-before: END check searx installation
|
||||
|
||||
If everything works fine, hit ``[CTRL-C]`` to stop the *webapp* and disable the
|
||||
debug option in ``settings.yml``. You can now exit searx user bash (enter exit
|
||||
command twice). At this point searx is not demonized; uwsgi allows this.
|
||||
|
82
docs/admin/installation-uwsgi.rst
Normal file
82
docs/admin/installation-uwsgi.rst
Normal file
|
@ -0,0 +1,82 @@
|
|||
.. _searx uwsgi:
|
||||
|
||||
=====
|
||||
uwsgi
|
||||
=====
|
||||
|
||||
Create the configuration file ``/etc/uwsgi/apps-available/searx.ini`` with this
|
||||
content:
|
||||
|
||||
.. code:: ini
|
||||
|
||||
[uwsgi]
|
||||
|
||||
# uWSGI core
|
||||
# ----------
|
||||
#
|
||||
# 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
|
||||
# -----------
|
||||
#
|
||||
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http
|
||||
|
||||
# Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html
|
||||
http = 127.0.0.1:8888
|
||||
|
||||
Activate the uwsgi application and restart:
|
||||
|
||||
.. code:: sh
|
||||
|
||||
cd /etc/uwsgi/apps-enabled
|
||||
ln -s ../apps-available/searx.ini
|
||||
/etc/init.d/uwsgi restart
|
||||
|
||||
|
|
@ -4,234 +4,63 @@
|
|||
Installation
|
||||
============
|
||||
|
||||
.. sidebar:: Searx server setup
|
||||
*You're spoilt for choice*, choose your preferred method of installation.
|
||||
|
||||
- :ref:`installation nginx`
|
||||
- :ref:`installation apache`
|
||||
- :ref:`installation docker`
|
||||
- `Installation scripts`_
|
||||
- :ref:`installation basic`
|
||||
|
||||
If you do not have any special preferences, it is recommend to use
|
||||
:ref:`searx.sh`.
|
||||
The :ref:`installation basic` is good enough for intranet usage and it is a
|
||||
excellent illustration of *how a searx instance is build up*. If you place your
|
||||
instance public to the internet you should really consider to install a
|
||||
:ref:`filtron reverse proxy <filtron.sh>` and for privacy a :ref:`result proxy
|
||||
<morty.sh>` is mandatory.
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
Therefore, if you do not have any special preferences, its recommend to use the
|
||||
:ref:`installation docker` or the `Installation scripts`_ from our :ref:`tooling
|
||||
box <toolboxing>` as described below.
|
||||
|
||||
.. _installation basic:
|
||||
|
||||
Basic installation
|
||||
==================
|
||||
Installation scripts
|
||||
====================
|
||||
|
||||
Step by step installation with virtualenv. For Ubuntu, be sure to have enable
|
||||
universe repository.
|
||||
The following will install a setup as shown in :ref:`architecture`. First you
|
||||
need to get a clone. The clone is only needed for the installation procedure
|
||||
and some maintenance tasks (alternatively you can create your own fork).
|
||||
|
||||
Install packages:
|
||||
.. code:: bash
|
||||
|
||||
.. tabs::
|
||||
$ cd ~/Download
|
||||
$ git clone https://github.com/asciimoo/searx searx
|
||||
$ cd searx
|
||||
|
||||
.. group-tab:: Ubuntu / debian
|
||||
.. hint::
|
||||
|
||||
.. code-block:: sh
|
||||
The *tooling box* is not yet merged into `asciimoo/searx master
|
||||
<https://github.com/asciimoo/searx>`_. As long as PR is not merged, you need
|
||||
to merge the PR into your local clone (see below). The discussion takes
|
||||
place in :pull:`1803`. To merge the :pull:`1803` in your local branch use:
|
||||
|
||||
$ sudo -H apt-get install -m \
|
||||
git build-essential
|
||||
libxslt-dev python3-dev python3-babel python3-venv \
|
||||
zlib1g-dev libffi-dev libssl-dev
|
||||
.. code:: bash
|
||||
|
||||
Install searx:
|
||||
$ git pull origin refs/pull/1803/head
|
||||
|
||||
.. code:: sh
|
||||
**Install** :ref:`searx service <searx.sh>`
|
||||
|
||||
sudo -H useradd searx --system --disabled-password -d /usr/local/searx
|
||||
sudo -H usermod -a -G shadow searx
|
||||
cd /usr/local/searx
|
||||
sudo -H git clone https://github.com/asciimoo/searx.git searx-src
|
||||
sudo -H chown searx:searx -R /usr/local/searx
|
||||
This installs searx as described in :ref:`installation basic`.
|
||||
|
||||
Install virtualenv:
|
||||
.. code:: bash
|
||||
|
||||
.. code:: sh
|
||||
$ sudo -H ./utils/searx.sh install all
|
||||
|
||||
sudo -H -u searx -i
|
||||
(searx)$ python3 -m venv searx-pyenv
|
||||
(searx)$ echo 'source ~/searx-pyenv/bin/activate' > ~/.profile
|
||||
**Install** :ref:`filtron reverse proxy <filtron.sh>`
|
||||
|
||||
Exit the searx bash and restart a new to install the searx dependencies:
|
||||
.. code:: bash
|
||||
|
||||
.. code:: sh
|
||||
$ sudo -H ./utils/filtron.sh install all
|
||||
|
||||
sudo -H -u searx -i
|
||||
(searx)$ cd searx-src
|
||||
(searx)$ ./manage.sh update_packages
|
||||
**Install** :ref:`result proxy <morty.sh>`
|
||||
|
||||
Configuration
|
||||
==============
|
||||
.. code:: bash
|
||||
|
||||
.. code:: sh
|
||||
|
||||
sudo -H -u searx -i
|
||||
(searx)$ cd searx-src
|
||||
(searx)$ sed -i -e "s/ultrasecretkey/`openssl rand -hex 16`/g" searx/settings.yml
|
||||
|
||||
Edit searx/settings.yml if necessary.
|
||||
|
||||
Check
|
||||
=====
|
||||
|
||||
Start searx:
|
||||
|
||||
.. code:: sh
|
||||
|
||||
sudo -H -u searx -i
|
||||
(searx)$ cd searx-src
|
||||
(searx)$ python3 searx/webapp.py
|
||||
|
||||
Go to http://localhost:8888
|
||||
|
||||
If everything works fine, disable the debug option in settings.yml:
|
||||
|
||||
.. code:: sh
|
||||
|
||||
sed -i -e "s/debug : True/debug : False/g" searx/settings.yml
|
||||
|
||||
At this point searx is not demonized ; uwsgi allows this. You can exit the
|
||||
virtualenv and the searx user bash (enter exit command twice).
|
||||
|
||||
uwsgi
|
||||
=====
|
||||
|
||||
Install packages:
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Ubuntu / debian
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo -H apt-get install uwsgi uwsgi-plugin-python3
|
||||
|
||||
Create the configuration file ``/etc/uwsgi/apps-available/searx.ini`` with this
|
||||
content:
|
||||
|
||||
.. code:: ini
|
||||
|
||||
[uwsgi]
|
||||
|
||||
# uWSGI core
|
||||
# ----------
|
||||
#
|
||||
# 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
|
||||
# -----------
|
||||
#
|
||||
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http
|
||||
|
||||
# Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html
|
||||
http = 127.0.0.1:8888
|
||||
|
||||
Activate the uwsgi application and restart:
|
||||
|
||||
.. code:: sh
|
||||
|
||||
cd /etc/uwsgi/apps-enabled
|
||||
ln -s ../apps-available/searx.ini
|
||||
/etc/init.d/uwsgi restart
|
||||
|
||||
|
||||
How to update
|
||||
=============
|
||||
|
||||
.. code:: sh
|
||||
|
||||
sudo -H -u searx -i
|
||||
(searx)$ git stash
|
||||
(searx)$ git pull origin master
|
||||
(searx)$ git stash apply
|
||||
(searx)$ ./manage.sh update_packages
|
||||
|
||||
Restart uwsgi:
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Ubuntu / debian
|
||||
|
||||
.. code:: sh
|
||||
|
||||
sudo -H systemctl restart uwsgi
|
||||
|
||||
Docker
|
||||
======
|
||||
|
||||
Make sure you have installed Docker. For instance, you can deploy searx like this:
|
||||
|
||||
.. code:: sh
|
||||
|
||||
docker pull wonderfall/searx
|
||||
docker run -d --name searx -p $PORT:8888 wonderfall/searx
|
||||
|
||||
Go to ``http://localhost:$PORT``.
|
||||
|
||||
See https://hub.docker.com/r/wonderfall/searx/ for more informations. It's also
|
||||
possible to build searx from the embedded Dockerfile.
|
||||
|
||||
.. code:: sh
|
||||
|
||||
git clone https://github.com/asciimoo/searx.git
|
||||
cd searx
|
||||
docker build -t whatever/searx .
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
* https://about.okhin.fr/posts/Searx/ with some additions
|
||||
|
||||
* How to: `Setup searx in a couple of hours with a free SSL certificate
|
||||
<https://www.reddit.com/r/privacytoolsIO/comments/366kvn/how_to_setup_your_own_privacy_respecting_search/>`__
|
||||
$ sudo -H ./utils/morty.sh install all
|
||||
|
|
23
docs/admin/update-searx.rst
Normal file
23
docs/admin/update-searx.rst
Normal file
|
@ -0,0 +1,23 @@
|
|||
.. _update searx:
|
||||
|
||||
=============
|
||||
How to update
|
||||
=============
|
||||
|
||||
.. code:: sh
|
||||
|
||||
sudo -H -u searx -i
|
||||
(searx)$ git stash
|
||||
(searx)$ git pull origin master
|
||||
(searx)$ git stash apply
|
||||
(searx)$ ./manage.sh update_packages
|
||||
|
||||
Restart uwsgi:
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Ubuntu / debian
|
||||
|
||||
.. code:: sh
|
||||
|
||||
sudo -H systemctl restart uwsgi
|
Loading…
Add table
Add a link
Reference in a new issue