forked from Ponysearch/Ponysearch
docs: describe uwsgi setup of all suported distributions
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
parent
3aff2c19d1
commit
cbc08fdc26
6 changed files with 223 additions and 83 deletions
|
@ -4,10 +4,11 @@
|
||||||
Install with apache
|
Install with apache
|
||||||
===================
|
===================
|
||||||
|
|
||||||
.. sidebar:: public HTTP servers
|
.. sidebar:: public to the internet?
|
||||||
|
|
||||||
On public searx instances use an application firewall (:ref:`filtron
|
If your searx instance is public, stop here and first install :ref:`filtron
|
||||||
<filtron.sh>`).
|
reverse proxy <filtron.sh>` and :ref:`result proxy morty <morty.sh>`, see
|
||||||
|
:ref:`installation scripts`.
|
||||||
|
|
||||||
.. contents:: Contents
|
.. contents:: Contents
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
|
@ -4,18 +4,27 @@
|
||||||
Install with nginx
|
Install with nginx
|
||||||
==================
|
==================
|
||||||
|
|
||||||
.. sidebar:: public HTTP servers
|
.. _nginx:
|
||||||
|
https://docs.nginx.com/nginx/admin-guide/
|
||||||
On public searx instances use an application firewall (:ref:`filtron
|
.. _nginx server configuration:
|
||||||
<filtron.sh>`).
|
https://docs.nginx.com/nginx/admin-guide/web-server/web-server/#setting-up-virtual-servers
|
||||||
|
.. _nginx beginners guide:
|
||||||
|
http://nginx.org/en/docs/beginners_guide.html
|
||||||
|
.. _Getting Started wiki:
|
||||||
|
https://www.nginx.com/resources/wiki/start/
|
||||||
|
|
||||||
.. contents:: Contents
|
.. contents:: Contents
|
||||||
:depth: 2
|
:depth: 2
|
||||||
:local:
|
:local:
|
||||||
:backlinks: entry
|
:backlinks: entry
|
||||||
|
|
||||||
If nginx is not installed (uwsgi will not work with the package
|
|
||||||
nginx-light):
|
The nginx HTTP server
|
||||||
|
=====================
|
||||||
|
|
||||||
|
If nginx_ is not installed (uwsgi will not work with the package nginx-light)
|
||||||
|
install it now.
|
||||||
|
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
|
@ -25,17 +34,154 @@ nginx-light):
|
||||||
|
|
||||||
sudo -H apt-get install nginx
|
sudo -H apt-get install nginx
|
||||||
|
|
||||||
Hosted at ``/``
|
.. group-tab:: Arch Linux
|
||||||
===============
|
|
||||||
|
|
||||||
Create the configuration file ``/etc/nginx/sites-available/searx`` with this
|
.. code-block:: sh
|
||||||
content:
|
|
||||||
|
|
||||||
.. code:: nginx
|
sudo -H pacman -S nginx-mainline
|
||||||
|
sudo -H systemctl enable nginx
|
||||||
|
sudo -H systemctl start nginx
|
||||||
|
|
||||||
|
.. group-tab:: Fedora / RHEL
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
sudo -H dnf install nginx
|
||||||
|
sudo -H systemctl enable nginx
|
||||||
|
sudo -H systemctl start nginx
|
||||||
|
|
||||||
|
Now at http://localhost you should see a *Welcome to nginx!* page, on Fedora you
|
||||||
|
see a *Fedora Webserver - Test Page*. The test page comes from the default
|
||||||
|
`nginx server configuration`_:
|
||||||
|
|
||||||
|
.. tabs::
|
||||||
|
|
||||||
|
.. group-tab:: Ubuntu / debian
|
||||||
|
|
||||||
|
.. code:: sh
|
||||||
|
|
||||||
|
less /etc/nginx/nginx.conf
|
||||||
|
|
||||||
|
there is a line including site configurations from:
|
||||||
|
|
||||||
|
.. code:: nginx
|
||||||
|
|
||||||
|
include /etc/nginx/sites-enabled/*;
|
||||||
|
|
||||||
|
.. group-tab:: Arch Linux
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
less /etc/nginx/nginx.conf
|
||||||
|
|
||||||
|
in there is a configuration section named ``server``:
|
||||||
|
|
||||||
|
.. code-block:: nginx
|
||||||
|
|
||||||
server {
|
server {
|
||||||
listen 80;
|
listen 80;
|
||||||
|
server_name localhost;
|
||||||
|
# ...
|
||||||
|
}
|
||||||
|
|
||||||
|
.. group-tab:: Fedora / RHEL
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
less /etc/nginx/nginx.conf
|
||||||
|
|
||||||
|
there is a line including site configurations from:
|
||||||
|
|
||||||
|
.. code:: nginx
|
||||||
|
|
||||||
|
include /etc/nginx/conf.d/*.conf;
|
||||||
|
|
||||||
|
.. _nginx searx site:
|
||||||
|
|
||||||
|
A searx site
|
||||||
|
============
|
||||||
|
|
||||||
|
.. sidebar:: public to the internet?
|
||||||
|
|
||||||
|
If your searx instance is public, stop here and first install :ref:`filtron
|
||||||
|
reverse proxy <filtron.sh>` and :ref:`result proxy morty <morty.sh>`, see
|
||||||
|
:ref:`installation scripts`.
|
||||||
|
|
||||||
|
Now you have to create a configuration for the searx site. If nginx_ is new to
|
||||||
|
you, the `nginx beginners guide`_ is a good starting point and the `Getting
|
||||||
|
Started wiki`_ is always a good resource *to keep in the pocket*.
|
||||||
|
|
||||||
|
.. tabs::
|
||||||
|
|
||||||
|
.. group-tab:: Ubuntu / debian
|
||||||
|
|
||||||
|
Create configuration at ``/etc/nginx/sites-available/searx`` and place a
|
||||||
|
symlink to sites-enabled:
|
||||||
|
|
||||||
|
.. code:: sh
|
||||||
|
|
||||||
|
sudo -H ln -s /etc/nginx/sites-available/searx /etc/nginx/sites-enabled/searx
|
||||||
|
|
||||||
|
.. group-tab:: Arch Linux
|
||||||
|
|
||||||
|
In the ``/etc/nginx/nginx.conf`` file, replace the configuration section
|
||||||
|
named ``server``.
|
||||||
|
|
||||||
|
.. group-tab:: Fedora / RHEL
|
||||||
|
|
||||||
|
Create configuration at ``/etc/nginx/conf.d/searx`` and place a
|
||||||
|
symlink to sites-enabled:
|
||||||
|
|
||||||
|
.. tabs::
|
||||||
|
|
||||||
|
|
||||||
|
.. group-tab:: filtron at ``/`` & ``/morty``
|
||||||
|
|
||||||
|
Use this setup, if your instance is public to the internet:
|
||||||
|
|
||||||
|
.. code:: nginx
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Scheme $scheme;
|
||||||
|
proxy_pass http://127.0.0.1:4004/;
|
||||||
|
}
|
||||||
|
|
||||||
|
.. code:: nginx
|
||||||
|
|
||||||
|
location /morty {
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Scheme $scheme;
|
||||||
|
proxy_pass http://127.0.0.1:3000/;
|
||||||
|
}
|
||||||
|
|
||||||
|
For a fully result proxification add :ref:`morty's <searx_morty>` public
|
||||||
|
URL to your :origin:`searx/settings.yml`:
|
||||||
|
|
||||||
|
.. code:: yaml
|
||||||
|
|
||||||
|
result_proxy:
|
||||||
|
# replace searx.example.com with your server's public name
|
||||||
|
url : http://searx.example.com/
|
||||||
|
|
||||||
|
|
||||||
|
.. group-tab:: searx at ``/``
|
||||||
|
|
||||||
|
Use this setup only, if your instance is **NOT** public to the internet:
|
||||||
|
|
||||||
|
.. code:: nginx
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
|
||||||
|
# replace searx.example.com with your server's public name
|
||||||
server_name searx.example.com;
|
server_name searx.example.com;
|
||||||
|
|
||||||
root /usr/local/searx/searx;
|
root /usr/local/searx/searx;
|
||||||
|
|
||||||
location /static {
|
location /static {
|
||||||
|
@ -47,30 +193,11 @@ content:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Create a symlink to sites-enabled:
|
.. group-tab:: searx at ``/searx``
|
||||||
|
|
||||||
.. code:: sh
|
Use this setup only, if your instance is **NOT** public to the internet:
|
||||||
|
|
||||||
sudo -H ln -s /etc/nginx/sites-available/searx /etc/nginx/sites-enabled/searx
|
.. code:: nginx
|
||||||
|
|
||||||
Restart service:
|
|
||||||
|
|
||||||
.. tabs::
|
|
||||||
|
|
||||||
.. group-tab:: Ubuntu / debian
|
|
||||||
|
|
||||||
.. code:: sh
|
|
||||||
|
|
||||||
sudo -H systemctl restart nginx
|
|
||||||
sudo -H systemctl restart uwsgi
|
|
||||||
|
|
||||||
from subdirectory URL (``/searx``)
|
|
||||||
==================================
|
|
||||||
|
|
||||||
Add this configuration in the server config file
|
|
||||||
``/etc/nginx/sites-enabled/default``:
|
|
||||||
|
|
||||||
.. code:: nginx
|
|
||||||
|
|
||||||
location /searx/static {
|
location /searx/static {
|
||||||
alias /usr/local/searx/searx/static;
|
alias /usr/local/searx/searx/static;
|
||||||
|
@ -83,10 +210,10 @@ Add this configuration in the server config file
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
**OR** using reverse proxy (Please, note that reverse proxy advised to be used
|
**OR** using reverse proxy. Please, note that reverse proxy advised to be
|
||||||
in case of single-user or low-traffic instances.)
|
used in case of single-user or low-traffic instances.
|
||||||
|
|
||||||
.. code:: nginx
|
.. code:: nginx
|
||||||
|
|
||||||
location /searx/static {
|
location /searx/static {
|
||||||
alias /usr/local/searx/searx/static;
|
alias /usr/local/searx/searx/static;
|
||||||
|
@ -101,11 +228,14 @@ in case of single-user or low-traffic instances.)
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
}
|
}
|
||||||
|
|
||||||
Enable ``base_url`` in ``searx/settings.yml``
|
Enable ``base_url`` in :origin:`searx/settings.yml`
|
||||||
|
|
||||||
.. code:: yaml
|
.. code:: yaml
|
||||||
|
|
||||||
|
server:
|
||||||
|
# replace searx.example.com with your server's public name
|
||||||
|
base_url : http://searx.example.com/searx/
|
||||||
|
|
||||||
base_url : http://your.domain.tld/searx/
|
|
||||||
|
|
||||||
Restart service:
|
Restart service:
|
||||||
|
|
||||||
|
@ -118,24 +248,31 @@ Restart service:
|
||||||
sudo -H systemctl restart nginx
|
sudo -H systemctl restart nginx
|
||||||
sudo -H systemctl restart uwsgi
|
sudo -H systemctl restart uwsgi
|
||||||
|
|
||||||
|
.. group-tab:: Arch Linux
|
||||||
disable logs
|
|
||||||
============
|
|
||||||
|
|
||||||
For better privacy you can disable nginx logs about searx. How to proceed:
|
|
||||||
below ``uwsgi_pass`` in ``/etc/nginx/sites-available/default`` add:
|
|
||||||
|
|
||||||
.. code:: nginx
|
|
||||||
|
|
||||||
access_log /dev/null;
|
|
||||||
error_log /dev/null;
|
|
||||||
|
|
||||||
Restart service:
|
|
||||||
|
|
||||||
.. tabs::
|
|
||||||
|
|
||||||
.. group-tab:: Ubuntu / debian
|
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
sudo -H systemctl restart nginx
|
sudo -H systemctl restart nginx
|
||||||
|
sudo -H systemctl restart uwsgi
|
||||||
|
|
||||||
|
.. group-tab:: Fedora
|
||||||
|
|
||||||
|
.. code:: sh
|
||||||
|
|
||||||
|
sudo -H systemctl restart nginx
|
||||||
|
sudo -H systemctl restart uwsgi
|
||||||
|
|
||||||
|
|
||||||
|
Disable logs
|
||||||
|
============
|
||||||
|
|
||||||
|
For better privacy you can disable nginx logs in ``/etc/nginx/nginx.conf``.
|
||||||
|
|
||||||
|
.. code:: nginx
|
||||||
|
|
||||||
|
http {
|
||||||
|
# ...
|
||||||
|
access_log /dev/null;
|
||||||
|
error_log /dev/null;
|
||||||
|
# ...
|
||||||
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ Installation
|
||||||
*You're spoilt for choice*, choose your preferred method of installation.
|
*You're spoilt for choice*, choose your preferred method of installation.
|
||||||
|
|
||||||
- :ref:`installation docker`
|
- :ref:`installation docker`
|
||||||
- `Installation scripts`_
|
- :ref:`installation scripts`
|
||||||
- :ref:`installation basic`
|
- :ref:`installation basic`
|
||||||
|
|
||||||
The :ref:`installation basic` is good enough for intranet usage and it is a
|
The :ref:`installation basic` is good enough for intranet usage and it is a
|
||||||
|
@ -20,6 +20,7 @@ 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
|
:ref:`installation docker` or the `Installation scripts`_ from our :ref:`tooling
|
||||||
box <toolboxing>` as described below.
|
box <toolboxing>` as described below.
|
||||||
|
|
||||||
|
.. _installation scripts:
|
||||||
|
|
||||||
Installation scripts
|
Installation scripts
|
||||||
====================
|
====================
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
general:
|
general:
|
||||||
debug : False # Debug mode, only for development
|
debug : True # Debug mode, only for development
|
||||||
instance_name : "searx" # displayed name
|
instance_name : "searx" # displayed name
|
||||||
|
|
||||||
search:
|
search:
|
||||||
|
|
|
@ -192,8 +192,9 @@ main() {
|
||||||
if [[ $exit_val -ne 0 ]]; then
|
if [[ $exit_val -ne 0 ]]; then
|
||||||
warn_msg "[${_BBlue}${i}${_creset}] exit code (${_BRed}${exit_val}${_creset}) from ${_BGreen}${*}${_creset}"
|
warn_msg "[${_BBlue}${i}${_creset}] exit code (${_BRed}${exit_val}${_creset}) from ${_BGreen}${*}${_creset}"
|
||||||
else
|
else
|
||||||
info_msg "[${_BBlue}${i}${_creset}] exit code (${_BRed}${exit_val}${_creset}) from ${_BGreen}${*}${_creset}"
|
info_msg "[${_BBlue}${i}${_creset}] exit code (${exit_val}) from ${_BGreen}${*}${_creset}"
|
||||||
fi
|
fi
|
||||||
|
echo
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
install)
|
install)
|
||||||
|
|
|
@ -668,7 +668,7 @@ enable: sudo -H ln -s ${uWSGI_APPS_AVAILABLE}/${SEARX_UWSGI_APP} ${uWSGI_APPS
|
||||||
start: sudo -H service uwsgi start ${SEARX_UWSGI_APP%.*}
|
start: sudo -H service uwsgi start ${SEARX_UWSGI_APP%.*}
|
||||||
restart: sudo -H service uwsgi restart ${SEARX_UWSGI_APP%.*}
|
restart: sudo -H service uwsgi restart ${SEARX_UWSGI_APP%.*}
|
||||||
stop: sudo -H service uwsgi stop ${SEARX_UWSGI_APP%.*}
|
stop: sudo -H service uwsgi stop ${SEARX_UWSGI_APP%.*}
|
||||||
disable: sudo -H rm ${uWSGI_APPS_ENABLED}/${CONF}
|
disable: sudo -H rm ${uWSGI_APPS_ENABLED}/${SEARX_UWSGI_APP}
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
arch-*) cat <<EOF
|
arch-*) cat <<EOF
|
||||||
|
|
Loading…
Reference in a new issue