docs: revision of the installation instructions
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
		
							parent
							
								
									a5eefea61d
								
							
						
					
					
						commit
						eedd63ccd5
					
				| @ -4,13 +4,18 @@ | |||||||
| Buildhosts | Buildhosts | ||||||
| ========== | ========== | ||||||
| 
 | 
 | ||||||
|  | To get best results from build, its recommend to install additional packages | ||||||
|  | on build hosts. | ||||||
|  | 
 | ||||||
| .. sidebar:: This article needs some work | .. sidebar:: This article needs some work | ||||||
| 
 | 
 | ||||||
|    If you have any contribution send us your :pull:`PR <../pulls>`, see |    If you have any contribution send us your :pull:`PR <../pulls>`, see | ||||||
|    :ref:`how to contribute`. |    :ref:`how to contribute`. | ||||||
| 
 | 
 | ||||||
| To get best results from build, its recommend to install additional packages | .. contents:: Contents | ||||||
| on build hosts. |    :depth: 2 | ||||||
|  |    :local: | ||||||
|  |    :backlinks: entry | ||||||
| 
 | 
 | ||||||
| .. _docs build: | .. _docs build: | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -9,6 +9,11 @@ How to protect an instance | |||||||
| 
 | 
 | ||||||
|    - :ref:`filtron.sh` |    - :ref:`filtron.sh` | ||||||
| 
 | 
 | ||||||
|  | .. contents:: Contents | ||||||
|  |    :depth: 2 | ||||||
|  |    :local: | ||||||
|  |    :backlinks: entry | ||||||
|  | 
 | ||||||
| .. _filtron: https://github.com/asciimoo/filtron | .. _filtron: https://github.com/asciimoo/filtron | ||||||
| 
 | 
 | ||||||
| Searx depens on external search services.  To avoid the abuse of these services | Searx depens on external search services.  To avoid the abuse of these services | ||||||
|  | |||||||
| @ -3,9 +3,12 @@ Administrator documentation | |||||||
| =========================== | =========================== | ||||||
| 
 | 
 | ||||||
| .. toctree:: | .. toctree:: | ||||||
|    :maxdepth: 1 |    :maxdepth: 2 | ||||||
|  |    :caption: Contents | ||||||
| 
 | 
 | ||||||
|    installation |    installation | ||||||
|  |    installation-nginx | ||||||
|  |    installation-apache | ||||||
|    settings |    settings | ||||||
|    api |    api | ||||||
|    architecture |    architecture | ||||||
|  | |||||||
							
								
								
									
										94
									
								
								docs/admin/installation-apache.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								docs/admin/installation-apache.rst
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,94 @@ | |||||||
|  | .. _installation apache: | ||||||
|  | 
 | ||||||
|  | =================== | ||||||
|  | Install with apache | ||||||
|  | =================== | ||||||
|  | 
 | ||||||
|  | .. sidebar:: public HTTP servers | ||||||
|  | 
 | ||||||
|  |    On public searx instances use an application firewall (:ref:`filtron | ||||||
|  |    <filtron.sh>`). | ||||||
|  | 
 | ||||||
|  | .. contents:: Contents | ||||||
|  |    :depth: 2 | ||||||
|  |    :local: | ||||||
|  |    :backlinks: entry | ||||||
|  | 
 | ||||||
|  | Add wsgi mod | ||||||
|  | ============ | ||||||
|  | 
 | ||||||
|  | .. tabs:: | ||||||
|  | 
 | ||||||
|  |    .. group-tab:: Ubuntu / debian | ||||||
|  | 
 | ||||||
|  |       .. code:: sh | ||||||
|  | 
 | ||||||
|  |          sudo -H apt-get install libapache2-mod-uwsgi | ||||||
|  |          sudo -H a2enmod uwsgi | ||||||
|  | 
 | ||||||
|  | Add this configuration in the file ``/etc/apache2/apache2.conf``.  To limit | ||||||
|  | acces to your intranet replace ``Allow from all`` directive and replace | ||||||
|  | ``192.168.0.0/16`` with your subnet IP/class. | ||||||
|  | 
 | ||||||
|  | .. _inranet apache site: | ||||||
|  | 
 | ||||||
|  | Note that if your instance of searx is not at the root, you should change | ||||||
|  | ``<Location />`` by the location of your instance, like ``<Location /searx>``: | ||||||
|  | 
 | ||||||
|  | .. code:: apache | ||||||
|  | 
 | ||||||
|  |    # CustomLog /dev/null combined | ||||||
|  | 
 | ||||||
|  |    <IfModule mod_uwsgi.c> | ||||||
|  | 
 | ||||||
|  |      <Location /> | ||||||
|  | 
 | ||||||
|  |           Options FollowSymLinks Indexes | ||||||
|  |           SetHandler uwsgi-handler | ||||||
|  |           uWSGISocket /run/uwsgi/app/searx/socket | ||||||
|  | 
 | ||||||
|  |           Order deny,allow | ||||||
|  |           Deny from all | ||||||
|  |           # Allow from fd00::/8 192.168.0.0/16 fe80::/10 127.0.0.0/8 ::1 | ||||||
|  |           Allow from all | ||||||
|  | 
 | ||||||
|  |      </Location> | ||||||
|  | 
 | ||||||
|  |    </IfModule> | ||||||
|  | 
 | ||||||
|  | Enable apache mod_uwsgi and restart apache: | ||||||
|  | 
 | ||||||
|  | .. tabs:: | ||||||
|  | 
 | ||||||
|  |    .. group-tab:: Ubuntu / debian | ||||||
|  | 
 | ||||||
|  |       .. code:: sh | ||||||
|  | 
 | ||||||
|  |          a2enmod uwsgi | ||||||
|  |          sudo -H systemctl restart apache2 | ||||||
|  | 
 | ||||||
|  | disable logs | ||||||
|  | ============ | ||||||
|  | 
 | ||||||
|  | For better privacy you can disable Apache logs.  Go back to | ||||||
|  | ``/etc/apache2/apache2.conf`` :ref:`[example] <inranet apache site>` and above | ||||||
|  | ``<Location />`` activate directive: | ||||||
|  | 
 | ||||||
|  | .. code:: apache | ||||||
|  | 
 | ||||||
|  |     CustomLog /dev/null combined | ||||||
|  | 
 | ||||||
|  | Restart apache: | ||||||
|  | 
 | ||||||
|  | .. tabs:: | ||||||
|  | 
 | ||||||
|  |    .. group-tab:: Ubuntu / debian | ||||||
|  | 
 | ||||||
|  |       .. code:: sh | ||||||
|  | 
 | ||||||
|  |          sudo -H systemctl restart apache2 | ||||||
|  | 
 | ||||||
|  | .. warning:: | ||||||
|  | 
 | ||||||
|  |    You can only disable logs for the whole (virtual) server not for a specific | ||||||
|  |    path. | ||||||
							
								
								
									
										141
									
								
								docs/admin/installation-nginx.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								docs/admin/installation-nginx.rst
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,141 @@ | |||||||
|  | .. _installation nginx: | ||||||
|  | 
 | ||||||
|  | ================== | ||||||
|  | Install with nginx | ||||||
|  | ================== | ||||||
|  | 
 | ||||||
|  | .. sidebar:: public HTTP servers | ||||||
|  | 
 | ||||||
|  |    On public searx instances use an application firewall (:ref:`filtron | ||||||
|  |    <filtron.sh>`). | ||||||
|  | 
 | ||||||
|  | .. contents:: Contents | ||||||
|  |    :depth: 2 | ||||||
|  |    :local: | ||||||
|  |    :backlinks: entry | ||||||
|  | 
 | ||||||
|  | If nginx is not installed (uwsgi will not work with the package | ||||||
|  | nginx-light): | ||||||
|  | 
 | ||||||
|  | .. tabs:: | ||||||
|  | 
 | ||||||
|  |    .. group-tab:: Ubuntu / debian | ||||||
|  | 
 | ||||||
|  |       .. code:: sh | ||||||
|  | 
 | ||||||
|  |          sudo -H apt-get install nginx | ||||||
|  | 
 | ||||||
|  | Hosted at ``/`` | ||||||
|  | =============== | ||||||
|  | 
 | ||||||
|  | Create the configuration file ``/etc/nginx/sites-available/searx`` with this | ||||||
|  | content: | ||||||
|  | 
 | ||||||
|  | .. code:: nginx | ||||||
|  | 
 | ||||||
|  |     server { | ||||||
|  |         listen 80; | ||||||
|  |         server_name searx.example.com; | ||||||
|  |         root /usr/local/searx/searx; | ||||||
|  | 
 | ||||||
|  |         location /static { | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         location / { | ||||||
|  |                 include uwsgi_params; | ||||||
|  |                 uwsgi_pass unix:/run/uwsgi/app/searx/socket; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | Create a symlink to sites-enabled: | ||||||
|  | 
 | ||||||
|  | .. code:: sh | ||||||
|  | 
 | ||||||
|  |    sudo -H ln -s /etc/nginx/sites-available/searx /etc/nginx/sites-enabled/searx | ||||||
|  | 
 | ||||||
|  | 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 { | ||||||
|  |             alias /usr/local/searx/searx/static; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     location /searx { | ||||||
|  |             uwsgi_param SCRIPT_NAME /searx; | ||||||
|  |             include uwsgi_params; | ||||||
|  |             uwsgi_pass unix:/run/uwsgi/app/searx/socket; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | **OR** using reverse proxy (Please, note that reverse proxy advised to be used | ||||||
|  | in case of single-user or low-traffic instances.) | ||||||
|  | 
 | ||||||
|  | .. code:: nginx | ||||||
|  | 
 | ||||||
|  |     location /searx/static { | ||||||
|  |             alias /usr/local/searx/searx/static; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     location /searx { | ||||||
|  |         proxy_pass http://127.0.0.1:8888; | ||||||
|  |         proxy_set_header Host $host; | ||||||
|  |         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||||||
|  |         proxy_set_header X-Scheme $scheme; | ||||||
|  |         proxy_set_header X-Script-Name /searx; | ||||||
|  |         proxy_buffering off; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | Enable ``base_url`` in ``searx/settings.yml`` | ||||||
|  | 
 | ||||||
|  | .. code:: yaml | ||||||
|  | 
 | ||||||
|  |     base_url : http://your.domain.tld/searx/ | ||||||
|  | 
 | ||||||
|  | Restart service: | ||||||
|  | 
 | ||||||
|  | .. tabs:: | ||||||
|  | 
 | ||||||
|  |    .. group-tab:: Ubuntu / debian | ||||||
|  | 
 | ||||||
|  |       .. code:: sh | ||||||
|  | 
 | ||||||
|  |          sudo -H systemctl restart nginx | ||||||
|  |          sudo -H systemctl restart uwsgi | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 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 | ||||||
|  | 
 | ||||||
|  |          sudo -H systemctl restart nginx | ||||||
| @ -4,50 +4,64 @@ | |||||||
| Installation | Installation | ||||||
| ============ | ============ | ||||||
| 
 | 
 | ||||||
| .. contents:: | .. sidebar:: Searx server setup | ||||||
|    :depth: 3 | 
 | ||||||
|  |    - :ref:`installation nginx` | ||||||
|  |    - :ref:`installation apache` | ||||||
|  | 
 | ||||||
|  |    If you do not have any special preferences, it is recommend to use | ||||||
|  |    :ref:`searx.sh`. | ||||||
|  | 
 | ||||||
|  | .. contents:: Contents | ||||||
|  |    :depth: 2 | ||||||
|  |    :local: | ||||||
|  |    :backlinks: entry | ||||||
| 
 | 
 | ||||||
| .. _installation basic: | .. _installation basic: | ||||||
| 
 | 
 | ||||||
| Basic installation | Basic installation | ||||||
| ================== | ================== | ||||||
| 
 | 
 | ||||||
| .. sidebar:: further reading | Step by step installation with virtualenv.  For Ubuntu, be sure to have enable | ||||||
| 
 | universe repository. | ||||||
|    - :ref:`searx.sh` |  | ||||||
| 
 |  | ||||||
| Step by step installation for Debian/Ubuntu with virtualenv. For Ubuntu, be sure |  | ||||||
| to have enable universe repository. |  | ||||||
| 
 | 
 | ||||||
| Install packages: | Install packages: | ||||||
| 
 | 
 | ||||||
| .. code:: sh | .. tabs:: | ||||||
| 
 | 
 | ||||||
|     $ sudo -H apt-get install \ |    .. group-tab:: Ubuntu / debian | ||||||
|            git build-essential libxslt-dev \ | 
 | ||||||
| 	   python-dev python-virtualenv python-babel \ |       .. code-block:: sh | ||||||
| 	   zlib1g-dev libffi-dev libssl-dev | 
 | ||||||
|  |          $ sudo -H apt-get install \ | ||||||
|  |                    git build-essential | ||||||
|  |                    libxslt-dev python3-dev python3-babel \ | ||||||
|  |                    zlib1g-dev libffi-dev libssl-dev | ||||||
| 
 | 
 | ||||||
| Install searx: | Install searx: | ||||||
| 
 | 
 | ||||||
| .. code:: sh | .. code:: sh | ||||||
| 
 | 
 | ||||||
|     cd /usr/local |     sudo -H useradd searx --system --disabled-password -d /usr/local/searx | ||||||
|     sudo -H git clone https://github.com/asciimoo/searx.git |     sudo -H usermod -a -G shadow $SERVICE_USER | ||||||
|     sudo -H useradd searx -d /usr/local/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 |     sudo -H chown searx:searx -R /usr/local/searx | ||||||
| 
 | 
 | ||||||
| Install dependencies in a virtualenv: | Install virtualenv: | ||||||
| 
 | 
 | ||||||
| .. code:: sh | .. code:: sh | ||||||
| 
 | 
 | ||||||
|     cd /usr/local/searx |  | ||||||
|     sudo -H -u searx -i |     sudo -H -u searx -i | ||||||
|  |     (searx)$ python3 -m venv searx-pyenv | ||||||
|  |     (searx)$ echo 'source ~/searx-pyenv/bin/activate' > ~/.profile | ||||||
|  | 
 | ||||||
|  | Exit the searx bash and restart a new to install the searx dependencies: | ||||||
| 
 | 
 | ||||||
| .. code:: sh | .. code:: sh | ||||||
| 
 | 
 | ||||||
|     (searx)$ virtualenv searx-ve |     sudo -H -u searx -i | ||||||
|     (searx)$ . ./searx-ve/bin/activate |     (searx)$ cd searx-src | ||||||
|     (searx)$ ./manage.sh update_packages |     (searx)$ ./manage.sh update_packages | ||||||
| 
 | 
 | ||||||
| Configuration | Configuration | ||||||
| @ -55,7 +69,9 @@ Configuration | |||||||
| 
 | 
 | ||||||
| .. code:: sh | .. code:: sh | ||||||
| 
 | 
 | ||||||
|     sed -i -e "s/ultrasecretkey/`openssl rand -hex 16`/g" searx/settings.yml |     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. | Edit searx/settings.yml if necessary. | ||||||
| 
 | 
 | ||||||
| @ -66,7 +82,9 @@ Start searx: | |||||||
| 
 | 
 | ||||||
| .. code:: sh | .. code:: sh | ||||||
| 
 | 
 | ||||||
|     python searx/webapp.py |     sudo -H -u searx -i | ||||||
|  |     (searx)$ cd searx-src | ||||||
|  |     (searx)$ python3 searx/webapp.py | ||||||
| 
 | 
 | ||||||
| Go to http://localhost:8888 | Go to http://localhost:8888 | ||||||
| 
 | 
 | ||||||
| @ -76,57 +94,88 @@ If everything works fine, disable the debug option in settings.yml: | |||||||
| 
 | 
 | ||||||
|     sed -i -e "s/debug : True/debug : False/g" searx/settings.yml |     sed -i -e "s/debug : True/debug : False/g" searx/settings.yml | ||||||
| 
 | 
 | ||||||
| At this point searx is not demonized ; uwsgi allows this. | At this point searx is not demonized ; uwsgi allows this.  You can exit the | ||||||
| 
 | virtualenv and the searx user bash (enter exit command twice). | ||||||
| You can exit the virtualenv and the searx user bash (enter exit command |  | ||||||
| twice). |  | ||||||
| 
 | 
 | ||||||
| uwsgi | uwsgi | ||||||
| ===== | ===== | ||||||
| 
 | 
 | ||||||
| Install packages: | Install packages: | ||||||
| 
 | 
 | ||||||
| .. code:: sh | .. tabs:: | ||||||
| 
 | 
 | ||||||
|     sudo -H apt-get install \ |    .. group-tab:: Ubuntu / debian | ||||||
|          uwsgi uwsgi-plugin-python | 
 | ||||||
|  |       .. code-block:: bash | ||||||
|  | 
 | ||||||
|  |          sudo -H apt-get install uwsgi uwsgi-plugin-python3 | ||||||
| 
 | 
 | ||||||
| Create the configuration file ``/etc/uwsgi/apps-available/searx.ini`` with this | Create the configuration file ``/etc/uwsgi/apps-available/searx.ini`` with this | ||||||
| content: | content: | ||||||
| 
 | 
 | ||||||
| .. code:: ini | .. code:: ini | ||||||
| 
 | 
 | ||||||
|     [uwsgi] |    [uwsgi] | ||||||
|     # Who will run the code |  | ||||||
|     uid = searx |  | ||||||
|     gid = searx |  | ||||||
| 
 | 
 | ||||||
|     # disable logging for privacy |    # uWSGI core | ||||||
|     disable-logging = true |    # ---------- | ||||||
|  |    # | ||||||
|  |    # https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core | ||||||
| 
 | 
 | ||||||
|     # Number of workers (usually CPU count) |    # Who will run the code | ||||||
|     workers = 4 |    uid = searx | ||||||
|  |    gid = searx | ||||||
| 
 | 
 | ||||||
|     # The right granted on the created socket |    # chdir to specified directory before apps loading | ||||||
|     chmod-socket = 666 |    chdir = /usr/local/searx/searx-src/searx | ||||||
| 
 | 
 | ||||||
|     # Plugin to use and interpretor config |    # disable logging for privacy | ||||||
|     single-interpreter = true |    disable-logging = true | ||||||
|     master = true |  | ||||||
|     plugin = python |  | ||||||
|     lazy-apps = true |  | ||||||
|     enable-threads = true |  | ||||||
| 
 | 
 | ||||||
|     # Module to import |    # The right granted on the created socket | ||||||
|     module = searx.webapp |    chmod-socket = 666 | ||||||
| 
 | 
 | ||||||
|     # Support running the module from a webserver subdirectory. |    # Plugin to use and interpretor config | ||||||
|     route-run = fixpathinfo: |    single-interpreter = true | ||||||
| 
 | 
 | ||||||
|     # Virtualenv and python path |    # enable master process | ||||||
|     virtualenv = /usr/local/searx/searx-ve/ |    master = true | ||||||
|     pythonpath = /usr/local/searx/ | 
 | ||||||
|     chdir = /usr/local/searx/searx/ |    # 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: | Activate the uwsgi application and restart: | ||||||
| 
 | 
 | ||||||
| @ -136,194 +185,27 @@ Activate the uwsgi application and restart: | |||||||
|     ln -s ../apps-available/searx.ini |     ln -s ../apps-available/searx.ini | ||||||
|     /etc/init.d/uwsgi restart |     /etc/init.d/uwsgi restart | ||||||
| 
 | 
 | ||||||
| Web server |  | ||||||
| ========== |  | ||||||
| 
 |  | ||||||
| with nginx |  | ||||||
| ---------- |  | ||||||
| 
 |  | ||||||
| If nginx is not installed (uwsgi will not work with the package |  | ||||||
| nginx-light): |  | ||||||
| 
 |  | ||||||
| .. code:: sh |  | ||||||
| 
 |  | ||||||
|     sudo -H apt-get install nginx |  | ||||||
| 
 |  | ||||||
| Hosted at / |  | ||||||
| ~~~~~~~~~~~ |  | ||||||
| 
 |  | ||||||
| Create the configuration file ``/etc/nginx/sites-available/searx`` with this |  | ||||||
| content: |  | ||||||
| 
 |  | ||||||
| .. code:: nginx |  | ||||||
| 
 |  | ||||||
|     server { |  | ||||||
|         listen 80; |  | ||||||
|         server_name searx.example.com; |  | ||||||
|         root /usr/local/searx/searx; |  | ||||||
| 
 |  | ||||||
|         location /static { |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         location / { |  | ||||||
|                 include uwsgi_params; |  | ||||||
|                 uwsgi_pass unix:/run/uwsgi/app/searx/socket; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| Create a symlink to sites-enabled: |  | ||||||
| 
 |  | ||||||
| .. code:: sh |  | ||||||
| 
 |  | ||||||
|    sudo -H ln -s /etc/nginx/sites-available/searx /etc/nginx/sites-enabled/searx |  | ||||||
| 
 |  | ||||||
| Restart service: |  | ||||||
| 
 |  | ||||||
| .. code:: sh |  | ||||||
| 
 |  | ||||||
|     sudo -H service nginx restart |  | ||||||
|     sudo -H service uwsgi restart |  | ||||||
| 
 |  | ||||||
| from subdirectory URL (/searx) |  | ||||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |  | ||||||
| 
 |  | ||||||
| Add this configuration in the server config file |  | ||||||
| ``/etc/nginx/sites-enabled/default``: |  | ||||||
| 
 |  | ||||||
| .. code:: nginx |  | ||||||
| 
 |  | ||||||
|     location /searx/static { |  | ||||||
|             alias /usr/local/searx/searx/static; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     location /searx { |  | ||||||
|             uwsgi_param SCRIPT_NAME /searx; |  | ||||||
|             include uwsgi_params; |  | ||||||
|             uwsgi_pass unix:/run/uwsgi/app/searx/socket; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| **OR** using reverse proxy (Please, note that reverse proxy advised to be used |  | ||||||
| in case of single-user or low-traffic instances.) |  | ||||||
| 
 |  | ||||||
| .. code:: nginx |  | ||||||
| 
 |  | ||||||
|     location /searx/static { |  | ||||||
|             alias /usr/local/searx/searx/static; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     location /searx { |  | ||||||
|         proxy_pass http://127.0.0.1:8888; |  | ||||||
|         proxy_set_header Host $host; |  | ||||||
|         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |  | ||||||
|         proxy_set_header X-Scheme $scheme; |  | ||||||
|         proxy_set_header X-Script-Name /searx; |  | ||||||
|         proxy_buffering off; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| Enable ``base_url`` in ``searx/settings.yml`` |  | ||||||
| 
 |  | ||||||
| .. code:: yaml |  | ||||||
| 
 |  | ||||||
|     base_url : http://your.domain.tld/searx/ |  | ||||||
| 
 |  | ||||||
| Restart service: |  | ||||||
| 
 |  | ||||||
| .. code:: sh |  | ||||||
| 
 |  | ||||||
|     sudo -H service nginx restart |  | ||||||
|     sudo -H service uwsgi restart |  | ||||||
| 
 |  | ||||||
| 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: |  | ||||||
| 
 |  | ||||||
| .. code:: sh |  | ||||||
| 
 |  | ||||||
|     sudo -H service nginx restart |  | ||||||
| 
 |  | ||||||
| with apache |  | ||||||
| ----------- |  | ||||||
| 
 |  | ||||||
| Add wsgi mod: |  | ||||||
| 
 |  | ||||||
| .. code:: sh |  | ||||||
| 
 |  | ||||||
|     sudo -H apt-get install libapache2-mod-uwsgi |  | ||||||
|     sudo -H a2enmod uwsgi |  | ||||||
| 
 |  | ||||||
| Add this configuration in the file ``/etc/apache2/apache2.conf``: |  | ||||||
| 
 |  | ||||||
| .. code:: apache |  | ||||||
| 
 |  | ||||||
|     <Location /> |  | ||||||
|         Options FollowSymLinks Indexes |  | ||||||
|         SetHandler uwsgi-handler |  | ||||||
|         uWSGISocket /run/uwsgi/app/searx/socket |  | ||||||
|     </Location> |  | ||||||
| 
 |  | ||||||
| Note that if your instance of searx is not at the root, you should change |  | ||||||
| ``<Location />`` by the location of your instance, like ``<Location /searx>``. |  | ||||||
| 
 |  | ||||||
| Restart Apache: |  | ||||||
| 
 |  | ||||||
| .. code:: sh |  | ||||||
| 
 |  | ||||||
|     sudo -H /etc/init.d/apache2 restart |  | ||||||
| 
 |  | ||||||
| disable logs |  | ||||||
| ~~~~~~~~~~~~ |  | ||||||
| 
 |  | ||||||
| For better privacy you can disable Apache logs. |  | ||||||
| 
 |  | ||||||
| .. warning:: |  | ||||||
| 
 |  | ||||||
|    You can only disable logs for the whole (virtual) server not for a specific |  | ||||||
|    path. |  | ||||||
| 
 |  | ||||||
| Go back to ``/etc/apache2/apache2.conf`` and above ``<Location />`` add: |  | ||||||
| 
 |  | ||||||
| .. code:: apache |  | ||||||
| 
 |  | ||||||
|     CustomLog /dev/null combined |  | ||||||
| 
 |  | ||||||
| Restart Apache: |  | ||||||
| 
 |  | ||||||
| .. code:: sh |  | ||||||
| 
 |  | ||||||
|     sudo -H /etc/init.d/apache2 restart |  | ||||||
| 
 | 
 | ||||||
| How to update | How to update | ||||||
| ============= | ============= | ||||||
| 
 | 
 | ||||||
| .. code:: sh | .. code:: sh | ||||||
| 
 | 
 | ||||||
|     cd /usr/local/searx |  | ||||||
|     sudo -H -u searx -i |     sudo -H -u searx -i | ||||||
| 
 |  | ||||||
| .. code:: sh |  | ||||||
| 
 |  | ||||||
|     (searx)$ . ./searx-ve/bin/activate |  | ||||||
|     (searx)$ git stash |     (searx)$ git stash | ||||||
|     (searx)$ git pull origin master |     (searx)$ git pull origin master | ||||||
|     (searx)$ git stash apply |     (searx)$ git stash apply | ||||||
|     (searx)$ ./manage.sh update_packages |     (searx)$ ./manage.sh update_packages | ||||||
| 
 | 
 | ||||||
| .. code:: sh | Restart uwsgi: | ||||||
| 
 | 
 | ||||||
|     sudo -H service uwsgi restart | .. tabs:: | ||||||
|  | 
 | ||||||
|  |    .. group-tab:: Ubuntu / debian | ||||||
|  | 
 | ||||||
|  |       .. code:: sh | ||||||
|  | 
 | ||||||
|  |          sudo -H systemctl restart uwsgi | ||||||
| 
 | 
 | ||||||
| Docker | Docker | ||||||
| ====== | ====== | ||||||
|  | |||||||
| @ -4,11 +4,17 @@ | |||||||
| ``settings.yml`` | ``settings.yml`` | ||||||
| ================ | ================ | ||||||
| 
 | 
 | ||||||
|  | This page describe the options possibilities of the :origin:`searx/settings.yml` | ||||||
|  | file. | ||||||
|  | 
 | ||||||
| .. sidebar:: Further reading .. | .. sidebar:: Further reading .. | ||||||
| 
 | 
 | ||||||
|    - :ref:`search API` |    - :ref:`search API` | ||||||
| 
 | 
 | ||||||
| This page describe the options possibilities of the settings.yml file. | .. contents:: Contents | ||||||
|  |    :depth: 2 | ||||||
|  |    :local: | ||||||
|  |    :backlinks: entry | ||||||
| 
 | 
 | ||||||
| .. _settings global: | .. _settings global: | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -3,7 +3,8 @@ Blog | |||||||
| ==== | ==== | ||||||
| 
 | 
 | ||||||
| .. toctree:: | .. toctree:: | ||||||
|    :maxdepth: 1 |    :maxdepth: 2 | ||||||
|  |    :caption: Contents | ||||||
| 
 | 
 | ||||||
|    python3 |    python3 | ||||||
|    admin |    admin | ||||||
|  | |||||||
| @ -4,6 +4,11 @@ | |||||||
| How to contribute | How to contribute | ||||||
| ================= | ================= | ||||||
| 
 | 
 | ||||||
|  | .. contents:: Contents | ||||||
|  |    :depth: 2 | ||||||
|  |    :local: | ||||||
|  |    :backlinks: entry | ||||||
|  | 
 | ||||||
| Prime directives: Privacy, Hackability | Prime directives: Privacy, Hackability | ||||||
| ====================================== | ====================================== | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -3,7 +3,8 @@ Developer documentation | |||||||
| ======================= | ======================= | ||||||
| 
 | 
 | ||||||
| .. toctree:: | .. toctree:: | ||||||
|    :maxdepth: 1 |    :maxdepth: 2 | ||||||
|  |    :caption: Contents | ||||||
| 
 | 
 | ||||||
|    quickstart |    quickstart | ||||||
|    contribution_guide |    contribution_guide | ||||||
|  | |||||||
| @ -2,7 +2,14 @@ | |||||||
| Welcome to searx | Welcome to searx | ||||||
| ================ | ================ | ||||||
| 
 | 
 | ||||||
| Search without being tracked. |     *Search without being tracked.* | ||||||
|  | 
 | ||||||
|  | Searx is a free internet metasearch engine which aggregates results from more | ||||||
|  | than 70 search services.  Users are neither tracked nor profiled.  Additionally, | ||||||
|  | searx can be used over Tor for online anonymity. | ||||||
|  | 
 | ||||||
|  | Get started with searx by using one of the :wiki:`Searx-instances`.  If you | ||||||
|  | don't trust anyone, you can set up your own, see :ref:`installation`. | ||||||
| 
 | 
 | ||||||
| .. sidebar::  Features | .. sidebar::  Features | ||||||
| 
 | 
 | ||||||
| @ -16,15 +23,9 @@ Search without being tracked. | |||||||
|    - Hosted by organizations, such as *La Quadrature du Net*, which promote |    - Hosted by organizations, such as *La Quadrature du Net*, which promote | ||||||
|      digital rights |      digital rights | ||||||
| 
 | 
 | ||||||
| Searx is a free internet metasearch engine which aggregates results from more |  | ||||||
| than 70 search services.  Users are neither tracked nor profiled.  Additionally, |  | ||||||
| searx can be used over Tor for online anonymity. |  | ||||||
| 
 |  | ||||||
| Get started with searx by using one of the :wiki:`Searx-instances`.  If you |  | ||||||
| don't trust anyone, you can set up your own, see :ref:`installation`. |  | ||||||
| 
 |  | ||||||
| .. toctree:: | .. toctree:: | ||||||
|    :maxdepth: 2 |    :maxdepth: 2 | ||||||
|  |    :caption: Contents | ||||||
| 
 | 
 | ||||||
|    user/index |    user/index | ||||||
|    admin/index |    admin/index | ||||||
|  | |||||||
| @ -3,7 +3,8 @@ User documentation | |||||||
| ================== | ================== | ||||||
| 
 | 
 | ||||||
| .. toctree:: | .. toctree:: | ||||||
|    :maxdepth: 1 |    :maxdepth: 2 | ||||||
|  |    :caption: Contents | ||||||
| 
 | 
 | ||||||
|    public_instances |    public_instances | ||||||
|    search_syntax |    search_syntax | ||||||
|  | |||||||
| @ -2,8 +2,10 @@ | |||||||
| Why use a private instance? | Why use a private instance? | ||||||
| =========================== | =========================== | ||||||
| 
 | 
 | ||||||
| "Is it worth to run my own instance?" is a common question among searx users. |   *"Is it worth to run my own instance?"* | ||||||
| Before answering this question, see what options a searx user has. | 
 | ||||||
|  | \.\. is a common question among searx users.  Before answering this question, | ||||||
|  | see what options a searx user has. | ||||||
| 
 | 
 | ||||||
| Public instances are open to everyone who has access to its URL.  Usually, these | Public instances are open to everyone who has access to its URL.  Usually, these | ||||||
| are operated by unknown parties (from the users' point of view).  Private | are operated by unknown parties (from the users' point of view).  Private | ||||||
|  | |||||||
| @ -1,16 +1,20 @@ | |||||||
| .. _public instances: |  | ||||||
| 
 |  | ||||||
| .. | .. | ||||||
|    links has been ported from markdown to reST by:: |    links has been ported from markdown to reST by:: | ||||||
| 
 | 
 | ||||||
|       regexpr:        \[([^\]]*)\]\(([^)]*)\) |       regexpr:        \[([^\]]*)\]\(([^)]*)\) | ||||||
|       substitution:  `\1 <\2>`__ |       substitution:  `\1 <\2>`__ | ||||||
| 
 | 
 | ||||||
|  | .. _public instances: | ||||||
| 
 | 
 | ||||||
| ====================== | ====================== | ||||||
| Public Searx instances | Public Searx instances | ||||||
| ====================== | ====================== | ||||||
| 
 | 
 | ||||||
|  | .. contents:: Contents | ||||||
|  |    :depth: 2 | ||||||
|  |    :local: | ||||||
|  |    :backlinks: entry | ||||||
|  | 
 | ||||||
| .. _mailing list: mailto:searx-instances@autistici.org | .. _mailing list: mailto:searx-instances@autistici.org | ||||||
| .. _subscription page: https://www.autistici.org/mailman/listinfo/searx-instances | .. _subscription page: https://www.autistici.org/mailman/listinfo/searx-instances | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -7,6 +7,7 @@ | |||||||
| 
 | 
 | ||||||
| .. sidebar:: further reading | .. sidebar:: further reading | ||||||
| 
 | 
 | ||||||
|  |    - :ref:`installation` | ||||||
|    - :ref:`searx_filtron` |    - :ref:`searx_filtron` | ||||||
|    - :ref:`architecture` |    - :ref:`architecture` | ||||||
| 
 | 
 | ||||||
| @ -40,8 +41,6 @@ into this user account: | |||||||
| Public Reverse Proxy | Public Reverse Proxy | ||||||
| ==================== | ==================== | ||||||
| 
 | 
 | ||||||
| .. tabs:: |  | ||||||
| 
 |  | ||||||
| To install searx in your public HTTP server use: | To install searx in your public HTTP server use: | ||||||
| 
 | 
 | ||||||
| .. code::  bash | .. code::  bash | ||||||
|  | |||||||
| @ -6,17 +6,7 @@ | |||||||
| Tooling box ``utils/*`` | Tooling box ``utils/*`` | ||||||
| ======================= | ======================= | ||||||
| 
 | 
 | ||||||
| In the folder :origin:`utils/` we maintain some tools useful for admins and | .. sidebar:: Work needed! | ||||||
| developers. |  | ||||||
| 
 |  | ||||||
| .. toctree:: |  | ||||||
|    :maxdepth: 1 |  | ||||||
| 
 |  | ||||||
|    searx.sh |  | ||||||
|    filtron.sh |  | ||||||
|    morty.sh |  | ||||||
| 
 |  | ||||||
| .. admonition:: Work needed! |  | ||||||
| 
 | 
 | ||||||
|    Our scripts to maintain services do most support only systemd init process |    Our scripts to maintain services do most support only systemd init process | ||||||
|    used by debian, ubuntu and many other dists.  In general our scripts are only |    used by debian, ubuntu and many other dists.  In general our scripts are only | ||||||
| @ -24,6 +14,17 @@ developers. | |||||||
|    you have any contribution, please send us your :pull:`PR <../pulls>`, see |    you have any contribution, please send us your :pull:`PR <../pulls>`, see | ||||||
|    :ref:`how to contribute`. |    :ref:`how to contribute`. | ||||||
| 
 | 
 | ||||||
|  | In the folder :origin:`utils/` we maintain some tools useful for admins and | ||||||
|  | developers. | ||||||
|  | 
 | ||||||
|  | .. toctree:: | ||||||
|  |    :maxdepth: 2 | ||||||
|  |    :caption: Contents | ||||||
|  | 
 | ||||||
|  |    searx.sh | ||||||
|  |    filtron.sh | ||||||
|  |    morty.sh | ||||||
|  | 
 | ||||||
| .. _toolboxing common: | .. _toolboxing common: | ||||||
| 
 | 
 | ||||||
| Common commands | Common commands | ||||||
|  | |||||||
| @ -10,6 +10,7 @@ | |||||||
| 
 | 
 | ||||||
| .. sidebar:: further reading | .. sidebar:: further reading | ||||||
| 
 | 
 | ||||||
|  |    - :ref:`installation` | ||||||
|    - :ref:`architecture` |    - :ref:`architecture` | ||||||
| 
 | 
 | ||||||
| To simplify installation and maintenance of a morty_ instance you can use the | To simplify installation and maintenance of a morty_ instance you can use the | ||||||
|  | |||||||
| @ -9,10 +9,15 @@ | |||||||
| 
 | 
 | ||||||
|    - :ref:`installation` |    - :ref:`installation` | ||||||
|    - :ref:`architecture` |    - :ref:`architecture` | ||||||
|  |    - :ref:`filtron.sh` | ||||||
| 
 | 
 | ||||||
| To simplify installation and maintenance of a searx instance you can use the | To simplify installation and maintenance of a searx instance you can use the | ||||||
| script :origin:`utils/searx.sh`.  In most cases you will install searx simply by | script :origin:`utils/searx.sh`. | ||||||
| running the command: | 
 | ||||||
|  | Install | ||||||
|  | ======= | ||||||
|  | 
 | ||||||
|  | In most cases you will install searx simply by running the command: | ||||||
| 
 | 
 | ||||||
| .. code::  bash | .. code::  bash | ||||||
| 
 | 
 | ||||||
| @ -27,17 +32,17 @@ into this user account.  The installation is described in chapter | |||||||
| Intranet Reverse Proxy | Intranet Reverse Proxy | ||||||
| ====================== | ====================== | ||||||
| 
 | 
 | ||||||
| .. warning:: |  | ||||||
| 
 |  | ||||||
|    This setup is **not** suitable **for public instances**, go on with |  | ||||||
|    :ref:`reverse proxy`! |  | ||||||
| 
 |  | ||||||
| To install searx in your intranet HTTP server use: | To install searx in your intranet HTTP server use: | ||||||
| 
 | 
 | ||||||
| .. code::  bash | .. code::  bash | ||||||
| 
 | 
 | ||||||
|    sudo -H ./utils/searx.sh apache install |    sudo -H ./utils/searx.sh apache install | ||||||
| 
 | 
 | ||||||
|  | .. warning:: | ||||||
|  | 
 | ||||||
|  |    This setup is **not** suitable **for public instances**, go on with | ||||||
|  |    :ref:`reverse proxy`! | ||||||
|  | 
 | ||||||
| .. tabs:: | .. tabs:: | ||||||
| 
 | 
 | ||||||
|    .. group-tab:: apache |    .. group-tab:: apache | ||||||
|  | |||||||
| @ -39,8 +39,9 @@ SEARX_UWSGI_SOCKET="/run/uwsgi/app/searx/socket" | |||||||
| 
 | 
 | ||||||
| SEARX_APT_PACKAGES="\ | SEARX_APT_PACKAGES="\ | ||||||
|   uwsgi uwsgi-plugin-python3 \ |   uwsgi uwsgi-plugin-python3 \ | ||||||
|   git build-essential libxslt-dev python3-dev python3-babel zlib1g-dev \ |   git build-essential \ | ||||||
|   libffi-dev libssl-dev \ |   libxslt-dev python3-dev python3-babel\ | ||||||
|  |   zlib1g-dev libffi-dev libssl-dev \ | ||||||
| " | " | ||||||
| 
 | 
 | ||||||
| # Apache Settings | # Apache Settings | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Markus Heiser
						Markus Heiser