on master help sign in
gh-pages: updated
commit2fc3d5ed58e0e30f98c3523ab58f440407ea5a9a authorMarkus Heiser <markus.heiser@darmarit.de> dateMon 29 Jun 2020, 08:26 (6 years ago) parente77ac05
19 files changed+1261−234
_sources/admin/installation-uwsgi.rst.txt+6−5 _sources/blog/index.rst.txt+1 _sources/blog/lxcdev-202006.rst.txt+413 _sources/blog/private-engines.rst.txt+1−1 _sources/dev/search_api.rst.txt+2−2 _sources/user/own-instance.rst.txt+2−2 _sources/utils/lxc.sh.rst.txt+4−3 admin/installation-searx.html+1−1 admin/installation-uwsgi.html+215−204 blog/index.html+11−3 blog/lxcdev-202006.html+591 blog/private-engines.html+1−1 blog/python3.html+3−3 dev/search_api.html+2−2 index.html+1 objects.inv searchindex.js+1−1 user/own-instance.html+2−2 utils/lxc.sh.html+4−4
_sources/admin/installation-uwsgi.rst.txt+6−5
@@ -108,6 +108,7 @@ restart the uwsgi application.
108108 :start-after: START searx uwsgi-description ubuntu-20.04
109109 :end-before: END searx uwsgi-description ubuntu-20.04
110110
111+ .. hotfix: a bug group-tab need this comment
111112
112113 .. group-tab:: Arch Linux
113114
@@ -115,6 +116,7 @@ restart the uwsgi application.
115116 :start-after: START searx uwsgi-description arch
116117 :end-before: END searx uwsgi-description arch
117118
119+ .. hotfix: a bug group-tab need this comment
118120
119121 .. group-tab:: Fedora / RHEL
120122
@@ -128,22 +130,21 @@ restart the uwsgi application.
128130 .. group-tab:: Ubuntu / debian
129131
130132 .. kernel-include:: $DOCS_BUILD/includes/searx.rst
131− :code: ini
132133 :start-after: START searx uwsgi-appini ubuntu-20.04
133134 :end-before: END searx uwsgi-appini ubuntu-20.04
134135
136+ .. hotfix: a bug group-tab need this comment
137+
135138 .. group-tab:: Arch Linux
136139
137140 .. kernel-include:: $DOCS_BUILD/includes/searx.rst
138− :code: ini
139141 :start-after: START searx uwsgi-appini arch
140142 :end-before: END searx uwsgi-appini arch
141143
144+ .. hotfix: a bug group-tab need this comment
145+
142146 .. group-tab:: Fedora / RHEL
143147
144148 .. kernel-include:: $DOCS_BUILD/includes/searx.rst
145− :code: ini
146149 :start-after: START searx uwsgi-appini fedora
147150 :end-before: END searx uwsgi-appini fedora
148−
149−
_sources/blog/index.rst.txt+1
@@ -6,6 +6,7 @@ Blog
66 :maxdepth: 2
77 :caption: Contents
88
9+ lxcdev-202006
910 python3
1011 admin
1112 intro-offline
_sources/blog/lxcdev-202006.rst.txtnew file+413
@@ -0,0 +1,413 @@
1+.. _blog-lxcdev-202006:
2+
3+=======================================
4+Developing in Linux containers [202006]
5+=======================================
6+
7+.. _LXC: https://linuxcontainers.org/lxc/introduction/
8+
9+.. sidebar:: Audience
10+
11+ This blog post is written for experienced admins and developers / readers
12+ should have a serious meaning about: *distributed*, *merge* and *linux
13+ container*.
14+
15+.. contents:: Contents
16+ :depth: 2
17+ :local:
18+ :backlinks: entry
19+
20+In PR :PR:`1803` we added a lot of scripts to Searx's boilerplate. In this blog
21+post I will show you, how you can make use of them in *distributed and
22+heterogeneous development cycles* (TL;DR; jump to the :ref:`blog-lxcdev-202006
23+abstract`).
24+
25+Motivation
26+==========
27+
28+Normally in our development cycle, we edit the sources and run some test and/or
29+builds by using ``make`` before we commit. This cycle is simple and perfect but
30+might fail in some aspects we should not overlook.
31+
32+ The environment in which we run all our development processes matters!
33+
34+The :ref:`makefile` and the :ref:`make pyenv` encapsulate a lot for us, but they
35+do not have access to all prerequisites. For example, there may have
36+dependencies on packages that are installed on the developer's desktop, but
37+usually are not preinstalled on a server or client system. Another examples
38+are; settings have been made to the software on the developer's host that would
39+never be set on a *production* system.
40+
41+*Linux Containers* (LXC_) are isolate environments and not to mix up on
42+developer's all the prerequisites of all the projects he contribute to, is
43+always a good choice.
44+
45+The scripts from PR :PR:`1803` can divide in those to install and maintain
46+software:
47+
48+- :ref:`searx.sh`
49+- :ref:`filtron.sh`
50+- :ref:`morty.sh`
51+
52+and the script :ref:`lxc.sh`, with we can scale our installation, maintenance or
53+even development tasks over a stack of containers, what we call: *Searx's lxc
54+suite*.
55+
56+Gentlemen, start your engines!
57+==============================
58+
59+.. _LXD: https://linuxcontainers.org/lxd/introduction/
60+.. _archlinux: https://www.archlinux.org/
61+
62+Before you can start with containers, you need to install and initiate LXD_
63+once:
64+
65+.. tabs::
66+
67+ .. group-tab:: desktop
68+
69+ .. code:: sh
70+
71+ $ snap install lxd
72+ $ lxd init --auto
73+
74+And you need to clone from origin or if you have your own fork, clone from your
75+fork:
76+
77+.. tabs::
78+
79+ .. group-tab:: desktop
80+
81+ .. code:: sh
82+
83+ $ cd ~/Downloads
84+ $ git clone https://github.com/asciimoo/searx.git
85+ $ cd searx
86+
87+The :ref:`lxc-searx.env` consists of several images, see ``export
88+LXC_SUITE=(...`` near by :origin:`utils/lxc-searx.env#L19`. For this blog post
89+we exercise on a archlinux_ image. The container of this image is named
90+``searx-archlinux``. Lets build the container, but be sure that this container
91+does not already exists, so first lets remove possible old one:
92+
93+.. tabs::
94+
95+ .. group-tab:: desktop
96+
97+ .. code:: sh
98+
99+ $ sudo -H ./utils/lxc.sh remove searx-archlinux
100+ $ sudo -H ./utils/lxc.sh build searx-archlinux
101+
102+.. sidebar:: The ``searx-archlinux`` container
103+
104+ is the base of all our exercises here.
105+
106+In this container we install all services :ref:`including searx, morty & filtron
107+<lxc.sh install suite>` in once:
108+
109+.. tabs::
110+
111+ .. group-tab:: desktop
112+
113+ .. code:: sh
114+
115+ $ sudo -H ./utils/lxc.sh install suite searx-archlinux
116+
117+To proxy HTTP from filtron and morty in the container to the outside of the
118+container, install nginx into the container. Once for the bot blocker filtron:
119+
120+.. tabs::
121+
122+ .. group-tab:: desktop
123+
124+ .. code:: sh
125+
126+ $ sudo -H ./utils/lxc.sh cmd searx-archlinux \
127+ ./utils/filtron.sh nginx install
128+ ...
129+ INFO: got 429 from http://10.174.184.156/searx
130+
131+and once for the content sanitizer (content proxy morty):
132+
133+.. tabs::
134+
135+ .. group-tab:: desktop
136+
137+ .. code:: sh
138+
139+ $ sudo -H ./utils/lxc.sh cmd searx-archlinux \
140+ ./utils/morty.sh nginx install
141+ ...
142+ INFO: got 200 from http://10.174.184.156/morty/
143+
144+.. sidebar:: Fully functional searx suite
145+
146+ From here on you have a fully functional searx suite running with bot blocker
147+ (filtron) and Web content sanitizer (content proxy morty) needed for a
148+ *privacy protecting* search engine.
149+
150+On your system, the IP of your ``searx-archlinux`` container differs from
151+http://10.174.184.156/searx, just open the URL reported in your installation
152+protocol in your WEB browser from the desktop to test the instance from outside
153+of the container.
154+
155+In such a searx suite admins can maintain and access the debug log of the
156+different services quite easy.
157+
158+.. _working in containers:
159+
160+In containers, work as usual
161+============================
162+
163+Usually you open a root-bash using ``sudo -H bash``. In case of LXC containers
164+open the root-bash in the container using ``./utils/lxc.sh cmd
165+searx-archlinux``:
166+
167+.. tabs::
168+
169+ .. group-tab:: desktop
170+
171+ .. code:: sh
172+
173+ $ sudo -H ./utils/lxc.sh cmd searx-archlinux bash
174+ INFO: [searx-archlinux] bash
175+ [root@searx-archlinux searx]# pwd
176+ /share/searx
177+
178+The prompt ``[root@searx-archlinux ...]`` signals, that you are the root user in
179+the searx-container. To debug the running searx instance use:
180+
181+.. tabs::
182+
183+ .. group-tab:: root@searx-archlinux
184+
185+ .. code:: sh
186+
187+ $ ./utils/searx.sh inspect service
188+ ...
189+ use [CTRL-C] to stop monitoring the log
190+ ...
191+
192+Back in the browser on your desktop open the service http://10.174.184.156/searx
193+and run your application tests while the debug log is shown in the terminal from
194+above. You can stop monitoring using ``CTRL-C``, this also disables the *"debug
195+option"* in searx's settings file and restarts the searx uwsgi application. To
196+debug services from filtron and morty analogous use:
197+
198+.. tabs::
199+
200+ .. group-tab:: root@searx-archlinux
201+
202+ .. code:: sh
203+
204+ $ ./utils/filtron.sh inspect service
205+ $ ./utils/morty.sh inspect service
206+
207+Another point we have to notice is that each service (:ref:`searx <searx.sh>`,
208+:ref:`filtron <filtron.sh>` and :ref:`morty <morty.sh>`) runs under dedicated
209+system user account with the same name (compare :ref:`create searx user`). To
210+get a shell from theses accounts, simply call one of the scripts:
211+
212+.. tabs::
213+
214+ .. group-tab:: root@searx-archlinux
215+
216+ .. code:: sh
217+
218+ $ ./utils/searx.sh shell
219+ $ ./utils/filtron.sh shell
220+ $ ./utils/morty.sh shell
221+
222+To get in touch, open a shell from the service user (searx@searx-archlinux):
223+
224+.. tabs::
225+
226+ .. group-tab:: desktop
227+
228+ .. code:: sh
229+
230+ $ sudo -H ./utils/lxc.sh cmd searx-archlinux \
231+ ./utils/searx.sh shell
232+ // exit with [CTRL-D]
233+ (searx-pyenv) [searx@searx-archlinux ~]$ ...
234+
235+The prompt ``[searx@searx-archlinux]`` signals that you are logged in as system
236+user ``searx`` in the ``searx-archlinux`` container and the python *virtualenv*
237+``(searx-pyenv)`` environment is activated.
238+
239+.. tabs::
240+
241+ .. group-tab:: searx@searx-archlinux
242+
243+ .. code:: sh
244+
245+ (searx-pyenv) [searx@searx-archlinux ~]$ pwd
246+ /usr/local/searx
247+
248+
249+
250+Wrap production into developer suite
251+====================================
252+
253+In this section we will see how to change the *"Fully functional searx suite"*
254+from a LXC container (which is quite ready for production) into a developer
255+suite. For this, we have to keep an eye on the :ref:`installation basic`:
256+
257+- searx setup in: ``/etc/searx/settings.yml``
258+- searx user's home: ``/usr/local/searx``
259+- virtualenv in: ``/usr/local/searx/searx-pyenv``
260+- searx software in: ``/usr/local/searx/searx-src``
261+
262+The searx software is a clone of the ``GIT_URL`` (see :ref:`makefile setup`) and
263+the working tree is checked out from the ``GIT_BRANCH``. With the use of the
264+:ref:`searx.sh` the searx service was installed as :ref:`uWSGI application
265+<searx uwsgi>`. To maintain this service, we can use ``systemctl`` (compare
266+:ref:`service architectures on distributions <uwsgi configuration>`).
267+
268+.. tabs::
269+
270+ .. group-tab:: desktop
271+
272+ .. code:: sh
273+
274+ $ sudo -H ./utils/lxc.sh cmd searx-archlinux \
275+ systemctl stop uwsgi@searx
276+
277+With the command above, we stopped the searx uWSGI-App in the archlinux
278+container.
279+
280+The uWSGI-App for the archlinux dsitros is configured in
281+:origin:`utils/templates/etc/uwsgi/apps-archlinux/searx.ini`, from where at
282+least you should attend the settings of ``uid``, ``chdir``, ``env`` and
283+``http``::
284+
285+ env = SEARX_SETTINGS_PATH=/etc/searx/settings.yml
286+ http = 127.0.0.1:8888
287+
288+ chdir = /usr/local/searx/searx-src/searx
289+ virtualenv = /usr/local/searx/searx-pyenv
290+ pythonpath = /usr/local/searx/searx-src
291+
292+If you have read the :ref:`"Good to know section" <lxc.sh>` you remember, that
293+each container shares the root folder of the repository and the command
294+``utils/lxc.sh cmd`` handles relative path names **transparent**. To wrap the
295+searx installation into a developer one, we simple have to create a smylink to
296+the **transparent** reposetory from the desktop. Now lets replace the
297+repository at ``searx-src`` in the container with the working tree from outside
298+of the container:
299+
300+.. tabs::
301+
302+ .. group-tab:: container becomes a developer suite
303+
304+ .. code:: sh
305+
306+ $ sudo -H ./utils/lxc.sh cmd searx-archlinux \
307+ mv /usr/local/searx/searx-src /usr/local/searx/searx-src.old
308+
309+ $ sudo -H ./utils/lxc.sh cmd searx-archlinux \
310+ ln -s /share/searx/ /usr/local/searx/searx-src
311+
312+Now we can develop as usual in the working tree of our desktop system. Every
313+time the software was changed, you have to restart the searx service (in the
314+conatiner):
315+
316+.. tabs::
317+
318+ .. group-tab:: desktop
319+
320+ .. code:: sh
321+
322+ $ sudo -H ./utils/lxc.sh cmd searx-archlinux \
323+ systemctl restart uwsgi@searx
324+
325+
326+Remember: :ref:`working in containers` .. here are just some examples from my
327+daily usage:
328+
329+.. tabs::
330+
331+ .. group-tab:: desktop
332+
333+ To *inspect* the searx instance (already described above):
334+
335+ .. code:: sh
336+
337+ $ sudo -H ./utils/lxc.sh cmd searx-archlinux \
338+ ./utils/searx.sh inspect service
339+
340+ Run :ref:`makefile`, e.g. to test inside the container:
341+
342+ .. code:: sh
343+
344+ $ sudo -H ./utils/lxc.sh cmd searx-archlinux \
345+ make test
346+
347+ To install all prerequisites needed for a :ref:`buildhosts`:
348+
349+ .. code:: sh
350+
351+ $ sudo -H ./utils/lxc.sh cmd searx-archlinux \
352+ ./utils/searx.sh install buildhost
353+
354+ To build the docs on a buildhost :ref:`buildhosts`:
355+
356+ .. code:: sh
357+
358+ $ sudo -H ./utils/lxc.sh cmd searx-archlinux \
359+ make docs
360+
361+.. _blog-lxcdev-202006 abstract:
362+
363+Abstract
364+========
365+
366+We build up a fully functional searx suite in a archlinux container:
367+
368+.. code:: sh
369+
370+ $ sudo -H ./utils/lxc.sh install suite searx-archlinux
371+
372+To access HTTP from the desktop we installed nginx for the services inside the
373+conatiner:
374+
375+.. tabs::
376+
377+ .. group-tab:: [root@searx-archlinux]
378+
379+ .. code:: sh
380+
381+ $ ./utils/filtron.sh nginx install
382+ $ ./utils/morty.sh nginx install
383+
384+To wrap the suite into a developer one, we created a symbolic link to the
385+repository which is shared **transparent** from the desktop's file system into
386+the container :
387+
388+.. tabs::
389+
390+ .. group-tab:: [root@searx-archlinux]
391+
392+ .. code:: sh
393+
394+ $ mv /usr/local/searx/searx-src /usr/local/searx/searx-src.old
395+ $ ln -s /share/searx/ /usr/local/searx/searx-src
396+ $ systemctl restart uwsgi@searx
397+
398+To get remarks from the suite of the archlinux container we can use:
399+
400+.. tabs::
401+
402+ .. group-tab:: desktop
403+
404+ .. code:: sh
405+
406+ $ sudo -H ./utils/lxc.sh show suite searx-archlinux
407+ ...
408+ [searx-archlinux] INFO: (eth0) filtron: http://10.174.184.156:4004/ http://10.174.184.156/searx
409+ [searx-archlinux] INFO: (eth0) morty: http://10.174.184.156:3000/
410+ [searx-archlinux] INFO: (eth0) docs-live: http://10.174.184.156:8080/
411+ [searx-archlinux] INFO: (eth0) IPv6: http://[fd42:573b:e0b3:e97e:216:3eff:fea5:9b65]
412+ ...
413+
_sources/blog/private-engines.rst.txt+1−1
@@ -13,7 +13,7 @@ Private engines
1313To solve this issue private engines were introduced in :pull:`1823`.
1414A new option was added to engines named `tokens`. It expects a list
1515of strings. If the user making a request presents one of the tokens
16−of an engine, he/she is able to access information about the engine
16+of an engine, they can access information about the engine
1717and make search requests.
1818
1919Example configuration to restrict access to the Arch Linux Wiki engine:
_sources/dev/search_api.rst.txt+2−2
@@ -81,7 +81,7 @@ Parameters
8181 Theme of instance.
8282
8383 Please note, available themes depend on an instance. It is possible that an
84− instance administrator deleted, created or renamed themes on his/her instance.
84+ instance administrator deleted, created or renamed themes on their instance.
8585 See the available options in the preferences page of the instance.
8686
8787``oscar-style`` : default ``logicodev``
@@ -91,7 +91,7 @@ Parameters
9191 ``oscar``.
9292
9393 Please note, available styles depend on an instance. It is possible that an
94− instance administrator deleted, created or renamed styles on his/her
94+ instance administrator deleted, created or renamed styles on their
9595 instance. See the available options in the preferences page of the instance.
9696
9797``enabled_plugins`` : optional
_sources/user/own-instance.rst.txt+2−2
@@ -44,9 +44,9 @@ hidden from visited result pages.
4444What are the consequences of using public instances?
4545----------------------------------------------------
4646
47−If someone uses a public instance, he/she has to trust the administrator of that
47+If someone uses a public instance, they have to trust the administrator of that
4848instance. This means that the user of the public instance does not know whether
49−his/her requests are logged, aggregated and sent or sold to a third party.
49+their requests are logged, aggregated and sent or sold to a third party.
5050
5151Also, public instances without proper protection are more vulnerable to abusing
5252the search service, In this case the external service in exchange returns
_sources/utils/lxc.sh.rst.txt+4−3
@@ -47,9 +47,9 @@ one**::
4747
4848*Good to know ...*
4949
50−Eeach container shares the root folder of the repository and the
51−command ``utils/lxc.sh cmd`` **handles relative path names transparent**,
52−compare output of::
50+Each container shares the root folder of the repository and the command
51+``utils/lxc.sh cmd`` **handles relative path names transparent**, compare output
52+of::
5353
5454 $ sudo -H ./utils/lxc.sh cmd -- ls -la Makefile
5555 ...
@@ -66,6 +66,7 @@ If there comes the time you want to **get rid off all** the containers and
6666 $ sudo -H ./utils/lxc.sh remove
6767 $ sudo -H ./utils/lxc.sh remove images
6868
69+.. _lxc.sh install suite:
6970
7071Install suite
7172=============
admin/installation-searx.html+1−1
@@ -224,7 +224,7 @@ a name of your choice – <em>and/or</em> edit <code class="docutils literal not
224224</div>
225225<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-YmFzaA== active docutils container">
226226<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H cp /usr/local/searx/searx-src/searx/settings.yml /etc/searx/settings.yml
227−$ sudo -H sed -i -e s/ultrasecretkey/<span class="se">\1</span>0f5827a1c699bdc92caa3c0e921a6cd/g /etc/searx/settings.yml
227+$ sudo -H sed -i -e s/ultrasecretkey/<span class="se">\9</span>873266d1c899b68f21ca049ae5e5d93/g /etc/searx/settings.yml
228228$ sudo -H sed -i -e s/<span class="o">{</span>instance_name<span class="o">}</span>/searx@<span class="se">\r</span>yzen/g /etc/searx/settings.yml
229229</pre></div>
230230</div>
admin/installation-uwsgi.html+215−204
@@ -143,6 +143,11 @@ restart the uwsgi application.</p>
143143<p>Ubuntu / debian</p>
144144</div>
145145</div>
146+<div class="item sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
147+<div class="docutils container">
148+<p>Arch Linux</p>
149+</div>
150+</div>
146151<div class="item sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
147152<div class="docutils container">
148153<p>Fedora / RHEL</p>
@@ -150,38 +155,44 @@ restart the uwsgi application.</p>
150155</div>
151156</div>
152157<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu active docutils container">
153−<p># init.d –&gt; /usr/share/doc/uwsgi/README.Debian.gz
154−# For uWSGI debian uses the LSB init process, this might be changed
155−# one day, see <a class="reference external" href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833067">https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833067</a></p>
156−<p>create /etc/uwsgi/apps-available/searx.ini
158+<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># init.d --&gt; /usr/share/doc/uwsgi/README.Debian.gz</span>
159+<span class="c1"># For uWSGI debian uses the LSB init process, this might be changed</span>
160+<span class="c1"># one day, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833067</span>
161+
162+create /etc/uwsgi/apps-available/searx.ini
157163enable: sudo -H ln -s /etc/uwsgi/apps-available/searx.ini /etc/uwsgi/apps-enabled/
158164start: sudo -H service uwsgi start searx
159165restart: sudo -H service uwsgi restart searx
160166stop: sudo -H service uwsgi stop searx
161167disable: sudo -H rm /etc/uwsgi/apps-enabled/searx.ini
162−..</p>
168+</pre></div>
169+</div>
170+</div>
171+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
172+<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># systemd --&gt; /usr/lib/systemd/system/uwsgi@.service</span>
173+<span class="c1"># For uWSGI archlinux uses systemd template units, see</span>
174+<span class="c1"># - http://0pointer.de/blog/projects/instances.html</span>
175+<span class="c1"># - https://uwsgi-docs.readthedocs.io/en/latest/Systemd.html#one-service-per-app-in-systemd</span>
176+
177+create: /etc/uwsgi/searx.ini
178+enable: sudo -H systemctl <span class="nb">enable</span> uwsgi@searx
179+start: sudo -H systemctl start uwsgi@searx
180+restart: sudo -H systemctl restart uwsgi@searx
181+stop: sudo -H systemctl stop uwsgi@searx
182+disable: sudo -H systemctl disable uwsgi@searx
183+</pre></div>
184+</div>
163185</div>
164−<blockquote>
165−<div><p># systemd –&gt; /usr/lib/systemd/system/uwsgi&#64;.service
166−# For uWSGI archlinux uses systemd template units, see
167−# - <a class="reference external" href="http://0pointer.de/blog/projects/instances.html">http://0pointer.de/blog/projects/instances.html</a>
168−# - <a class="reference external" href="https://uwsgi-docs.readthedocs.io/en/latest/Systemd.html#one-service-per-app-in-systemd">https://uwsgi-docs.readthedocs.io/en/latest/Systemd.html#one-service-per-app-in-systemd</a></p>
169−<p>create: /etc/uwsgi/searx.ini
170−enable: sudo -H systemctl enable <a class="reference external" href="mailto:uwsgi&#37;&#52;&#48;searx">uwsgi<span>&#64;</span>searx</a>
171−start: sudo -H systemctl start <a class="reference external" href="mailto:uwsgi&#37;&#52;&#48;searx">uwsgi<span>&#64;</span>searx</a>
172−restart: sudo -H systemctl restart <a class="reference external" href="mailto:uwsgi&#37;&#52;&#48;searx">uwsgi<span>&#64;</span>searx</a>
173−stop: sudo -H systemctl stop <a class="reference external" href="mailto:uwsgi&#37;&#52;&#48;searx">uwsgi<span>&#64;</span>searx</a>
174−disable: sudo -H systemctl disable <a class="reference external" href="mailto:uwsgi&#37;&#52;&#48;searx">uwsgi<span>&#64;</span>searx</a>
175−..</p>
176−</div></blockquote>
177186<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
178−<p># systemd –&gt; /usr/lib/systemd/system/uwsgi.service
179−# The unit file starts uWSGI in emperor mode (/etc/uwsgi.ini), see
180−# - <a class="reference external" href="https://uwsgi-docs.readthedocs.io/en/latest/Emperor.html">https://uwsgi-docs.readthedocs.io/en/latest/Emperor.html</a></p>
181−<p>create: /etc/uwsgi.d/searx.ini
187+<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># systemd --&gt; /usr/lib/systemd/system/uwsgi.service</span>
188+<span class="c1"># The unit file starts uWSGI in emperor mode (/etc/uwsgi.ini), see</span>
189+<span class="c1"># - https://uwsgi-docs.readthedocs.io/en/latest/Emperor.html</span>
190+
191+create: /etc/uwsgi.d/searx.ini
182192restart: sudo -H touch /etc/uwsgi.d/searx.ini
183193disable: sudo -H rm /etc/uwsgi.d/searx.ini
184−..</p>
194+</pre></div>
195+</div>
185196</div>
186197</div>
187198<div class="sphinx-tabs docutils container">
@@ -203,254 +214,254 @@ disable: sudo -H rm /etc/uwsgi.d/searx.ini
203214</div>
204215</div>
205216<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu active docutils container">
206−<pre class="code ini literal-block"><code><span class="keyword">[uwsgi]</span>
217+<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">[</span>uwsgi<span class="o">]</span>
207218
208−<span class="comment single"># uWSGI core</span>
209−<span class="comment single"># ----------</span>
210−<span class="comment single">#</span>
211−<span class="comment single"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core</span>
219+<span class="c1"># uWSGI core</span>
220+<span class="c1"># ----------</span>
221+<span class="c1">#</span>
222+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core</span>
212223
213−<span class="comment single"># Who will run the code</span>
214−<span class="name attribute">uid</span> <span class="operator">=</span> <span class="literal string">searx</span>
215−<span class="name attribute">gid</span> <span class="operator">=</span> <span class="literal string">searx</span>
224+<span class="c1"># Who will run the code</span>
225+<span class="nv">uid</span> <span class="o">=</span> searx
226+<span class="nv">gid</span> <span class="o">=</span> searx
216227
217−<span class="comment single"># chdir to specified directory before apps loading</span>
218−<span class="name attribute">chdir</span> <span class="operator">=</span> <span class="literal string">/usr/local/searx/searx-src/searx</span>
228+<span class="c1"># chdir to specified directory before apps loading</span>
229+<span class="nv">chdir</span> <span class="o">=</span> /usr/local/searx/searx-src/searx
219230
220−<span class="comment single"># searx configuration (settings.yml)</span>
221−<span class="name attribute">env</span> <span class="operator">=</span> <span class="literal string">SEARX_SETTINGS_PATH=/etc/searx/settings.yml</span>
231+<span class="c1"># searx configuration (settings.yml)</span>
232+<span class="nv">env</span> <span class="o">=</span> <span class="nv">SEARX_SETTINGS_PATH</span><span class="o">=</span>/etc/searx/settings.yml
222233
223−<span class="comment single"># disable logging for privacy</span>
224−<span class="name attribute">disable-logging</span> <span class="operator">=</span> <span class="literal string">true</span>
234+<span class="c1"># disable logging for privacy</span>
235+disable-logging <span class="o">=</span> <span class="nb">true</span>
225236
226−<span class="comment single"># The right granted on the created socket</span>
227−<span class="name attribute">chmod-socket</span> <span class="operator">=</span> <span class="literal string">666</span>
237+<span class="c1"># The right granted on the created socket</span>
238+chmod-socket <span class="o">=</span> 666
228239
229−<span class="comment single"># Plugin to use and interpretor config</span>
230−<span class="name attribute">single-interpreter</span> <span class="operator">=</span> <span class="literal string">true</span>
240+<span class="c1"># Plugin to use and interpretor config</span>
241+single-interpreter <span class="o">=</span> <span class="nb">true</span>
231242
232−<span class="comment single"># enable master process</span>
233−<span class="name attribute">master</span> <span class="operator">=</span> <span class="literal string">true</span>
243+<span class="c1"># enable master process</span>
244+<span class="nv">master</span> <span class="o">=</span> <span class="nb">true</span>
234245
235−<span class="comment single"># load apps in each worker instead of the master</span>
236−<span class="name attribute">lazy-apps</span> <span class="operator">=</span> <span class="literal string">true</span>
246+<span class="c1"># load apps in each worker instead of the master</span>
247+lazy-apps <span class="o">=</span> <span class="nb">true</span>
237248
238−<span class="comment single"># load uWSGI plugins</span>
239−<span class="name attribute">plugin</span> <span class="operator">=</span> <span class="literal string">python3,http</span>
249+<span class="c1"># load uWSGI plugins</span>
250+<span class="nv">plugin</span> <span class="o">=</span> python3,http
240251
241−<span class="comment single"># By default the Python plugin does not initialize the GIL. This means your</span>
242−<span class="comment single"># app-generated threads will not run. If you need threads, remember to enable</span>
243−<span class="comment single"># them with enable-threads. Running uWSGI in multithreading mode (with the</span>
244−<span class="comment single"># threads options) will automatically enable threading support. This *strange*</span>
245−<span class="comment single"># default behaviour is for performance reasons.</span>
246−<span class="name attribute">enable-threads</span> <span class="operator">=</span> <span class="literal string">true</span>
252+<span class="c1"># By default the Python plugin does not initialize the GIL. This means your</span>
253+<span class="c1"># app-generated threads will not run. If you need threads, remember to enable</span>
254+<span class="c1"># them with enable-threads. Running uWSGI in multithreading mode (with the</span>
255+<span class="c1"># threads options) will automatically enable threading support. This *strange*</span>
256+<span class="c1"># default behaviour is for performance reasons.</span>
257+enable-threads <span class="o">=</span> <span class="nb">true</span>
247258
248259
249−<span class="comment single"># plugin: python</span>
250−<span class="comment single"># --------------</span>
251−<span class="comment single">#</span>
252−<span class="comment single"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python</span>
260+<span class="c1"># plugin: python</span>
261+<span class="c1"># --------------</span>
262+<span class="c1">#</span>
263+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python</span>
253264
254−<span class="comment single"># load a WSGI module</span>
255−<span class="name attribute">module</span> <span class="operator">=</span> <span class="literal string">searx.webapp</span>
265+<span class="c1"># load a WSGI module</span>
266+<span class="nv">module</span> <span class="o">=</span> searx.webapp
256267
257−<span class="comment single"># set PYTHONHOME/virtualenv</span>
258−<span class="name attribute">virtualenv</span> <span class="operator">=</span> <span class="literal string">/usr/local/searx/searx-pyenv</span>
268+<span class="c1"># set PYTHONHOME/virtualenv</span>
269+<span class="nv">virtualenv</span> <span class="o">=</span> /usr/local/searx/searx-pyenv
259270
260−<span class="comment single"># add directory (or glob) to pythonpath</span>
261−<span class="name attribute">pythonpath</span> <span class="operator">=</span> <span class="literal string">/usr/local/searx/searx-src</span>
271+<span class="c1"># add directory (or glob) to pythonpath</span>
272+<span class="nv">pythonpath</span> <span class="o">=</span> /usr/local/searx/searx-src
262273
263274
264−<span class="comment single"># speak to upstream</span>
265−<span class="comment single"># -----------------</span>
266−<span class="comment single">#</span>
267−<span class="comment single"># Activate the 'http' configuration for filtron or activate the 'socket'</span>
268−<span class="comment single"># configuration if you setup your HTTP server to use uWSGI protocol via sockets.</span>
275+<span class="c1"># speak to upstream</span>
276+<span class="c1"># -----------------</span>
277+<span class="c1">#</span>
278+<span class="c1"># Activate the &#39;http&#39; configuration for filtron or activate the &#39;socket&#39;</span>
279+<span class="c1"># configuration if you setup your HTTP server to use uWSGI protocol via sockets.</span>
269280
270−<span class="comment single"># using IP:</span>
271−<span class="comment single">#</span>
272−<span class="comment single"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http</span>
273−<span class="comment single"># Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html</span>
281+<span class="c1"># using IP:</span>
282+<span class="c1">#</span>
283+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http</span>
284+<span class="c1"># Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html</span>
274285
275−<span class="name attribute">http</span> <span class="operator">=</span> <span class="literal string">127.0.0.1:8888</span>
286+<span class="nv">http</span> <span class="o">=</span> 127.0.0.1:8888
276287
277−<span class="comment single"># using unix-sockets:</span>
278−<span class="comment single">#</span>
279−<span class="comment single"># On some distributions you need to create the app folder for the sockets::</span>
280−<span class="comment single">#</span>
281−<span class="comment single"># mkdir -p /run/uwsgi/app/searx</span>
282−<span class="comment single"># chmod -R searx:searx /run/uwsgi/app/searx</span>
283−<span class="comment single">#</span>
284−<span class="comment single"># socket = /run/uwsgi/app/searx/socket</span>
285−
286−<span class="error">..</span></code></pre>
288+<span class="c1"># using unix-sockets:</span>
289+<span class="c1">#</span>
290+<span class="c1"># On some distributions you need to create the app folder for the sockets::</span>
291+<span class="c1">#</span>
292+<span class="c1"># mkdir -p /run/uwsgi/app/searx</span>
293+<span class="c1"># chmod -R searx:searx /run/uwsgi/app/searx</span>
294+<span class="c1">#</span>
295+<span class="c1"># socket = /run/uwsgi/app/searx/socket</span>
296+</pre></div>
297+</div>
287298</div>
288299<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
289−<pre class="code ini literal-block"><code><span class="keyword">[uwsgi]</span>
300+<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">[</span>uwsgi<span class="o">]</span>
290301
291−<span class="comment single"># uWSGI core</span>
292−<span class="comment single"># ----------</span>
293−<span class="comment single">#</span>
294−<span class="comment single"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core</span>
302+<span class="c1"># uWSGI core</span>
303+<span class="c1"># ----------</span>
304+<span class="c1">#</span>
305+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core</span>
295306
296−<span class="comment single"># Who will run the code</span>
297−<span class="name attribute">uid</span> <span class="operator">=</span> <span class="literal string">searx</span>
298−<span class="name attribute">gid</span> <span class="operator">=</span> <span class="literal string">searx</span>
307+<span class="c1"># Who will run the code</span>
308+<span class="nv">uid</span> <span class="o">=</span> searx
309+<span class="nv">gid</span> <span class="o">=</span> searx
299310
300−<span class="comment single"># chdir to specified directory before apps loading</span>
301−<span class="name attribute">chdir</span> <span class="operator">=</span> <span class="literal string">/usr/local/searx/searx-src/searx</span>
311+<span class="c1"># chdir to specified directory before apps loading</span>
312+<span class="nv">chdir</span> <span class="o">=</span> /usr/local/searx/searx-src/searx
302313
303−<span class="comment single"># searx configuration (settings.yml)</span>
304−<span class="name attribute">env</span> <span class="operator">=</span> <span class="literal string">SEARX_SETTINGS_PATH=/etc/searx/settings.yml</span>
314+<span class="c1"># searx configuration (settings.yml)</span>
315+<span class="nv">env</span> <span class="o">=</span> <span class="nv">SEARX_SETTINGS_PATH</span><span class="o">=</span>/etc/searx/settings.yml
305316
306−<span class="comment single"># disable logging for privacy</span>
307−<span class="name attribute">logger</span> <span class="operator">=</span> <span class="literal string">systemd</span>
308−<span class="name attribute">disable-logging</span> <span class="operator">=</span> <span class="literal string">true</span>
317+<span class="c1"># disable logging for privacy</span>
318+<span class="nv">logger</span> <span class="o">=</span> systemd
319+disable-logging <span class="o">=</span> <span class="nb">true</span>
309320
310−<span class="comment single"># The right granted on the created socket</span>
311−<span class="name attribute">chmod-socket</span> <span class="operator">=</span> <span class="literal string">666</span>
321+<span class="c1"># The right granted on the created socket</span>
322+chmod-socket <span class="o">=</span> 666
312323
313−<span class="comment single"># Plugin to use and interpretor config</span>
314−<span class="name attribute">single-interpreter</span> <span class="operator">=</span> <span class="literal string">true</span>
324+<span class="c1"># Plugin to use and interpretor config</span>
325+single-interpreter <span class="o">=</span> <span class="nb">true</span>
315326
316−<span class="comment single"># enable master process</span>
317−<span class="name attribute">master</span> <span class="operator">=</span> <span class="literal string">true</span>
327+<span class="c1"># enable master process</span>
328+<span class="nv">master</span> <span class="o">=</span> <span class="nb">true</span>
318329
319−<span class="comment single"># load apps in each worker instead of the master</span>
320−<span class="name attribute">lazy-apps</span> <span class="operator">=</span> <span class="literal string">true</span>
330+<span class="c1"># load apps in each worker instead of the master</span>
331+lazy-apps <span class="o">=</span> <span class="nb">true</span>
321332
322−<span class="comment single"># load uWSGI plugins</span>
323−<span class="name attribute">plugin</span> <span class="operator">=</span> <span class="literal string">python</span>
333+<span class="c1"># load uWSGI plugins</span>
334+<span class="nv">plugin</span> <span class="o">=</span> python
324335
325−<span class="comment single"># By default the Python plugin does not initialize the GIL. This means your</span>
326−<span class="comment single"># app-generated threads will not run. If you need threads, remember to enable</span>
327−<span class="comment single"># them with enable-threads. Running uWSGI in multithreading mode (with the</span>
328−<span class="comment single"># threads options) will automatically enable threading support. This *strange*</span>
329−<span class="comment single"># default behaviour is for performance reasons.</span>
330−<span class="name attribute">enable-threads</span> <span class="operator">=</span> <span class="literal string">true</span>
336+<span class="c1"># By default the Python plugin does not initialize the GIL. This means your</span>
337+<span class="c1"># app-generated threads will not run. If you need threads, remember to enable</span>
338+<span class="c1"># them with enable-threads. Running uWSGI in multithreading mode (with the</span>
339+<span class="c1"># threads options) will automatically enable threading support. This *strange*</span>
340+<span class="c1"># default behaviour is for performance reasons.</span>
341+enable-threads <span class="o">=</span> <span class="nb">true</span>
331342
332343
333−<span class="comment single"># plugin: python</span>
334−<span class="comment single"># --------------</span>
335−<span class="comment single">#</span>
336−<span class="comment single"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python</span>
344+<span class="c1"># plugin: python</span>
345+<span class="c1"># --------------</span>
346+<span class="c1">#</span>
347+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python</span>
337348
338−<span class="comment single"># load a WSGI module</span>
339−<span class="name attribute">module</span> <span class="operator">=</span> <span class="literal string">searx.webapp</span>
349+<span class="c1"># load a WSGI module</span>
350+<span class="nv">module</span> <span class="o">=</span> searx.webapp
340351
341−<span class="comment single"># set PYTHONHOME/virtualenv</span>
342−<span class="name attribute">virtualenv</span> <span class="operator">=</span> <span class="literal string">/usr/local/searx/searx-pyenv</span>
352+<span class="c1"># set PYTHONHOME/virtualenv</span>
353+<span class="nv">virtualenv</span> <span class="o">=</span> /usr/local/searx/searx-pyenv
343354
344−<span class="comment single"># add directory (or glob) to pythonpath</span>
345−<span class="name attribute">pythonpath</span> <span class="operator">=</span> <span class="literal string">/usr/local/searx/searx-src</span>
355+<span class="c1"># add directory (or glob) to pythonpath</span>
356+<span class="nv">pythonpath</span> <span class="o">=</span> /usr/local/searx/searx-src
346357
347358
348−<span class="comment single"># speak to upstream</span>
349−<span class="comment single"># -----------------</span>
350−<span class="comment single">#</span>
351−<span class="comment single"># Activate the 'http' configuration for filtron or activate the 'socket'</span>
352−<span class="comment single"># configuration if you setup your HTTP server to use uWSGI protocol via sockets.</span>
359+<span class="c1"># speak to upstream</span>
360+<span class="c1"># -----------------</span>
361+<span class="c1">#</span>
362+<span class="c1"># Activate the &#39;http&#39; configuration for filtron or activate the &#39;socket&#39;</span>
363+<span class="c1"># configuration if you setup your HTTP server to use uWSGI protocol via sockets.</span>
353364
354−<span class="comment single"># using IP:</span>
355−<span class="comment single">#</span>
356−<span class="comment single"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http</span>
357−<span class="comment single"># Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html</span>
365+<span class="c1"># using IP:</span>
366+<span class="c1">#</span>
367+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http</span>
368+<span class="c1"># Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html</span>
358369
359−<span class="name attribute">http</span> <span class="operator">=</span> <span class="literal string">127.0.0.1:8888</span>
370+<span class="nv">http</span> <span class="o">=</span> 127.0.0.1:8888
360371
361−<span class="comment single"># using unix-sockets:</span>
362−<span class="comment single">#</span>
363−<span class="comment single"># On some distributions you need to create the app folder for the sockets::</span>
364−<span class="comment single">#</span>
365−<span class="comment single"># mkdir -p /run/uwsgi/app/searx</span>
366−<span class="comment single"># chown -R searx:searx /run/uwsgi/app/searx</span>
367−<span class="comment single">#</span>
368−<span class="comment single"># socket = /run/uwsgi/app/searx/socket</span>
369−
370−<span class="error">..</span></code></pre>
372+<span class="c1"># using unix-sockets:</span>
373+<span class="c1">#</span>
374+<span class="c1"># On some distributions you need to create the app folder for the sockets::</span>
375+<span class="c1">#</span>
376+<span class="c1"># mkdir -p /run/uwsgi/app/searx</span>
377+<span class="c1"># chown -R searx:searx /run/uwsgi/app/searx</span>
378+<span class="c1">#</span>
379+<span class="c1"># socket = /run/uwsgi/app/searx/socket</span>
380+</pre></div>
381+</div>
371382</div>
372383<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
373−<pre class="code ini literal-block"><code><span class="keyword">[uwsgi]</span>
384+<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">[</span>uwsgi<span class="o">]</span>
374385
375−<span class="comment single"># uWSGI core</span>
376−<span class="comment single"># ----------</span>
377−<span class="comment single">#</span>
378−<span class="comment single"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core</span>
386+<span class="c1"># uWSGI core</span>
387+<span class="c1"># ----------</span>
388+<span class="c1">#</span>
389+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core</span>
379390
380−<span class="comment single"># Who will run the code</span>
381−<span class="name attribute">uid</span> <span class="operator">=</span> <span class="literal string">searx</span>
382−<span class="name attribute">gid</span> <span class="operator">=</span> <span class="literal string">searx</span>
391+<span class="c1"># Who will run the code</span>
392+<span class="nv">uid</span> <span class="o">=</span> searx
393+<span class="nv">gid</span> <span class="o">=</span> searx
383394
384−<span class="comment single"># chdir to specified directory before apps loading</span>
385−<span class="name attribute">chdir</span> <span class="operator">=</span> <span class="literal string">/usr/local/searx/searx-src/searx</span>
395+<span class="c1"># chdir to specified directory before apps loading</span>
396+<span class="nv">chdir</span> <span class="o">=</span> /usr/local/searx/searx-src/searx
386397
387−<span class="comment single"># searx configuration (settings.yml)</span>
388−<span class="name attribute">env</span> <span class="operator">=</span> <span class="literal string">SEARX_SETTINGS_PATH=/etc/searx/settings.yml</span>
398+<span class="c1"># searx configuration (settings.yml)</span>
399+<span class="nv">env</span> <span class="o">=</span> <span class="nv">SEARX_SETTINGS_PATH</span><span class="o">=</span>/etc/searx/settings.yml
389400
390−<span class="comment single"># disable logging for privacy</span>
391−<span class="name attribute">disable-logging</span> <span class="operator">=</span> <span class="literal string">true</span>
401+<span class="c1"># disable logging for privacy</span>
402+disable-logging <span class="o">=</span> <span class="nb">true</span>
392403
393−<span class="comment single"># The right granted on the created socket</span>
394−<span class="name attribute">chmod-socket</span> <span class="operator">=</span> <span class="literal string">666</span>
404+<span class="c1"># The right granted on the created socket</span>
405+chmod-socket <span class="o">=</span> 666
395406
396−<span class="comment single"># Plugin to use and interpretor config</span>
397−<span class="name attribute">single-interpreter</span> <span class="operator">=</span> <span class="literal string">true</span>
407+<span class="c1"># Plugin to use and interpretor config</span>
408+single-interpreter <span class="o">=</span> <span class="nb">true</span>
398409
399−<span class="comment single"># enable master process</span>
400−<span class="name attribute">master</span> <span class="operator">=</span> <span class="literal string">true</span>
410+<span class="c1"># enable master process</span>
411+<span class="nv">master</span> <span class="o">=</span> <span class="nb">true</span>
401412
402−<span class="comment single"># load apps in each worker instead of the master</span>
403−<span class="name attribute">lazy-apps</span> <span class="operator">=</span> <span class="literal string">true</span>
413+<span class="c1"># load apps in each worker instead of the master</span>
414+lazy-apps <span class="o">=</span> <span class="nb">true</span>
404415
405−<span class="comment single"># load uWSGI plugins</span>
406−<span class="name attribute">plugin</span> <span class="operator">=</span> <span class="literal string">python3,http</span>
416+<span class="c1"># load uWSGI plugins</span>
417+<span class="nv">plugin</span> <span class="o">=</span> python3,http
407418
408−<span class="comment single"># By default the Python plugin does not initialize the GIL. This means your</span>
409−<span class="comment single"># app-generated threads will not run. If you need threads, remember to enable</span>
410−<span class="comment single"># them with enable-threads. Running uWSGI in multithreading mode (with the</span>
411−<span class="comment single"># threads options) will automatically enable threading support. This *strange*</span>
412−<span class="comment single"># default behaviour is for performance reasons.</span>
413−<span class="name attribute">enable-threads</span> <span class="operator">=</span> <span class="literal string">true</span>
419+<span class="c1"># By default the Python plugin does not initialize the GIL. This means your</span>
420+<span class="c1"># app-generated threads will not run. If you need threads, remember to enable</span>
421+<span class="c1"># them with enable-threads. Running uWSGI in multithreading mode (with the</span>
422+<span class="c1"># threads options) will automatically enable threading support. This *strange*</span>
423+<span class="c1"># default behaviour is for performance reasons.</span>
424+enable-threads <span class="o">=</span> <span class="nb">true</span>
414425
415426
416−<span class="comment single"># plugin: python</span>
417−<span class="comment single"># --------------</span>
418−<span class="comment single">#</span>
419−<span class="comment single"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python</span>
427+<span class="c1"># plugin: python</span>
428+<span class="c1"># --------------</span>
429+<span class="c1">#</span>
430+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python</span>
420431
421−<span class="comment single"># load a WSGI module</span>
422−<span class="name attribute">module</span> <span class="operator">=</span> <span class="literal string">searx.webapp</span>
432+<span class="c1"># load a WSGI module</span>
433+<span class="nv">module</span> <span class="o">=</span> searx.webapp
423434
424−<span class="comment single"># set PYTHONHOME/virtualenv</span>
425−<span class="name attribute">virtualenv</span> <span class="operator">=</span> <span class="literal string">/usr/local/searx/searx-pyenv</span>
435+<span class="c1"># set PYTHONHOME/virtualenv</span>
436+<span class="nv">virtualenv</span> <span class="o">=</span> /usr/local/searx/searx-pyenv
426437
427−<span class="comment single"># add directory (or glob) to pythonpath</span>
428−<span class="name attribute">pythonpath</span> <span class="operator">=</span> <span class="literal string">/usr/local/searx/searx-src</span>
438+<span class="c1"># add directory (or glob) to pythonpath</span>
439+<span class="nv">pythonpath</span> <span class="o">=</span> /usr/local/searx/searx-src
429440
430441
431−<span class="comment single"># speak to upstream</span>
432−<span class="comment single"># -----------------</span>
433−<span class="comment single">#</span>
434−<span class="comment single"># Activate the 'http' configuration for filtron or activate the 'socket'</span>
435−<span class="comment single"># configuration if you setup your HTTP server to use uWSGI protocol via sockets.</span>
442+<span class="c1"># speak to upstream</span>
443+<span class="c1"># -----------------</span>
444+<span class="c1">#</span>
445+<span class="c1"># Activate the &#39;http&#39; configuration for filtron or activate the &#39;socket&#39;</span>
446+<span class="c1"># configuration if you setup your HTTP server to use uWSGI protocol via sockets.</span>
436447
437−<span class="comment single"># using IP:</span>
438−<span class="comment single">#</span>
439−<span class="comment single"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http</span>
440−<span class="comment single"># Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html</span>
448+<span class="c1"># using IP:</span>
449+<span class="c1">#</span>
450+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http</span>
451+<span class="c1"># Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html</span>
441452
442−<span class="name attribute">http</span> <span class="operator">=</span> <span class="literal string">127.0.0.1:8888</span>
453+<span class="nv">http</span> <span class="o">=</span> 127.0.0.1:8888
443454
444−<span class="comment single"># using unix-sockets:</span>
445−<span class="comment single">#</span>
446−<span class="comment single"># On some distributions you need to create the app folder for the sockets::</span>
447−<span class="comment single">#</span>
448−<span class="comment single"># mkdir -p /run/uwsgi/app/searx</span>
449−<span class="comment single"># chmod -R searx:searx /run/uwsgi/app/searx</span>
450−<span class="comment single">#</span>
451−<span class="comment single"># socket = /run/uwsgi/app/searx/socket</span>
452−
453−<span class="error">..</span></code></pre>
455+<span class="c1"># using unix-sockets:</span>
456+<span class="c1">#</span>
457+<span class="c1"># On some distributions you need to create the app folder for the sockets::</span>
458+<span class="c1">#</span>
459+<span class="c1"># mkdir -p /run/uwsgi/app/searx</span>
460+<span class="c1"># chmod -R searx:searx /run/uwsgi/app/searx</span>
461+<span class="c1">#</span>
462+<span class="c1"># socket = /run/uwsgi/app/searx/socket</span>
463+</pre></div>
464+</div>
454465</div>
455466</div>
456467</div>
blog/index.html+11−3
@@ -16,7 +16,7 @@
1616 <script src="../_static/language_data.js"></script>
1717 <link rel="index" title="Index" href="../genindex.html" />
1818 <link rel="search" title="Search" href="../search.html" />
19− <link rel="next" title="Introducing Python 3 support" href="python3.html" />
19+ <link rel="next" title="Developing in Linux containers [202006]" href="lxcdev-202006.html" />
2020 <link rel="prev" title="utils/lxc.sh" href="../utils/lxc.sh.html" />
2121 <script>DOCUMENTATION_OPTIONS.URL_ROOT = '../';</script>
2222
@@ -28,7 +28,7 @@
2828 <a href="../genindex.html" title="General Index"
2929 accesskey="I">index</a></li>
3030 <li class="right" >
31− <a href="python3.html" title="Introducing Python 3 support"
31+ <a href="lxcdev-202006.html" title="Developing in Linux containers [202006]"
3232 accesskey="N">next</a> |</li>
3333 <li class="right" >
3434 <a href="../utils/lxc.sh.html" title="utils/lxc.sh"
@@ -48,6 +48,14 @@
4848<div class="toctree-wrapper compound">
4949<p class="caption"><span class="caption-text">Contents</span></p>
5050<ul>
51+<li class="toctree-l1"><a class="reference internal" href="lxcdev-202006.html">Developing in Linux containers [202006]</a><ul>
52+<li class="toctree-l2"><a class="reference internal" href="lxcdev-202006.html#motivation">Motivation</a></li>
53+<li class="toctree-l2"><a class="reference internal" href="lxcdev-202006.html#gentlemen-start-your-engines">Gentlemen, start your engines!</a></li>
54+<li class="toctree-l2"><a class="reference internal" href="lxcdev-202006.html#in-containers-work-as-usual">In containers, work as usual</a></li>
55+<li class="toctree-l2"><a class="reference internal" href="lxcdev-202006.html#wrap-production-into-developer-suite">Wrap production into developer suite</a></li>
56+<li class="toctree-l2"><a class="reference internal" href="lxcdev-202006.html#abstract">Abstract</a></li>
57+</ul>
58+</li>
5159<li class="toctree-l1"><a class="reference internal" href="python3.html">Introducing Python 3 support</a><ul>
5260<li class="toctree-l2"><a class="reference internal" href="python3.html#how-to-run-searx-using-python-3">How to run searx using Python 3</a></li>
5361<li class="toctree-l2"><a class="reference internal" href="python3.html#fun-facts">Fun facts</a></li>
@@ -105,7 +113,7 @@
105113 <li><a href="../index.html">Overview</a>
106114 <ul>
107115 <li>Previous: <a href="../utils/lxc.sh.html" title="previous chapter"><code class="docutils literal notranslate"><span class="pre">utils/lxc.sh</span></code></a>
108− <li>Next: <a href="python3.html" title="next chapter">Introducing Python 3 support</a>
116+ <li>Next: <a href="lxcdev-202006.html" title="next chapter">Developing in Linux containers [202006]</a>
109117 </ul>
110118 </li>
111119</ul>
blog/lxcdev-202006.htmlnew file+591
@@ -0,0 +1,591 @@
1+
2+<!DOCTYPE html>
3+
4+<html>
5+ <head>
6+ <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
8+ <meta name="viewport" content="width=device-width, initial-scale=1">
9+ <title>Developing in Linux containers [202006] &#8212; Searx Documentation (Searx-0.16.0.tex)</title>
10+ <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
11+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
16+ <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
17+ <script src="../_static/jquery.js"></script>
18+ <script src="../_static/underscore.js"></script>
19+ <script src="../_static/doctools.js"></script>
20+ <script src="../_static/language_data.js"></script>
21+ <script src="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.js"></script>
22+ <script src="../_static/sphinx_tabs/tabs.js"></script>
23+ <link rel="index" title="Index" href="../genindex.html" />
24+ <link rel="search" title="Search" href="../search.html" />
25+ <link rel="next" title="Introducing Python 3 support" href="python3.html" />
26+ <link rel="prev" title="Blog" href="index.html" />
27+ <script>DOCUMENTATION_OPTIONS.URL_ROOT = '../';</script>
28+
29+ </head><body>
30+ <div class="related" role="navigation" aria-label="related navigation">
31+ <h3>Navigation</h3>
32+ <ul>
33+ <li class="right" style="margin-right: 10px">
34+ <a href="../genindex.html" title="General Index"
35+ accesskey="I">index</a></li>
36+ <li class="right" >
37+ <a href="python3.html" title="Introducing Python 3 support"
38+ accesskey="N">next</a> |</li>
39+ <li class="right" >
40+ <a href="index.html" title="Blog"
41+ accesskey="P">previous</a> |</li>
42+ <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.16.0.tex)</a> &#187;</li>
43+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Blog</a> &#187;</li>
44+ <li class="nav-item nav-item-this"><a href="">Developing in Linux containers [202006]</a></li>
45+ </ul>
46+ </div>
47+
48+ <div class="document">
49+ <div class="documentwrapper">
50+ <div class="bodywrapper">
51+ <div class="body" role="main">
52+
53+ <div class="section" id="developing-in-linux-containers-202006">
54+<span id="blog-lxcdev-202006"></span><h1>Developing in Linux containers [202006]<a class="headerlink" href="#developing-in-linux-containers-202006" title="Permalink to this headline">¶</a></h1>
55+<div class="sidebar">
56+<p class="sidebar-title">Audience</p>
57+<p>This blog post is written for experienced admins and developers / readers
58+should have a serious meaning about: <em>distributed</em>, <em>merge</em> and <em>linux
59+container</em>.</p>
60+</div>
61+<div class="contents local topic" id="contents">
62+<p class="topic-title">Contents</p>
63+<ul class="simple">
64+<li><p><a class="reference internal" href="#motivation" id="id1">Motivation</a></p></li>
65+<li><p><a class="reference internal" href="#gentlemen-start-your-engines" id="id2">Gentlemen, start your engines!</a></p></li>
66+<li><p><a class="reference internal" href="#in-containers-work-as-usual" id="id3">In containers, work as usual</a></p></li>
67+<li><p><a class="reference internal" href="#wrap-production-into-developer-suite" id="id4">Wrap production into developer suite</a></p></li>
68+<li><p><a class="reference internal" href="#abstract" id="id5">Abstract</a></p></li>
69+</ul>
70+</div>
71+<p>In PR <a class="reference external" href="https://github.com/asciimoo/searx/pull/1803">#1803</a> we added a lot of scripts to Searx’s boilerplate. In this blog
72+post I will show you, how you can make use of them in <em>distributed and
73+heterogeneous development cycles</em> (TL;DR; jump to the <a class="reference internal" href="#blog-lxcdev-202006-abstract"><span class="std std-ref">Abstract</span></a>).</p>
74+<div class="section" id="motivation">
75+<h2><a class="toc-backref" href="#id1">Motivation</a><a class="headerlink" href="#motivation" title="Permalink to this headline">¶</a></h2>
76+<p>Normally in our development cycle, we edit the sources and run some test and/or
77+builds by using <code class="docutils literal notranslate"><span class="pre">make</span></code> before we commit. This cycle is simple and perfect but
78+might fail in some aspects we should not overlook.</p>
79+<blockquote>
80+<div><p>The environment in which we run all our development processes matters!</p>
81+</div></blockquote>
82+<p>The <a class="reference internal" href="../dev/makefile.html#makefile"><span class="std std-ref">Makefile Targets</span></a> and the <a class="reference internal" href="../dev/makefile.html#make-pyenv"><span class="std std-ref">Python environment</span></a> encapsulate a lot for us, but they
83+do not have access to all prerequisites. For example, there may have
84+dependencies on packages that are installed on the developer’s desktop, but
85+usually are not preinstalled on a server or client system. Another examples
86+are; settings have been made to the software on the developer’s host that would
87+never be set on a <em>production</em> system.</p>
88+<p><em>Linux Containers</em> (<a class="reference external" href="https://linuxcontainers.org/lxc/introduction/">LXC</a>) are isolate environments and not to mix up on
89+developer’s all the prerequisites of all the projects he contribute to, is
90+always a good choice.</p>
91+<p>The scripts from PR <a class="reference external" href="https://github.com/asciimoo/searx/pull/1803">#1803</a> can divide in those to install and maintain
92+software:</p>
93+<ul class="simple">
94+<li><p><a class="reference internal" href="../utils/searx.sh.html#searx-sh"><span class="std std-ref">utils/searx.sh</span></a></p></li>
95+<li><p><a class="reference internal" href="../utils/filtron.sh.html#filtron-sh"><span class="std std-ref">utils/filtron.sh</span></a></p></li>
96+<li><p><a class="reference internal" href="../utils/morty.sh.html#morty-sh"><span class="std std-ref">utils/morty.sh</span></a></p></li>
97+</ul>
98+<p>and the script <a class="reference internal" href="../utils/lxc.sh.html#lxc-sh"><span class="std std-ref">utils/lxc.sh</span></a>, with we can scale our installation, maintenance or
99+even development tasks over a stack of containers, what we call: <em>Searx’s lxc
100+suite</em>.</p>
101+</div>
102+<div class="section" id="gentlemen-start-your-engines">
103+<h2><a class="toc-backref" href="#id2">Gentlemen, start your engines!</a><a class="headerlink" href="#gentlemen-start-your-engines" title="Permalink to this headline">¶</a></h2>
104+<p>Before you can start with containers, you need to install and initiate <a class="reference external" href="https://linuxcontainers.org/lxd/introduction/">LXD</a>
105+once:</p>
106+<div class="sphinx-tabs docutils container">
107+<div class="ui top attached tabular menu sphinx-menu docutils container">
108+<div class="active item sphinx-data-tab-ZGVza3RvcA== docutils container">
109+<div class="docutils container">
110+<p>desktop</p>
111+</div>
112+</div>
113+</div>
114+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-ZGVza3RvcA== active docutils container">
115+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ snap install lxd
116+$ lxd init --auto
117+</pre></div>
118+</div>
119+</div>
120+</div>
121+<p>And you need to clone from origin or if you have your own fork, clone from your
122+fork:</p>
123+<div class="sphinx-tabs docutils container">
124+<div class="ui top attached tabular menu sphinx-menu docutils container">
125+<div class="active item sphinx-data-tab-ZGVza3RvcA== docutils container">
126+<div class="docutils container">
127+<p>desktop</p>
128+</div>
129+</div>
130+</div>
131+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-ZGVza3RvcA== active docutils container">
132+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ <span class="nb">cd</span> ~/Downloads
133+$ git clone https://github.com/asciimoo/searx.git
134+$ <span class="nb">cd</span> searx
135+</pre></div>
136+</div>
137+</div>
138+</div>
139+<p>The <a class="reference internal" href="../utils/lxc.sh.html#lxc-searx-env"><span class="std std-ref">searx suite</span></a> consists of several images, see <code class="docutils literal notranslate"><span class="pre">export</span>
140+<span class="pre">LXC_SUITE=(...</span></code> near by <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/utils/lxc-searx.env#L19">git://utils/lxc-searx.env#L19</a>. For this blog post
141+we exercise on a <a class="reference external" href="https://www.archlinux.org/">archlinux</a> image. The container of this image is named
142+<code class="docutils literal notranslate"><span class="pre">searx-archlinux</span></code>. Lets build the container, but be sure that this container
143+does not already exists, so first lets remove possible old one:</p>
144+<div class="sphinx-tabs docutils container">
145+<div class="ui top attached tabular menu sphinx-menu docutils container">
146+<div class="active item sphinx-data-tab-ZGVza3RvcA== docutils container">
147+<div class="docutils container">
148+<p>desktop</p>
149+</div>
150+</div>
151+</div>
152+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-ZGVza3RvcA== active docutils container">
153+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh remove searx-archlinux
154+$ sudo -H ./utils/lxc.sh build searx-archlinux
155+</pre></div>
156+</div>
157+</div>
158+</div>
159+<div class="sidebar">
160+<p class="sidebar-title">The <code class="docutils literal notranslate"><span class="pre">searx-archlinux</span></code> container</p>
161+<p>is the base of all our exercises here.</p>
162+</div>
163+<p>In this container we install all services <a class="reference internal" href="../utils/lxc.sh.html#lxc-sh-install-suite"><span class="std std-ref">including searx, morty &amp; filtron</span></a> in once:</p>
164+<div class="sphinx-tabs docutils container">
165+<div class="ui top attached tabular menu sphinx-menu docutils container">
166+<div class="active item sphinx-data-tab-ZGVza3RvcA== docutils container">
167+<div class="docutils container">
168+<p>desktop</p>
169+</div>
170+</div>
171+</div>
172+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-ZGVza3RvcA== active docutils container">
173+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh install suite searx-archlinux
174+</pre></div>
175+</div>
176+</div>
177+</div>
178+<p>To proxy HTTP from filtron and morty in the container to the outside of the
179+container, install nginx into the container. Once for the bot blocker filtron:</p>
180+<div class="sphinx-tabs docutils container">
181+<div class="ui top attached tabular menu sphinx-menu docutils container">
182+<div class="active item sphinx-data-tab-ZGVza3RvcA== docutils container">
183+<div class="docutils container">
184+<p>desktop</p>
185+</div>
186+</div>
187+</div>
188+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-ZGVza3RvcA== active docutils container">
189+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh cmd searx-archlinux <span class="se">\</span>
190+ ./utils/filtron.sh nginx install
191+...
192+INFO: got <span class="m">429</span> from http://10.174.184.156/searx
193+</pre></div>
194+</div>
195+</div>
196+</div>
197+<p>and once for the content sanitizer (content proxy morty):</p>
198+<div class="sphinx-tabs docutils container">
199+<div class="ui top attached tabular menu sphinx-menu docutils container">
200+<div class="active item sphinx-data-tab-ZGVza3RvcA== docutils container">
201+<div class="docutils container">
202+<p>desktop</p>
203+</div>
204+</div>
205+</div>
206+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-ZGVza3RvcA== active docutils container">
207+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh cmd searx-archlinux <span class="se">\</span>
208+ ./utils/morty.sh nginx install
209+...
210+INFO: got <span class="m">200</span> from http://10.174.184.156/morty/
211+</pre></div>
212+</div>
213+</div>
214+</div>
215+<div class="sidebar">
216+<p class="sidebar-title">Fully functional searx suite</p>
217+<p>From here on you have a fully functional searx suite running with bot blocker
218+(filtron) and Web content sanitizer (content proxy morty) needed for a
219+<em>privacy protecting</em> search engine.</p>
220+</div>
221+<p>On your system, the IP of your <code class="docutils literal notranslate"><span class="pre">searx-archlinux</span></code> container differs from
222+<a class="reference external" href="http://10.174.184.156/searx">http://10.174.184.156/searx</a>, just open the URL reported in your installation
223+protocol in your WEB browser from the desktop to test the instance from outside
224+of the container.</p>
225+<p>In such a searx suite admins can maintain and access the debug log of the
226+different services quite easy.</p>
227+</div>
228+<div class="section" id="in-containers-work-as-usual">
229+<span id="working-in-containers"></span><h2><a class="toc-backref" href="#id3">In containers, work as usual</a><a class="headerlink" href="#in-containers-work-as-usual" title="Permalink to this headline">¶</a></h2>
230+<p>Usually you open a root-bash using <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">-H</span> <span class="pre">bash</span></code>. In case of LXC containers
231+open the root-bash in the container using <code class="docutils literal notranslate"><span class="pre">./utils/lxc.sh</span> <span class="pre">cmd</span>
232+<span class="pre">searx-archlinux</span></code>:</p>
233+<div class="sphinx-tabs docutils container">
234+<div class="ui top attached tabular menu sphinx-menu docutils container">
235+<div class="active item sphinx-data-tab-ZGVza3RvcA== docutils container">
236+<div class="docutils container">
237+<p>desktop</p>
238+</div>
239+</div>
240+</div>
241+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-ZGVza3RvcA== active docutils container">
242+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh cmd searx-archlinux bash
243+INFO: <span class="o">[</span>searx-archlinux<span class="o">]</span> bash
244+<span class="o">[</span>root@searx-archlinux searx<span class="o">]</span><span class="c1"># pwd</span>
245+/share/searx
246+</pre></div>
247+</div>
248+</div>
249+</div>
250+<p>The prompt <code class="docutils literal notranslate"><span class="pre">[root&#64;searx-archlinux</span> <span class="pre">...]</span></code> signals, that you are the root user in
251+the searx-container. To debug the running searx instance use:</p>
252+<div class="sphinx-tabs docutils container">
253+<div class="ui top attached tabular menu sphinx-menu docutils container">
254+<div class="active item sphinx-data-tab-cm9vdEBzZWFyeC1hcmNobGludXg= docutils container">
255+<div class="docutils container">
256+<p><a class="reference external" href="mailto:root&#37;&#52;&#48;searx-archlinux">root<span>&#64;</span>searx-archlinux</a></p>
257+</div>
258+</div>
259+</div>
260+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-cm9vdEBzZWFyeC1hcmNobGludXg= active docutils container">
261+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ ./utils/searx.sh inspect service
262+...
263+use <span class="o">[</span>CTRL-C<span class="o">]</span> to stop monitoring the log
264+...
265+</pre></div>
266+</div>
267+</div>
268+</div>
269+<p>Back in the browser on your desktop open the service <a class="reference external" href="http://10.174.184.156/searx">http://10.174.184.156/searx</a>
270+and run your application tests while the debug log is shown in the terminal from
271+above. You can stop monitoring using <code class="docutils literal notranslate"><span class="pre">CTRL-C</span></code>, this also disables the <em>“debug
272+option”</em> in searx’s settings file and restarts the searx uwsgi application. To
273+debug services from filtron and morty analogous use:</p>
274+<div class="sphinx-tabs docutils container">
275+<div class="ui top attached tabular menu sphinx-menu docutils container">
276+<div class="active item sphinx-data-tab-cm9vdEBzZWFyeC1hcmNobGludXg= docutils container">
277+<div class="docutils container">
278+<p><a class="reference external" href="mailto:root&#37;&#52;&#48;searx-archlinux">root<span>&#64;</span>searx-archlinux</a></p>
279+</div>
280+</div>
281+</div>
282+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-cm9vdEBzZWFyeC1hcmNobGludXg= active docutils container">
283+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ ./utils/filtron.sh inspect service
284+$ ./utils/morty.sh inspect service
285+</pre></div>
286+</div>
287+</div>
288+</div>
289+<p>Another point we have to notice is that each service (<a class="reference internal" href="../utils/searx.sh.html#searx-sh"><span class="std std-ref">searx</span></a>,
290+<a class="reference internal" href="../utils/filtron.sh.html#filtron-sh"><span class="std std-ref">filtron</span></a> and <a class="reference internal" href="../utils/morty.sh.html#morty-sh"><span class="std std-ref">morty</span></a>) runs under dedicated
291+system user account with the same name (compare <a class="reference internal" href="../admin/installation-searx.html#create-searx-user"><span class="std std-ref">Create user</span></a>). To
292+get a shell from theses accounts, simply call one of the scripts:</p>
293+<div class="sphinx-tabs docutils container">
294+<div class="ui top attached tabular menu sphinx-menu docutils container">
295+<div class="active item sphinx-data-tab-cm9vdEBzZWFyeC1hcmNobGludXg= docutils container">
296+<div class="docutils container">
297+<p><a class="reference external" href="mailto:root&#37;&#52;&#48;searx-archlinux">root<span>&#64;</span>searx-archlinux</a></p>
298+</div>
299+</div>
300+</div>
301+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-cm9vdEBzZWFyeC1hcmNobGludXg= active docutils container">
302+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ ./utils/searx.sh shell
303+$ ./utils/filtron.sh shell
304+$ ./utils/morty.sh shell
305+</pre></div>
306+</div>
307+</div>
308+</div>
309+<p>To get in touch, open a shell from the service user (<a class="reference external" href="mailto:searx&#37;&#52;&#48;searx-archlinux">searx<span>&#64;</span>searx-archlinux</a>):</p>
310+<div class="sphinx-tabs docutils container">
311+<div class="ui top attached tabular menu sphinx-menu docutils container">
312+<div class="active item sphinx-data-tab-ZGVza3RvcA== docutils container">
313+<div class="docutils container">
314+<p>desktop</p>
315+</div>
316+</div>
317+</div>
318+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-ZGVza3RvcA== active docutils container">
319+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh cmd searx-archlinux <span class="se">\</span>
320+./utils/searx.sh shell
321+// <span class="nb">exit</span> with <span class="o">[</span>CTRL-D<span class="o">]</span>
322+<span class="o">(</span>searx-pyenv<span class="o">)</span> <span class="o">[</span>searx@searx-archlinux ~<span class="o">]</span>$ ...
323+</pre></div>
324+</div>
325+</div>
326+</div>
327+<p>The prompt <code class="docutils literal notranslate"><span class="pre">[searx&#64;searx-archlinux]</span></code> signals that you are logged in as system
328+user <code class="docutils literal notranslate"><span class="pre">searx</span></code> in the <code class="docutils literal notranslate"><span class="pre">searx-archlinux</span></code> container and the python <em>virtualenv</em>
329+<code class="docutils literal notranslate"><span class="pre">(searx-pyenv)</span></code> environment is activated.</p>
330+<div class="sphinx-tabs docutils container">
331+<div class="ui top attached tabular menu sphinx-menu docutils container">
332+<div class="active item sphinx-data-tab-c2VhcnhAc2VhcngtYXJjaGxpbnV4 docutils container">
333+<div class="docutils container">
334+<p><a class="reference external" href="mailto:searx&#37;&#52;&#48;searx-archlinux">searx<span>&#64;</span>searx-archlinux</a></p>
335+</div>
336+</div>
337+</div>
338+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-c2VhcnhAc2VhcngtYXJjaGxpbnV4 active docutils container">
339+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="o">(</span>searx-pyenv<span class="o">)</span> <span class="o">[</span>searx@searx-archlinux ~<span class="o">]</span>$ <span class="nb">pwd</span>
340+/usr/local/searx
341+</pre></div>
342+</div>
343+</div>
344+</div>
345+</div>
346+<div class="section" id="wrap-production-into-developer-suite">
347+<h2><a class="toc-backref" href="#id4">Wrap production into developer suite</a><a class="headerlink" href="#wrap-production-into-developer-suite" title="Permalink to this headline">¶</a></h2>
348+<p>In this section we will see how to change the <em>“Fully functional searx suite”</em>
349+from a LXC container (which is quite ready for production) into a developer
350+suite. For this, we have to keep an eye on the <a class="reference internal" href="../admin/installation-searx.html#installation-basic"><span class="std std-ref">Step by step installation</span></a>:</p>
351+<ul class="simple">
352+<li><p>searx setup in: <code class="docutils literal notranslate"><span class="pre">/etc/searx/settings.yml</span></code></p></li>
353+<li><p>searx user’s home: <code class="docutils literal notranslate"><span class="pre">/usr/local/searx</span></code></p></li>
354+<li><p>virtualenv in: <code class="docutils literal notranslate"><span class="pre">/usr/local/searx/searx-pyenv</span></code></p></li>
355+<li><p>searx software in: <code class="docutils literal notranslate"><span class="pre">/usr/local/searx/searx-src</span></code></p></li>
356+</ul>
357+<p>The searx software is a clone of the <code class="docutils literal notranslate"><span class="pre">GIT_URL</span></code> (see <a class="reference internal" href="../dev/makefile.html#makefile-setup"><span class="std std-ref">Makefile setup</span></a>) and
358+the working tree is checked out from the <code class="docutils literal notranslate"><span class="pre">GIT_BRANCH</span></code>. With the use of the
359+<a class="reference internal" href="../utils/searx.sh.html#searx-sh"><span class="std std-ref">utils/searx.sh</span></a> the searx service was installed as <a class="reference internal" href="../admin/installation-uwsgi.html#searx-uwsgi"><span class="std std-ref">uWSGI application</span></a>. To maintain this service, we can use <code class="docutils literal notranslate"><span class="pre">systemctl</span></code> (compare
360+<a class="reference internal" href="../admin/installation-uwsgi.html#uwsgi-configuration"><span class="std std-ref">service architectures on distributions</span></a>).</p>
361+<div class="sphinx-tabs docutils container">
362+<div class="ui top attached tabular menu sphinx-menu docutils container">
363+<div class="active item sphinx-data-tab-ZGVza3RvcA== docutils container">
364+<div class="docutils container">
365+<p>desktop</p>
366+</div>
367+</div>
368+</div>
369+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-ZGVza3RvcA== active docutils container">
370+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh cmd searx-archlinux <span class="se">\</span>
371+ systemctl stop uwsgi@searx
372+</pre></div>
373+</div>
374+</div>
375+</div>
376+<p>With the command above, we stopped the searx uWSGI-App in the archlinux
377+container.</p>
378+<p>The uWSGI-App for the archlinux dsitros is configured in
379+<a class="reference external" href="https://github.com/asciimoo/searx/blob/master/utils/templates/etc/uwsgi/apps-archlinux/searx.ini">git://utils/templates/etc/uwsgi/apps-archlinux/searx.ini</a>, from where at
380+least you should attend the settings of <code class="docutils literal notranslate"><span class="pre">uid</span></code>, <code class="docutils literal notranslate"><span class="pre">chdir</span></code>, <code class="docutils literal notranslate"><span class="pre">env</span></code> and
381+<code class="docutils literal notranslate"><span class="pre">http</span></code>:</p>
382+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>env = SEARX_SETTINGS_PATH=/etc/searx/settings.yml
383+http = 127.0.0.1:8888
384+
385+chdir = /usr/local/searx/searx-src/searx
386+virtualenv = /usr/local/searx/searx-pyenv
387+pythonpath = /usr/local/searx/searx-src
388+</pre></div>
389+</div>
390+<p>If you have read the <a class="reference internal" href="../utils/lxc.sh.html#lxc-sh"><span class="std std-ref">“Good to know section”</span></a> you remember, that
391+each container shares the root folder of the repository and the command
392+<code class="docutils literal notranslate"><span class="pre">utils/lxc.sh</span> <span class="pre">cmd</span></code> handles relative path names <strong>transparent</strong>. To wrap the
393+searx installation into a developer one, we simple have to create a smylink to
394+the <strong>transparent</strong> reposetory from the desktop. Now lets replace the
395+repository at <code class="docutils literal notranslate"><span class="pre">searx-src</span></code> in the container with the working tree from outside
396+of the container:</p>
397+<div class="sphinx-tabs docutils container">
398+<div class="ui top attached tabular menu sphinx-menu docutils container">
399+<div class="active item sphinx-data-tab-Y29udGFpbmVyIGJlY29tZXMgYSBkZXZlbG9wZXIgc3VpdGU= docutils container">
400+<div class="docutils container">
401+<p>container becomes a developer suite</p>
402+</div>
403+</div>
404+</div>
405+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-Y29udGFpbmVyIGJlY29tZXMgYSBkZXZlbG9wZXIgc3VpdGU= active docutils container">
406+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh cmd searx-archlinux <span class="se">\</span>
407+ mv /usr/local/searx/searx-src /usr/local/searx/searx-src.old
408+
409+$ sudo -H ./utils/lxc.sh cmd searx-archlinux <span class="se">\</span>
410+ ln -s /share/searx/ /usr/local/searx/searx-src
411+</pre></div>
412+</div>
413+</div>
414+</div>
415+<p>Now we can develop as usual in the working tree of our desktop system. Every
416+time the software was changed, you have to restart the searx service (in the
417+conatiner):</p>
418+<div class="sphinx-tabs docutils container">
419+<div class="ui top attached tabular menu sphinx-menu docutils container">
420+<div class="active item sphinx-data-tab-ZGVza3RvcA== docutils container">
421+<div class="docutils container">
422+<p>desktop</p>
423+</div>
424+</div>
425+</div>
426+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-ZGVza3RvcA== active docutils container">
427+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh cmd searx-archlinux <span class="se">\</span>
428+ systemctl restart uwsgi@searx
429+</pre></div>
430+</div>
431+</div>
432+</div>
433+<p>Remember: <a class="reference internal" href="#working-in-containers"><span class="std std-ref">In containers, work as usual</span></a> .. here are just some examples from my
434+daily usage:</p>
435+<div class="sphinx-tabs docutils container">
436+<div class="ui top attached tabular menu sphinx-menu docutils container">
437+<div class="active item sphinx-data-tab-ZGVza3RvcA== docutils container">
438+<div class="docutils container">
439+<p>desktop</p>
440+</div>
441+</div>
442+</div>
443+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-ZGVza3RvcA== active docutils container">
444+<p>To <em>inspect</em> the searx instance (already described above):</p>
445+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh cmd searx-archlinux <span class="se">\</span>
446+ ./utils/searx.sh inspect service
447+</pre></div>
448+</div>
449+<p>Run <a class="reference internal" href="../dev/makefile.html#makefile"><span class="std std-ref">Makefile Targets</span></a>, e.g. to test inside the container:</p>
450+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh cmd searx-archlinux <span class="se">\</span>
451+ make <span class="nb">test</span>
452+</pre></div>
453+</div>
454+<p>To install all prerequisites needed for a <a class="reference internal" href="../admin/buildhosts.html#buildhosts"><span class="std std-ref">Buildhosts</span></a>:</p>
455+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh cmd searx-archlinux <span class="se">\</span>
456+ ./utils/searx.sh install buildhost
457+</pre></div>
458+</div>
459+<p>To build the docs on a buildhost <a class="reference internal" href="../admin/buildhosts.html#buildhosts"><span class="std std-ref">Buildhosts</span></a>:</p>
460+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh cmd searx-archlinux <span class="se">\</span>
461+ make docs
462+</pre></div>
463+</div>
464+</div>
465+</div>
466+</div>
467+<div class="section" id="abstract">
468+<span id="blog-lxcdev-202006-abstract"></span><h2><a class="toc-backref" href="#id5">Abstract</a><a class="headerlink" href="#abstract" title="Permalink to this headline">¶</a></h2>
469+<p>We build up a fully functional searx suite in a archlinux container:</p>
470+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh install suite searx-archlinux
471+</pre></div>
472+</div>
473+<p>To access HTTP from the desktop we installed nginx for the services inside the
474+conatiner:</p>
475+<div class="sphinx-tabs docutils container">
476+<div class="ui top attached tabular menu sphinx-menu docutils container">
477+<div class="active item sphinx-data-tab-W3Jvb3RAc2VhcngtYXJjaGxpbnV4XQ== docutils container">
478+<div class="docutils container">
479+<p>[<a class="reference external" href="mailto:root&#37;&#52;&#48;searx-archlinux">root<span>&#64;</span>searx-archlinux</a>]</p>
480+</div>
481+</div>
482+</div>
483+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-W3Jvb3RAc2VhcngtYXJjaGxpbnV4XQ== active docutils container">
484+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ ./utils/filtron.sh nginx install
485+$ ./utils/morty.sh nginx install
486+</pre></div>
487+</div>
488+</div>
489+</div>
490+<p>To wrap the suite into a developer one, we created a symbolic link to the
491+repository which is shared <strong>transparent</strong> from the desktop’s file system into
492+the container :</p>
493+<div class="sphinx-tabs docutils container">
494+<div class="ui top attached tabular menu sphinx-menu docutils container">
495+<div class="active item sphinx-data-tab-W3Jvb3RAc2VhcngtYXJjaGxpbnV4XQ== docutils container">
496+<div class="docutils container">
497+<p>[<a class="reference external" href="mailto:root&#37;&#52;&#48;searx-archlinux">root<span>&#64;</span>searx-archlinux</a>]</p>
498+</div>
499+</div>
500+</div>
501+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-W3Jvb3RAc2VhcngtYXJjaGxpbnV4XQ== active docutils container">
502+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ mv /usr/local/searx/searx-src /usr/local/searx/searx-src.old
503+$ ln -s /share/searx/ /usr/local/searx/searx-src
504+$ systemctl restart uwsgi@searx
505+</pre></div>
506+</div>
507+</div>
508+</div>
509+<p>To get remarks from the suite of the archlinux container we can use:</p>
510+<div class="sphinx-tabs docutils container">
511+<div class="ui top attached tabular menu sphinx-menu docutils container">
512+<div class="active item sphinx-data-tab-ZGVza3RvcA== docutils container">
513+<div class="docutils container">
514+<p>desktop</p>
515+</div>
516+</div>
517+</div>
518+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-ZGVza3RvcA== active docutils container">
519+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh show suite searx-archlinux
520+...
521+<span class="o">[</span>searx-archlinux<span class="o">]</span> INFO: <span class="o">(</span>eth0<span class="o">)</span> filtron: http://10.174.184.156:4004/ http://10.174.184.156/searx
522+<span class="o">[</span>searx-archlinux<span class="o">]</span> INFO: <span class="o">(</span>eth0<span class="o">)</span> morty: http://10.174.184.156:3000/
523+<span class="o">[</span>searx-archlinux<span class="o">]</span> INFO: <span class="o">(</span>eth0<span class="o">)</span> docs-live: http://10.174.184.156:8080/
524+<span class="o">[</span>searx-archlinux<span class="o">]</span> INFO: <span class="o">(</span>eth0<span class="o">)</span> IPv6: http://<span class="o">[</span>fd42:573b:e0b3:e97e:216:3eff:fea5:9b65<span class="o">]</span>
525+...
526+</pre></div>
527+</div>
528+</div>
529+</div>
530+</div>
531+</div>
532+
533+
534+ <div class="clearer"></div>
535+ </div>
536+ </div>
537+ </div>
538+ <span id="sidebar-top"></span>
539+ <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
540+ <div class="sphinxsidebarwrapper">
541+
542+
543+ <p class="logo"><a href="../index.html">
544+ <img class="logo" src="../_static/searx_logo_small.png" alt="Logo"/>
545+ </a></p>
546+
547+
548+ <h3>Project Links</h3>
549+ <ul>
550+ <li><a href="https://github.com/asciimoo/searx">Source</a>
551+
552+ <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
553+
554+ <li><a href="https://searx.space/">Public instances</a>
555+
556+ <li><a href="https://twitter.com/Searx_engine">Twitter</a>
557+ </ul><h3>Navigation</h3>
558+<ul>
559+ <li><a href="../index.html">Overview</a>
560+ <ul>
561+ <li><a href="index.html">Blog</a>
562+ <ul>
563+ <li>Previous: <a href="index.html" title="previous chapter">Blog</a>
564+ <li>Next: <a href="python3.html" title="next chapter">Introducing Python 3 support</a></ul>
565+ </li>
566+ </ul>
567+ </li>
568+</ul>
569+<div id="searchbox" style="display: none" role="search">
570+ <h3 id="searchlabel">Quick search</h3>
571+ <div class="searchformwrapper">
572+ <form class="search" action="../search.html" method="get">
573+ <input type="text" name="q" aria-labelledby="searchlabel" />
574+ <input type="submit" value="Go" />
575+ </form>
576+ </div>
577+</div>
578+<script>$('#searchbox').show(0);</script>
579+ </div>
580+ </div>
581+ <div class="clearer"></div>
582+ </div>
583+
584+ <div class="footer" role="contentinfo">
585+ &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
586+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.1.1.
587+ </div>
588+ <script src="../_static/version_warning_offset.js"></script>
589+
590+ </body>
591+</html>
blog/private-engines.html+1−1
@@ -51,7 +51,7 @@ would rather share engines only with their trusted friends or colleagues.</p>
5151<p>To solve this issue private engines were introduced in <a class="reference external" href="https://github.com/asciimoo/searx/pull/1823">PR 1823</a>.
5252A new option was added to engines named <cite>tokens</cite>. It expects a list
5353of strings. If the user making a request presents one of the tokens
54−of an engine, he/she is able to access information about the engine
54+of an engine, they can access information about the engine
5555and make search requests.</p>
5656<p>Example configuration to restrict access to the Arch Linux Wiki engine:</p>
5757<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">name</span> <span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">arch linux wiki</span>
blog/python3.html+3−3
@@ -17,7 +17,7 @@
1717 <link rel="index" title="Index" href="../genindex.html" />
1818 <link rel="search" title="Search" href="../search.html" />
1919 <link rel="next" title="Searx admin interface" href="admin.html" />
20− <link rel="prev" title="Blog" href="index.html" />
20+ <link rel="prev" title="Developing in Linux containers [202006]" href="lxcdev-202006.html" />
2121 <script>DOCUMENTATION_OPTIONS.URL_ROOT = '../';</script>
2222
2323 </head><body>
@@ -31,7 +31,7 @@
3131 <a href="admin.html" title="Searx admin interface"
3232 accesskey="N">next</a> |</li>
3333 <li class="right" >
34− <a href="index.html" title="Blog"
34+ <a href="lxcdev-202006.html" title="Developing in Linux containers [202006]"
3535 accesskey="P">previous</a> |</li>
3636 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.16.0.tex)</a> &#187;</li>
3737 <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Blog</a> &#187;</li>
@@ -124,7 +124,7 @@ version in your issue, so we can investigate it properly.</p>
124124 <ul>
125125 <li><a href="index.html">Blog</a>
126126 <ul>
127− <li>Previous: <a href="index.html" title="previous chapter">Blog</a>
127+ <li>Previous: <a href="lxcdev-202006.html" title="previous chapter">Developing in Linux containers [202006]</a>
128128 <li>Next: <a href="admin.html" title="next chapter">Searx admin interface</a></ul>
129129 </li>
130130 </ul>
dev/search_api.html+2−2
@@ -99,14 +99,14 @@ supports safe search in the preferences page of an instance.</p>
9999<dt><code class="docutils literal notranslate"><span class="pre">theme</span></code><span class="classifier">default <code class="docutils literal notranslate"><span class="pre">oscar</span></code></span></dt><dd><p>[ <code class="docutils literal notranslate"><span class="pre">oscar</span></code>, <code class="docutils literal notranslate"><span class="pre">simple</span></code>, <code class="docutils literal notranslate"><span class="pre">legacy</span></code>, <code class="docutils literal notranslate"><span class="pre">pix-art</span></code>, <code class="docutils literal notranslate"><span class="pre">courgette</span></code> ]</p>
100100<p>Theme of instance.</p>
101101<p>Please note, available themes depend on an instance. It is possible that an
102−instance administrator deleted, created or renamed themes on his/her instance.
102+instance administrator deleted, created or renamed themes on their instance.
103103See the available options in the preferences page of the instance.</p>
104104</dd>
105105<dt><code class="docutils literal notranslate"><span class="pre">oscar-style</span></code><span class="classifier">default <code class="docutils literal notranslate"><span class="pre">logicodev</span></code></span></dt><dd><p>[ <code class="docutils literal notranslate"><span class="pre">pointhi</span></code>, <code class="docutils literal notranslate"><span class="pre">logicodev</span></code> ]</p>
106106<p>Style of Oscar theme. It is only parsed if the theme of an instance is
107107<code class="docutils literal notranslate"><span class="pre">oscar</span></code>.</p>
108108<p>Please note, available styles depend on an instance. It is possible that an
109−instance administrator deleted, created or renamed styles on his/her
109+instance administrator deleted, created or renamed styles on their
110110instance. See the available options in the preferences page of the instance.</p>
111111</dd>
112112<dt><code class="docutils literal notranslate"><span class="pre">enabled_plugins</span></code><span class="classifier">optional</span></dt><dd><p>List of enabled plugins.</p>
index.html+1
@@ -110,6 +110,7 @@ digital rights</p></li>
110110</ul>
111111</li>
112112<li class="toctree-l1"><a class="reference internal" href="blog/index.html">Blog</a><ul>
113+<li class="toctree-l2"><a class="reference internal" href="blog/lxcdev-202006.html">Developing in Linux containers [202006]</a></li>
113114<li class="toctree-l2"><a class="reference internal" href="blog/python3.html">Introducing Python 3 support</a></li>
114115<li class="toctree-l2"><a class="reference internal" href="blog/admin.html">Searx admin interface</a></li>
115116<li class="toctree-l2"><a class="reference internal" href="blog/intro-offline.html">Preparation for offline engines</a></li>
objects.inv

Binary file not shown.

searchindex.js+1−1
@@ -1 +1 @@
1−Search.setIndex({docnames:["admin/api","admin/architecture","admin/buildhosts","admin/engines","admin/filtron","admin/index","admin/installation","admin/installation-apache","admin/installation-docker","admin/installation-nginx","admin/installation-searx","admin/installation-uwsgi","admin/morty","admin/plugins","admin/settings","admin/update-searx","blog/admin","blog/index","blog/intro-offline","blog/private-engines","blog/python3","dev/contribution_guide","dev/engine_overview","dev/index","dev/makefile","dev/plugins","dev/quickstart","dev/reST","dev/search_api","dev/translation","index","user/index","user/own-instance","user/search_syntax","utils/filtron.sh","utils/index","utils/lxc.sh","utils/morty.sh","utils/searx.sh"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["admin/api.rst","admin/architecture.rst","admin/buildhosts.rst","admin/engines.rst","admin/filtron.rst","admin/index.rst","admin/installation.rst","admin/installation-apache.rst","admin/installation-docker.rst","admin/installation-nginx.rst","admin/installation-searx.rst","admin/installation-uwsgi.rst","admin/morty.rst","admin/plugins.rst","admin/settings.rst","admin/update-searx.rst","blog/admin.rst","blog/index.rst","blog/intro-offline.rst","blog/private-engines.rst","blog/python3.rst","dev/contribution_guide.rst","dev/engine_overview.rst","dev/index.rst","dev/makefile.rst","dev/plugins.rst","dev/quickstart.rst","dev/reST.rst","dev/search_api.rst","dev/translation.rst","index.rst","user/index.rst","user/own-instance.rst","user/search_syntax.rst","utils/filtron.sh.rst","utils/index.rst","utils/lxc.sh.rst","utils/morty.sh.rst","utils/searx.sh.rst"],objects:{},objnames:{},objtypes:{},terms:{"0pointer":11,"0xa9":27,"10f5827a1c699bdc92caa3c0e921a6cd":10,"1337x":3,"15px":27,"40px":27,"70px":27,"800gbpciex4":38,"\u65e5\u672c\u8a9e":14,"boolean":[22,27],"break":[21,27],"byte":22,"case":[7,9,14,19,26,32,34,37,38],"class":7,"default":[4,7,9,11,12,14,20,21,24,25,27,28,30,32,33,34,35,36,37,38],"espa\u00f1ol":14,"export":[9,10,24,34,36,37],"fran\u00e7ai":14,"function":[18,22,25,27,36],"import":[9,18,27],"int":[4,22,27],"long":32,"new":[3,7,9,10,11,13,16,18,19,21,24,25,26,28,29,37],"null":[7,9,21],"public":[1,6,13,27,35,36],"return":[13,14,18,23,25,27,32],"schr\u00f6dinger":27,"short":26,"static":[2,4,9,25],"switch":[7,21],"t\u00fcrk\u00e7e":14,"true":[0,4,7,9,10,11,14,18,22,25,26,27,28,34,37],"try":[10,24,26,32],"var":7,"while":[11,18,24,27],And:[7,27],But:[16,20,22,32,36],DNS:[35,36],For:[2,4,7,8,9,10,11,19,21,24,26,27,28],IPs:[4,35],Not:27,One:[11,16],That:27,The:[0,2,5,6,11,14,19,22,24,27,28,32,34,35,36,37,38],Then:[18,20,26,29],There:[7,11,21,27],These:[22,27],USE:7,Use:[4,7,9],Used:[7,14],Uses:14,With:[7,24,27,36],__dict__:27,__name__:27,_anchor:27,_chapter:27,_doc:27,_dot:27,_rest:27,_section:27,_sphinx:27,_subsect:27,_svg:27,a2disconf:7,a2dismod:7,a2dissit:7,a2enconf:7,a2enmod:7,a2ensit:7,abbrev:33,abl:[2,14,18,19,21,22,27],about:[1,19,21,24,30,36],abov:[7,10,21,27,28,36],absenc:27,abus:[4,32],academ:3,accept:[4,10,18,33],access:[4,7,13,16,17,18,27,30,32],access_log:9,accord:11,account:[7,9,29,34,35,37,38],accross:14,accusam:27,acg:3,acgsou:3,acknowledg:17,act:[12,16],action:[0,4,11],activ:[7,9,10,11,12,14,20,21,26,28,34,37,38],adapt:22,add:[6,7,9,11,12,19,21,24,25,27,33,34,35,37,38],added:[11,19,24,25],adding:[18,27,35],addit:[2,22,24,26,27],addition:[30,32],address:[12,14,22,32,35],adipisici:27,adjust:24,admin:[14,17,19,27,30,35,37],administr:[16,18,19,28,30,32],admonit:23,adopt:21,adorn:27,ads:32,advantag:[16,27],advertis:32,advis:[4,7,9],aearx:14,af2cae6:27,affect:16,after:[10,20,25,26,27,29,34,37],again:24,agent:[4,10,13,14,22],aggreg:[4,30,32],agpl:[35,36],aim:[16,24,27],aka:24,alia:9,align:27,aliquid:27,aliquyam:27,all:[0,6,7,12,20,21,22,24,27,28,34,35,36,37,38],allow:[7,10,14,27,33],allowoverrid:7,alltogeth:5,along:4,alreadi:[7,9,21,26],also:[2,7,8,10,11,21,24,27,32,33,35],alt:27,alter:21,altern:[6,9,26,27,36],alwai:[9,22,26,32,34,37],amd64:[34,37],amet:27,among:[21,32],amsmath:27,analysi:2,ancel:27,anchor:23,ani:[2,6,7,11,24,27,28,30,35],annoi:27,anonym:[30,32],anoth:[11,14,16,22,27,36],answer:[14,27,32],anymor:7,anyon:30,anyth:[14,20,32],anywai:[24,27],apach:[1,4,5,6,11,14,30,34,35,36,37,38],apache2:7,apache2ctl:7,api:[5,14,19,22,23,29,30,34],api_kei:[14,22],apikei:14,apk:3,apkm:3,apkmirror:3,app:[3,7,9,11,27,34,37,38],appear:[26,27],append:18,appli:[14,15,21],applic:[4,9,11,14,16,38],approach:11,april:36,apt:[2,7,9,10,26,27],arbitrari:[18,22],arch:[0,2,3,7,9,10,11,19,27],architectur:[4,5,6,7,9,30,34,37,38],archiv:3,archlinux:[3,11,19,36],argument:[12,13,27],arrai:22,arrow:27,art:[27,28],articl:23,arx:3,arxiv:3,asciimoo:[6,8,10,21,24,26,29,34,37,38],ascrib:27,aspect:21,assert:21,assign:22,assum:[10,27],asterisk:27,attach:25,attent:27,attribut:27,audienc:27,author:[21,27],auto:[27,29,36],autobuild:24,autocomplet:[0,28],autodoc:27,autoindex:7,autoindex_modul:7,automat:[11,13,27],avail:[7,9,11,13,14,18,21,26,28,32,34,37,38],avoid:[4,6,13,14],awar:[7,27,35],babel:[2,10],backquot:27,backslash:27,backup:35,balanc:24,ban:32,bang:14,bar:[5,27,34,37],barrier:16,base:[2,10,14,18,22,24,28,36],base_url:[9,14,22],baseprofil:27,bash:[10,27,34,35,36,37],basic:[23,36],batch:35,baz:27,becaus:[16,19,21,22,26,29,32],becom:27,been:[18,21],befor:[6,10,11,20,21,24,25,26,27,32,35,36],beginn:9,behavior:27,behaviour:[11,13,21,25],being:[4,14,16,20,30],below:[4,6,10,11,14,21,26,27,29],benefit:19,besid:32,best:[2,24,27,32,35],better:[2,7,9,22,24,32],between:[4,22,27],big:27,bigger:14,biggest:16,bii:3,bin:[2,3,10,11,20,24,26,34,37],binari:[34,37],bing:[3,14],bing_imag:3,bing_new:3,bing_video:3,bit:[11,27],bitbucket:[0,3],biv:3,black:27,blank:[14,27],block:[4,14,23],blog:[11,27,30],bodi:[10,21,27],boilerpl:[10,24],bold:27,boldfac:27,born:21,both:[11,19,20,21,28,32],botlimit:4,bottom:13,boundingbox:22,box:[1,6,30,36],branch:[21,24,35],brand:[24,35],bring:[24,27],broken:27,browser:[10,13,14,16,20,21,24,32,36],btdigg:3,bug:[11,17,24,26],buggi:11,bugreport:[11,21],build:[1,5,6,8,10,23,36],buildenv:24,builder:27,buildhost:[5,24,30,35,38],built:[21,22,26,27],builtin:[5,25,30],bundl:10,c3tv:3,calcul:9,call:[16,19,24,29,36],callback:25,can:[0,1,2,4,6,7,8,9,10,11,12,14,16,18,19,20,21,22,24,25,26,27,30,32,34,36,37,38],cancel:27,cannot:[2,27,32,34,37],capabl:[16,21],caplabl:18,captcha:32,caption:27,cardin:21,care:[14,27,35,36],carv:19,cat:[34,36,37],catcher:27,categori:[0,3,13,14,18,22,27,28,33],caution:27,caveat:27,ccc:3,cdn:2,cell:27,cfg:[3,27],cgi:11,chain:24,chainabl:33,chang:[11,14,20,21,24,27,35],chapter:[4,20,21,27,37,38],charact:[21,27],chdir:11,check:[2,5,18,21,22,24,26,29],checker:24,checkout:21,chmod:11,choic:[6,10,27,32,35],choos:[6,21,22],chown:[7,9,10,11,34,37],chronolog:27,citi:22,classifi:27,clean:[23,36],clear:32,cli:29,clita:27,clock:20,clone:[6,8,9,10,21,24,26,38],close:[4,10],cmd:[35,36],code:[3,11,14,18,23,24,26,28,32,35,36],codebas:16,coffe:36,col:27,colleagu:19,collect:2,colon:27,colspan:27,column:27,com:[6,8,10,22,24,26,27,28,29,34,36,37,38],combin:7,come:[4,9,19,20,21,24,32,36],comfort:[11,27],comma:[19,28],command:[2,4,7,10,11,20,26,27,29,30,34,37,38],comment:[7,9,10,27,34,36,37],commit:[24,26,29],commodi:27,common:[11,26,30,32,34,37,38],commonli:27,commun:[7,9,18],compact:27,compani:32,compar:[7,9,11,36],compat:20,compil:[7,23,29],complet:[4,11,21,28,34,36,37,38],compon:[7,25,35],compromis:32,comput:32,con:27,concern:21,conclus:31,concret:[19,27],condit:27,conf:[2,7,9,27,34,37],config:[0,11,19,22,27,29,34,35,36,37,38],configur:[5,7,9,11,16,18,19,23,27,29,32,34],conflict:35,confnam:11,confus:27,connect:[4,9,10,18,30],consectetur:27,consequ:[14,21],consequat:27,consetetur:27,consid:6,construct:[22,27],consult:26,contact:14,contain:[10,13,14,26,27,35,36],content:[5,17,23,30,31,32,35],context:[25,27,36],continu:27,contribut:[1,2,23,24,30],contributor:27,control:[7,11,32],convent:21,convert:27,cooki:[22,30,32],copi:[10,21,27,36],copyright:27,core:[2,11,18],corner:21,correct:[9,14],correctli:9,correspond:11,could:[11,14,22,27],count:27,countri:[14,22],courgett:28,cours:27,coverag:26,crawler:27,creat:[5,6,7,9,11,14,18,20,26,27,28,29,35,38],creation:[2,27],creativ:19,cross:27,crossref:3,cryptic:26,cryptographi:14,cspan:27,css:[13,25],css_depend:25,csv:[4,28],csv_tabl:27,ctan:27,cthulhu:33,ctrl:[10,24],ctx:25,cup:36,curl:10,currenc:3,currency_convert:3,current:[13,14,18,21,22,29,33],custom:[14,21,27,33],customiz:[0,16],customlog:7,cycl:24,daemon:[34,37,38],dai:[11,24,28],dailymot:3,dalf:1,danger:27,data:[5,22,27,32],databas:[19,27],date:[0,22],datetim:[22,27],daunt:16,dbpedia:28,ddd:3,ddg:[3,33],ddi:3,de_d:14,deactiv:[14,34,37,38],debian:[2,5,9,10,11,15,27],debug:[10,14,23,24,34,35,37,38],decid:[16,24],decim:22,dedic:[11,27],deeper:[24,27],deezer:3,def:[18,22,25,27],defaul:27,default_local:[0,14],default_on:25,default_them:[0,14],defin:[14,25,27],definit:3,dejavu:2,delet:[14,28,29,36],delimit:27,demon:10,demonstr:9,deni:7,depend:[4,5,7,9,13,16,18,20,22,24,26,27,28],deploi:[8,14,24,27],describ:[4,6,7,11,14,24,27,38],descript:[13,21,25,27,34,37],deserv:21,design:[18,27],desir:[22,26],detail:[7,14,18,27],detect:14,deutsch:[0,14],dev:[2,7,9,10,21,24,27],devel:[2,10],develop:[2,10,14,16,17,19,20,21,24,27,30,35],deviantart:3,dfrac:27,diam:27,dict:27,dictzon:3,didn:14,diff:27,differ:[7,9,11,20,21,22,27,36],digg:3,digit:30,digraph:27,dir:[10,34,37],direct:[7,23,27,34,37],directli:[9,14,36],directori:[3,7,11],disabl:[3,5,10,11,13,14,24,25,27,28,35,36],disabled_engin:28,disabled_plugin:28,disadvantag:27,discoveri:[18,19],discret:35,displai:[2,13,14,22],display_error_messag:[14,22,27],displaystyl:27,dispos:35,disrespect:21,dist:[21,24],distinguish:27,distribut:[7,9,11,19,27,34,37],distributor:5,dive:32,dnf:[2,7,9,10,27],doai_rewrit:28,doc:[3,5,7,11,23,27,36],docker:[5,6,24,30],dockerfil:8,docs_url:24,doctest:27,doctre:27,docuemt:2,document:[7,11,18,19,24,27,30,36],documentroot:7,docutil:27,doe:[7,11,16,18,22,24,27,28,31],doesn:14,doi:13,dolor:27,domain:27,domin:21,don:[7,20,24,27,30],done:[7,9,24,27,35,36],dontlog:7,dot:2,doubl:27,download:[6,24,27,34,37],drop:20,duckduckgo:[3,28,33],duckduckgo_definit:3,duckduckgo_imag:3,duden:3,due:[34,37],duo:27,duref:27,dvisvgm:2,each:[11,27,28],easi:30,easier:21,easili:21,echo:[10,34,36,37],ecosystem:27,edit:[10,11,16,21,24,27,32,37],eeach:36,effect:[6,21,27],egg_info:24,eirmod:27,either:26,element:27,elimin:26,elit:27,elitr:27,els:36,emac:27,email:14,emb:[5,27],embed:[0,8,27],emperor:11,emphasi:27,empti:[7,27,28],en_u:[14,22],enabl:[0,7,9,10,11,19,21,24,26,28,35],enabled_engin:28,enabled_plugin:28,enclos:27,encod:27,encourag:27,encrypt:30,end:[20,27,36],endfor:27,engin:[0,5,10,16,17,21,23,26,27,28,30,32,33,34,37],english:[0,14],enim:27,enough:[6,7,9,29],enpoint:28,ensur:21,enter:[10,20],entri:[23,35,36],env:[7,11,24,26,35,36],environ:[9,10,23,30,34,36,37,38],eof:[34,36,37],eol:36,eos:27,equat:[2,23],erat:27,erowid:3,error:[3,14,22,26,27],error_log:9,escap:27,especi:27,esperanto:0,essenti:[2,10],est:27,etc:[4,7,9,10,11,21,34,38],eth0:36,eto:3,etool:3,etymonlin:3,evalu:[27,36],even:[11,36],event:11,ever:36,everi:[14,21,22,32,36],everyon:[18,32],everyth:[10,27,32],exactli:[4,27],exampl:[0,4,7,9,11,18,19,21,23,26,28,31,32,35,36],exceed:4,excel:[6,9],except:[7,20,21,27,35],exchang:32,execstart:[34,37],execut:[14,29],exercit:27,exist:[7,9,16,20,21,24],exit:10,expand:27,expect:[19,21],experi:11,experienc:16,experiment:35,explain:21,explanatori:[34,36,37,38],explicit:27,expos:19,ext:2,extend:[18,21,25,27],extens:[2,27],extern:[4,12,22,27,28,32],extra:[2,7],extract:2,extrem:16,eye:27,face:27,fact:17,fail:26,fals:[0,10,14,25,26,27,28,37],familiar:[11,24],fanci:21,faq:27,favorit:[21,24],fd00:7,fdroid:3,fe80:7,featur:[12,16,19,21,27,32],fedora31:36,fedora:[2,7,9,10,11,27,36],fedoraproject:36,feedback:[21,27],feel:[25,27],few:[14,21,22],fieldnam:27,figur:[7,9,23],file:[2,3,7,9,10,11,14,16,18,19,20,21,24,25,26,29,34,36,37,38],file_filt:29,filenam:22,files:22,fill:27,filter:[0,4,28],filtron:[1,5,6,7,9,11,30,35,36],filtron_api:[34,35,36],filtron_listen:[34,35,36],filtron_target:[34,35],find:[1,4,18,19],fine:[6,10],finish:[29,36],firefox:2,firewal:4,first:[7,9,10,16,18,20,24,26,27,32],fit:[11,19,25],fix:[21,24,26],fixm:7,flask:[25,27],flexibl:[27,35],flickr:3,flickr_noapi:3,fmt:36,folder:[7,9,10,11,21,22,24,26,27,29,35,36],follow:[4,6,7,9,11,12,21,22,24,26,27,29],followsymlink:7,font:2,fontsrecommend:2,footer:21,force_timeout:[35,36],fork:[6,21,35],form:[0,27,32],format:[4,22,26,27,28],forward:[4,9,32],found:[2,16,17,24],foundat:[16,18,19,20],fr_fr:14,fraction:27,framalibr:3,free:[3,25,30],fresh:7,friend:[19,24,32],frinkiac:3,frk:3,frl:3,from:[1,2,4,6,7,8,9,10,11,13,14,16,18,19,20,21,24,27,29,30,32,34,35,36,37,38],front:27,fsd:3,full:[14,21,27,34,37],fulli:[7,9,16],fun:17,fund:[18,19],further:[24,26,35],furthermor:[22,26,28,32],futur:36,gain:32,gate:24,geektim:3,gen:3,gener:[0,3,7,11,14,18,21,23,24,32],genesi:3,geniu:3,gentoo:3,geojson:22,german:0,get:[2,4,5,6,7,9,10,13,21,22,24,26,27,28,29,30,34,36,37],get_engines_stat:27,gid:11,gigablast:3,gil:11,git:[2,6,7,8,9,10,14,15,21,22,24,26,27,34,35,37,38],git_branch:[24,35],git_url:24,github:[3,6,8,10,18,20,24,26,27,28,34,36,37,38],gitlab:3,gitmoji:21,give:[7,24,26],given:27,glob:11,global:5,global_ip:36,glyph:27,gnu:24,go1:[34,37],go_env:[34,37],goe:24,goi:[0,3],going:[4,18,19,27,32],gon:3,good:[6,7,9,26,36],googl:[0,3,28,34,37],google_imag:3,google_new:3,google_video:3,gopath:[34,37],gos:3,gov:3,gpa:3,gpm:3,gps:3,grant:[7,11],graphic:16,graphviz:2,grep:36,group:[27,32,34,37],grow:16,grumpi:27,grunt:26,gubergren:27,guest:36,guid:[9,16,24,26,27],guidelin:19,guilabel:27,habr:3,habrahabr:3,hack:[16,18,19,20,21],hackabl:23,hackerspac:33,handl:[14,27,32,36],handler:7,happi:[16,18,19,20,21],hard:[16,27],harden:[34,37],has:[12,18,19,21,22,26,27,32],hat:27,have:[2,6,7,8,9,10,14,16,20,21,22,24,27,32,35,36],hbar:27,head:10,header:[4,7,9,22,27],headers_modul:7,heard:27,hebrew:14,height:27,help:[13,21,24,26,34,35,36,37,38],helper:27,her:[19,28,32],here:[2,7,9,11,14,18,21,27,35],herein:1,hidden:[0,19,32],him:19,hint:[1,27,35],his:[28,32],histor:[7,20],hit:10,home:[10,29,34,35,37],hoogl:3,host:[2,4,7,9,10,16,19,24,29,30,36],hostnam:[9,36],hotkei:[0,13],hous:22,house_numb:22,how:[1,2,5,6,7,9,11,14,17,23,24,27,30,31,34,37],howev:[18,22,28],html:[0,2,7,11,21,22,24,27,37],html_math_render:2,http:[0,2,4,5,6,8,10,11,12,13,14,18,21,22,24,26,27,29,30,34,35,36,37,38],http_connect:[4,9],http_host:[4,9],httpd:7,https_rewrit:28,hub:8,huge:27,idea:26,identifi:[35,36],ifmodul:7,illustr:6,imag:[0,2,3,12,14,23,24,28,33,36,37,38],image_proxi:[7,9,14,28,37],imagemagick:[2,27],img_src:22,imgmath:2,imgmath_font_s:2,imgmath_image_format:2,imgmath_latex:2,immedi:13,implement:[9,11,16,20,21,22,25,36],impli:19,improv:24,in_contain:36,ina:3,inbound:14,includ:[7,9,19,24,27,36],inclus:33,incom:7,increment:24,indent:[27,36],index:7,infinit:13,infinite_scrol:[13,28],info:[14,24,36,37],info_msg:36,inform:[8,12,13,14,19,21,22,36],infrastructur:[1,11],infratructur:4,inherit:27,ini:[7,9,11],init:[11,18,23,36],initi:[11,29,36],inlin:23,input:[0,19,27],insecur:10,insert:[27,29],insid:[10,22,36],insight:32,inspect:[34,35,37,38],instal:[1,2,4,5,11,12,20,21,24,26,27,29,30,35],instanc:[0,1,5,6,7,8,9,11,14,16,18,19,24,28,29,30,31,34,35,36,37,38],instance_nam:[0,10],instead:[11,16,19,20,26,27],instruct:27,insuffici:18,integr:30,intent:21,interact:[10,34,35,37,38],interfac:[7,14,17,30],interfer:21,intermedi:24,intern:26,internet:[6,18,30],interpret:[11,27],interpretor:11,intersphinx_map:27,interv:4,intranet:[6,7,9],intro:[7,9],introduc:[16,17,18,19,27,30],introduct:[24,26],intuit:27,inv:27,inventori:27,investig:20,invidi:3,invidunt:27,ipsum:27,ipv4:[9,36],ipv6:[9,36],isn:[7,9],iso:[14,22],isol:4,issu:[11,18,19,20],ital:27,italiano:14,item:27,its:[2,6,16,21,24,27,28,32,36],itself:[11,21],japanes:14,javascript:[13,23],jinja:27,jinja_context:27,job:35,join:27,js_depend:25,json:[4,28,34],json_engin:3,juli:36,jump:[10,24],just:[0,4,9,24,27,32,36],justo:27,kasd:27,kbd:27,keep:[7,9,24],kei:[12,13,14,18,22,29,37,38],kickass:3,kind:[7,27,32],kiss_:27,know:[7,11,18,19,27,32,36],knowledg:27,known:24,kvch:[16,18,19,20],label:27,labor:27,labori:27,lack:21,lang:[0,28,29],languag:[0,3,4,14,22,24,27,28,29,33],language_support:[22,27],laptop:32,larg:[11,34,36,37,38],last:27,lat:22,later:[35,36],latest:[11,29],latex:2,latexextra:2,latexmk:2,latitud:22,latter:[24,27],launch:36,layout:5,lazi:11,lc_messag:29,learn:27,least:20,leav:14,leech:22,leecher:22,left:[10,27],legaci:28,length:21,less:[7,9,11,16,26,27,32],let:[27,32,35],level:[21,27],lib:[7,11,34,37],libapache2:7,libffi:[2,10],librari:3,librsvg2:2,librsvg:2,libssl:[2,10],libxml2:[2,10],libxslt:[2,10],licens:[35,36],light:9,like:[0,2,8,10,13,14,19,21,22,24,27,35],like_hotkei:28,limit:[4,7,17,18,27,30],line:[7,9,18,21,24,36],link:[11,13,14,23],lint:[5,24],linux:[0,2,3,7,9,10,11,19,27,34,35,36,37],linuxcontain:36,linuxcontainers_org_nam:36,linuxdoc:27,list:[7,18,19,22,23,24,25,28,33],listen:[4,7,9,34,35,36,37],liter:23,literalinclud:27,live:[23,27,36],load:[11,13,14,36],loadmodul:7,lobst:3,local:[0,4,9,10,11,14,19,20,22,24,25,26,29,34,35,36,37,38],local_imag:36,localhost:[7,8,9],locat:[4,7,9,10,11,14,27],log:[4,5,11,14,26,32,34,35,37,38],logger:11,logic:21,logicodev:28,login:10,lon:22,longer:24,longitud:22,look:[7,10,24],lorem:27,loremlorem:27,low:[7,9],lsb:11,lxc:[30,35],lxc_host_prefix:36,lxc_repo_root:36,lxc_set_suite_env:36,lxc_suit:36,lxc_suite_info:36,lxc_suite_instal:36,lxc_suite_install_info:36,lxc_suite_nam:36,lxd:36,lxml:[2,10],made:14,magna:27,magnetlink:22,magyar:14,mai:[14,27,34,37],main:[7,13,24,29,35],mainlin:9,maintain:[1,11,27,35],mainten:[4,6,34,37,38],make:[2,8,16,19,20,21,23,27,32,36],makefil:[21,23,30,35,36],man:27,manag:[4,15,16,24,26,34,37,38],mandatori:6,mani:4,manipul:[16,36],manual:[14,24,27],manuali:27,map:[0,3,27],mark:[10,27],markup:23,mass:21,master:[11,15,21,24,27,35],math:[2,23],mathemat:27,mathrm:27,matter:[22,32],max:[4,22],maxim:21,maximum:[21,22],mean:[11,21,27,32],meaning:27,meant:27,media:[0,3,22],mediawiki:3,memori:14,mention:20,menuselect:27,messag:[4,14,21,22,24,26,27,29],messagespo:29,meta:27,metadata:27,metasearch:[10,22,30,34,37],method:[0,6,11,22,27],microsoft:3,microsoft_academ:3,middlewar:4,might:[11,19,21,24,27,28,32,35,36],migrat:20,min:22,minim:27,mirror:3,misbehav:21,miss:[4,27],mixcloud:3,mjk:3,mkdir:[7,9,10,11,34,37],mod:[7,27],mod_autoindex:7,mod_head:7,mod_proxi:7,mod_proxy_http:7,mod_proxy_uwsgi:7,mod_uwsgi:7,mod_wsgi:7,mode:[11,14,27,35,36],modern:7,modifi:[11,14,27,33],modul:[7,11,27],mojeek:3,monet:32,monitor:11,mono:2,month:[0,28],more:[4,8,12,14,16,18,21,24,27,28,30,32,35,36],morecol:27,morerow:27,morti:[1,6,7,9,12,30,35,36],morty_listen:[35,36,37],most:[2,7,14,20,32,34,35,37,38],mostli:[11,27],move:[18,21],movi:3,much:[21,27],multi:[34,37],multibl:22,multipl:[13,14,27,32],multithread:11,multius:10,music:3,must:[9,14,20,21,22,26,27],my_arg:27,my_funct:27,my_other_arg:27,mydomain:35,mymemori:3,myproject:26,name:[0,3,4,7,8,9,10,13,14,19,22,24,25,29,36],nativ:11,navig:13,necessari:[10,19],nederland:14,need:[4,6,7,9,10,11,14,18,21,24,27,32,34,35,36,37,38],neither:30,net:30,network:[14,34,37],never:24,nevertheless:[7,9],newcom:16,nework:14,next:[7,9,13,17,27],nginx:[1,4,5,6,14,30,34,36,37,38],nightmar:27,nil:36,nisi:27,nlnet:[16,18,19,20],noconfirm:[2,10],node:[24,26],nodej:26,non:18,none:[7,22,24,27,28],nonewprivileg:[34,37],nonumi:27,nor:30,normal:[7,22,27,35],nostrud:27,note:[7,9,21,28],now:[7,9,10,19,20,25],npm:[3,24,26],number:[4,14,22,27,28,36],number_of_result:22,numer:27,numref:27,nyaa:3,oad:3,oap:3,obj:27,object:[22,25,27],obtain:14,off:[7,9,21,34,36,37,38],offer:11,offlin:[3,17,19,22,27,30],often:[22,27,35],old:7,on_result:25,onc:36,one:[7,11,14,19,21,24,27,30,32,34,35,36,37,38],ones:[22,34,37],ongo:24,onli:[2,6,7,12,14,19,21,25,27,28,35,36],onlin:[18,27,30],open:[7,10,13,20,21,24,27,28,32,35,36],open_results_on_new_tab:13,openairedataset:3,openairepubl:3,openrepo:3,openstreetmap:[0,3],oper:[20,27,32],option:[7,10,11,12,14,16,19,21,22,24,25,26,27,28,32,34,35,37,38],order:[7,21,26,27],org:[2,4,7,9,11,14,22,27,36],organ:30,orient:7,origin:[5,15,27],oscar:[0,14,28],osm:[0,3,22],other:[14,21,22,27,32],otherwis:22,our:[1,4,6,16,21,24,27,36],out:[7,9,18,21,24,27,34,36,37],outgo:14,outgoing_proxi:14,output:[2,19,27,28,34,36,37,38],outstand:27,over:[27,30,36],overlin:27,overview:[4,14,23,24,28,30,35],overwrit:13,overwritten:22,own:[6,24,30,32],owner:24,packag:[2,4,5,7,9,11,24,26,27,34,36,37,38],pacman:[2,7,9,10,27],page:[3,7,9,13,14,16,19,21,22,23,27,28,32,33],pageno:[22,28],pagenumb:22,pair:18,palletsproject:27,param:[4,18,22,27],paramet:[22,23],paramt:22,parent:27,pars:28,parse_lin:18,part:[14,16,27,36],parti:32,partial:27,partli:22,pass:[7,9,18,28],past:0,patch:[21,27],path:[4,7,14,27,34,36,37],paywal:13,pdb:3,pdbe:3,pdf:2,peopl:[16,32],pep8:[21,24,26],pep8_check:24,pep:27,per:[11,21,22,27],perform:[11,13,18,22],phase:26,photon:3,phrase:27,piec:27,pip3:20,pip:[2,10,29],pipe:18,piratebai:3,pix:28,place:[6,9,11,21,22,27,29,32],plai:3,plaintext:27,pleas:[20,21,26,27,28],plenti:21,plu:[7,9],plugin:[0,2,5,10,11,21,23,28,30],pocket:[7,9],point:[9,10,11,23,24,27,32],pointer:27,pointhi:28,polygon:27,popen:18,popular:27,port:[4,8,9,10,14,36],possibl:[8,12,13,14,18,19,27,28],post:[0,21,28],post_search:25,postcod:22,pot:29,pov:27,power:27,practic:21,pre_search:25,prefer:[6,16,19,27,28,32,33],prefix:33,preinstal:4,prepar:[17,30,36],prerequisit:27,present:[18,19],preserv:[21,27],press:[13,24],pretti:14,preview:22,previou:35,primari:36,primary_ip:[35,36],prime:23,primer:[23,30],principl:27,privaci:[6,7,9,10,11,23,27,31,34,37],privat:[17,18,30,31],privatedevic:[34,37],privatetmp:[34,37],pro:27,problem:4,procedur:[6,36],process:[2,4,11,18,19,24],processor:27,produc:27,product:[14,35],profil:[10,24,30,32,34,37],program:24,progress:[17,34,37],project:[11,23,24,27],promot:30,prompt:35,proper:[32,34],properli:20,propos:18,protect:[1,5,7,9,21,30,31,34],protectsystem:[34,37],protocol:[9,11],provid:[19,21,22,27],proxi:[1,5,6,9,14,28,30,32,34,35,36,37,38],proxif:[7,9],proxifi:12,proxy_add_x_forwarded_for:[4,9],proxy_buff:9,proxy_http:7,proxy_http_modul:7,proxy_modul:7,proxy_pass:[4,9],proxy_set_head:[4,9],proxy_uwsgi_modul:7,proxypass:[7,34,37],proxypreservehost:7,psi:27,pub:3,public_host:34,public_url:[34,35,36,38],public_url_morti:[36,37],public_url_path_morti:35,publicli:18,publish:22,publishedd:22,pubm:3,pull:[8,15,18,21,27,29],purpos:[14,22,26],push:[21,24],py3:24,pybabel:29,pybuild:23,pyclean:24,pyenv:[10,11,24,38],pygment:27,pylint:23,pylintrc:24,pypi:[24,27],python2:[11,20],python3:[2,10,11,20,26],python:[2,10,11,14,17,23,26,27,30,38],pythonhom:11,pythonpath:11,qout:36,quadratur:30,qualiti:[2,24,27],queri:[13,18,19,22,28,32,33],question:[27,32],qui:27,quickstart:[21,23,24,30],quiet:24,quit:[7,21,24],qwant:3,qwer:33,qwi:3,qwn:3,qws:3,rais:18,random:[22,32],rang:[3,11,22,28],rangl:27,rate:4,rather:19,raw:27,rbg:3,reach:27,reactiv:14,read:[18,21,24,26,35],readability_:27,reader:27,readlin:18,readm:[4,7,11,12],readthedoc:11,real:[4,9],realli:6,reason:[7,11,16,20,24,27],rebuild:[21,24],rebum:27,recommend:[2,4,6,11,21,22,24,27,35],reconsid:21,record:27,reddit:3,redefin:22,redirect:13,reduc:21,ref:[34,37],refer:[1,27,32],referenc:27,refnam:27,regardless:32,regular:18,reinstal:[34,38],rel:[9,27,36],releas:[20,24,36],releng:36,reload:11,rememb:[11,21],remot:36,remote_addr:[4,9],remov:[11,13,32,34,35,36,37,38],renam:28,render:2,replac:[7,9,10,16,25],repo:21,repositori:[10,16,36],request:[5,7,9,14,18,19,21,23,25,27,32],request_timeout:14,request_uri:7,requesthead:7,requir:[2,7,13,20,21,22,23,24,26,27,28],requisit:24,reset:32,resourc:9,respect:[10,21,32,34,37],respons:14,rest:[19,23,30],restart:[5,9,10,11,12,15,34,37],restrict:19,restructuredtext:27,result:[1,2,5,6,7,9,13,14,18,23,27,28,30,32,37,38],result_proxi:[7,9,12,37],results_on_new_tab:28,retriev:29,return42:27,return_cod:18,rever:7,revers:[1,5,6,9,34,35,36,37],rewrit:[0,13],rfc:27,rhel:[2,7,9,10,11,27],rid:[24,36],right:[11,19,25,27,30],rightmost:27,rigth:27,road:22,roboag:4,robot:[24,26],robotframework:20,role:23,rolenam:27,roll:36,romanian:14,root:[7,9,24,36],rotat:27,round:21,rout:[5,7,9,27],row:27,rowspan:27,rspan:27,rss:[4,28],rst:[21,27],rst_titl:36,rubygem:3,rule:[4,21,34],run:[2,4,6,7,8,9,11,12,14,17,18,19,21,22,23,25,27,29,32,34,35,37,38],runtimeerror:18,russian:14,ryzen:10,sadipsc:27,safe:[3,28],safe_search:0,safesearch:[27,28],same:[4,10,13,14,22,27],sampl:[5,27,34],san:2,sanctu:27,satisfi:26,save:7,sc2031:36,sc2034:[35,36],scalabl:27,scale:[27,36],scaleabl:27,scan:11,scc:3,scd:3,schedul:[18,20],scheme:[4,9],scholar:3,schroeding:27,scienc:3,scope:21,scratch:2,script:[1,4,5,7,9,10,26,34,35,36,37,38],script_nam:9,scroll:13,sdist:24,sea:27,search:[3,4,5,13,14,18,19,21,22,23,27,30,31,32],search_on_category_select:[13,28],search_path:22,search_str:22,searchcod:3,searchcode_cod:3,searchcode_doc:3,searx:[0,1,2,4,5,6,7,8,11,12,14,15,17,18,21,22,24,25,26,27,28,29,31,33,34,35,37],searx_instance_nam:38,searx_internal_http:38,searx_internal_url:35,searx_settings_path:[10,11],searx_url:[24,35],searx_userag:14,sec:4,second:[10,14,27],secret:[14,19],secret_kei:14,section:[9,14,24,27],secur:30,sed:[10,27],see:[2,4,7,8,9,11,12,14,18,19,21,26,27,28,30,33,34,36],seed:22,seeder:22,seedpeer:3,select:[13,24,27,32,33,36],selenium:26,self:[13,16,30,34,36,37,38],self_inform:28,semant:[3,21],send:[2,4,14,32],sens:27,sent:32,separ:[19,21,27,28,34,37],seri:24,serif:2,serv:[21,32,36],server:[4,5,6,11,14,26,36,37],server_nam:9,servic:[4,5,6,9,11,12,27,28,30,32,34,35,36,37,38],service_home_bas:35,service_us:[34,35,37,38],service_ussr:35,session:[10,26],set:[2,3,5,7,9,10,11,12,16,18,24,26,27,28,29,30,32,33,34,35,36,37,38],setenvif:7,sethandl:7,setup:[1,2,4,5,6,7,9,10,11,23,27,30,34,37],setuptool:10,seznam:3,share:[7,11,19,36,38],she:[19,32],shell:[5,10,34,35,36,37,38],shellcheck:[2,10,27,35,36],ship:9,shortcut:[0,3,14,19,22,27],should:[6,7,9,14,16,20,21,27,29],show:[1,2,3,7,9,27,34,35,36,37],shown:[6,7,10,27],side:[6,27],sign:27,signifi:27,similar:[11,27],simpl:[24,28,34,37],simplest:27,simpli:[4,21,24,28,34,35,37,38],simplifi:[4,24,34,37,38],sinc:[9,16,24,27],singl:[7,9,11,32,36],sit:27,site:[0,4,5,7,14,22,27,28,34,37,38],size:22,skeleton:18,skill:23,skip:26,slow:14,small:[22,38],snap:36,snapcraft:36,snippet:12,social:[0,3],sock:14,socket:[7,9,11],soft:23,softwar:[3,34,37],sold:32,solut:19,solv:[4,19],some:[1,6,7,11,14,19,21,24,27,34,35,36,37,38],someon:32,someth:[21,24],sometim:16,soundcloud:3,sourc:[10,14,20,23,24,27,29,32,34,36,37],source_fil:29,source_ip:14,source_lang:29,space:14,span:27,spars:27,spdx:[35,36],speak:11,special:[6,11,22],specif:[11,14,22,36],specifi:[11,14,22,28],speu:3,sphinx:21,splinter:20,split:21,spoilt:6,sponsor:[16,18,19,20],src:[4,9,10,11,38],srv:7,ssl:[22,30],stabl:14,stack:[26,36],stackoverflow:3,stage:27,standalon:16,standard:[7,21,22,36],start:[1,4,7,9,10,11,21,22,24,30,34,36,37,38],startpag:[3,28],stash:[15,24],stat:27,statist:27,statu:[34,35,37,38],stdout:18,step:[1,5,6,17,21,30,38],stet:27,stone:19,stop:[4,7,9,10,11,24,34,36,37,38],storag:36,store:[22,32],strang:11,street:22,strict:19,string:[19,22,28,29],stroke:27,strong:27,structur:[21,23],stub:27,stuff:27,style:[23,28],sub:[21,27],subdir:9,subdirectori:9,subject:27,submit:21,subnet:7,subprocess:18,subrul:4,subscript:27,subsect:27,subshel:36,substitut:23,sudo:[2,6,7,9,10,11,15,26,27,34,35,36,37,38],suffix:14,suggest:[1,25],suit:35,suitabl:27,sup:27,superscript:27,supervisor:16,support:[2,3,5,9,10,11,14,17,19,21,22,27,28,30,32,34,36,37],sure:[8,10,20],surround:27,suspici:4,svg:2,svg_imag:27,symbol:11,symlink:9,syntax:[28,30,31],syslog:[34,37],system:[10,11,19,20,21,24,27,34,35,37],systemctl:[7,9,11,15],systemd:[11,34,37,38],szn:3,tab:[13,23,28,36],tabl:[18,23],tailor:32,take:[11,14,16,21,29,36],taken:[27,35],takimata:27,tar:[24,34,37],target:[21,23,27,30,34,36,37],task:[6,10,27,36],tcp_nodelai:10,tell:22,templat:[11,18,22,23],tempor:27,term:[7,27],termin:10,test123:38,test:[2,7,9,10,20,21,23,36,38],texliv:2,text:[0,22,27],textstyl:27,tfrac:27,than:[14,27,30],thei:[11,14,19,27,32],them:[11,14,24,27,35],theme:[14,23,24,28],themes_path:14,themselv:19,therefor:[6,27],thi:[4,6,7,8,9,10,11,12,13,14,16,18,19,20,22,24,25,26,27,28,32,34,35,36,37,38],thing:27,think:[21,24,27],third:[27,32],those:[18,29,32],thread:11,three:[21,25,27,32],through:[5,7,9,14,19,27,28,32],thu:[18,20,28,32],thumbnail:22,thumbnail_src:22,time:[4,14,20,21,22,27,28,32,36],time_rang:[0,28],time_range_support:[22,27],timeout:[3,14,22,27,35,37],timestamp:11,tip:[23,27],titl:22,todai:18,togeth:18,token:[18,19],tokyotoshokan:3,too:[4,14,27,32],tool:[1,2,6,10,16,21,27,29,30,36],top:27,tor:[3,30,32],torrentfil:22,torrentz:3,touch:[7,9,11,14],tpb:3,trace:26,track:[30,32],tracker:13,tracker_url_remov:28,trademark:27,traffic:[7,9],train:27,transform:27,transifex:[21,23],transifexrc:29,translat:[3,14,23,30],transpar:36,travi:[20,26],tree:[10,24],troubleshoot:35,trust:[19,30,32],ttf:2,tupl:25,turn:[21,26],twice:10,twine:24,twitter:3,two:[11,21,27,28],txt:[20,24,27],type:[0,21,22,24,28,29,32,34,36,37],typic:[1,27],typo:27,ubu1604:36,ubu1804:36,ubu1910:36,ubu2004:36,ubuntu:[2,7,9,10,11,15,27,36],uds:7,ugli:[16,27],uid:11,ullamco:27,ultrasecretkei:[10,14],unam:[10,36],uncom:14,uncommon:21,under:[19,22],understand:[16,27],unfortun:21,unicod:23,uninstal:[24,35],unit:[11,21,24,34,37,38],unit_test:[24,26],univers:10,unix:[7,9,11],unknown:[32,34,37],unless:19,unlik:32,unspecifi:22,unsplash:3,untouch:24,unwant:6,updat:[5,10,14,21,23,30,34,37,38],update_dev_packag:26,update_packag:15,upload:24,upstream:11,url:[0,7,9,12,13,14,21,22,24,32,35,36,37,38],urlencod:22,usag:[6,7,9,24,27,34,36,37,38],use:[2,4,6,7,9,11,12,14,18,19,21,22,24,26,27,30,31,34,35,36,37,38],used:[7,9,14,20,21,22,27,30,32,35],useful:[14,35],user:[4,5,7,9,11,13,14,19,21,22,27,30,32,35,38],useradd:[10,34,37],userag:4,useragent_suffix:14,uses:[11,14,22,27,32],using:[4,7,9,11,14,17,21,24,26,27,29,30],usr:[4,7,9,10,11,34,35,37,38],usual:[20,32],utf:[27,35,36],util:[1,2,4,6,7,9,12,24,30],uwsgi:[1,2,5,9,10,15,30,38],uwsgi_param:9,uwsgi_pass:9,uwsgisocket:7,valid:[22,26,28],valu:[0,9,18,22,27,28,35],variabl:[22,24,27,37],variant:27,variou:[21,25],vassal:11,vector:27,vendor:21,veniam:27,venv3:20,venv:[2,10,26],verbos:[10,24,35],veri:35,verifi:22,vero:27,version:[10,13,20,27,34,37],via:[7,9,11,16,33],video:3,view:[23,32],viewbox:27,vim:[0,13,28],vim_hotkei:13,vimeo:3,virtual:[7,9],virtualenv:[2,10,11,20,24,26,38],virualenv:[10,24],visist:27,visit:[10,27,32],voat:3,voluptua:27,vpn:32,vulner:32,wai:[11,18,21,22,27,32],wait:[14,18],want:[14,19,20,21,24,27,28,32,35,36],wantedbi:[34,37],warn:[2,7,9,27,36],watch:21,web:[4,10,14,16,22,24,34,36,38],webapp:[10,11,14,20,24,27],webcrawl:4,webserv:9,websit:0,weight:[14,27],weigth:[3,14],weird:21,welcom:[7,9],well:27,were:[18,19,20],werkzeug:24,wget:[34,37],what:[11,27,36],whatev:[8,24,36],wheel:10,when:[2,7,13,14,20,25,26,27,32],where:[4,14,27],whether:[26,32],which:[1,4,7,9,11,14,16,18,19,21,22,24,27,28,30,32,34,37],whl:24,who:[11,16,18,32],whole:[7,25],why:[27,30,31],wide:21,widen:27,width:27,wiki:[0,3,9,18,19,27,36],wikibook:3,wikidata:3,wikinew:3,wikipedia:[3,14,28,33],wikiquot:3,wikisourc:3,wikivers:3,wikivoyag:3,wiktionari:3,window:13,wish:14,within:[24,27],without:[2,14,22,30,32],wolframalpha:3,wolframalpha_noapi:3,won:[14,20],wonderfal:8,word:[25,27,28],work:[9,10,14,21,22,24,26,32],worker:11,workingdirectori:[34,37],world:[21,27,32],worri:20,worth:[11,32],would:19,wrap:9,wrong:24,wsgi:[9,11],www1x:3,www:[2,7,27,29,36],wysiwyg:21,xdg:24,xetex:2,xgd:10,xml:27,xmln:27,xpath:3,xxxx:27,xzf:[34,37],yahoo:3,yahoo_new:3,yandex:3,year:[20,28],yes:[34,37],yet:[21,22,24],yhn:3,yml:[3,5,7,9,10,11,12,16,18,24,26,28,30,37,38],you:[1,2,4,6,7,8,9,10,11,14,17,18,21,24,26,27,28,30,32,33,34,35,36,37,38],your:[2,4,6,7,9,10,11,12,13,14,16,17,20,21,23,24,25,27,30,34,35,36,37,38],your_morty_proxy_kei:12,yourself:21,youtub:3,youtube_noapi:3,yyyi:27,zero:18,zlib1g:[2,10],zzzz:27},titles:["Administration API","Architecture","Buildhosts","Engines","How to protect an instance","Administrator documentation","Installation","Install with apache","Docker installation","Install with nginx","Step by step installation","uwsgi","How to setup result proxy","Plugins builtin","<code class=\"docutils literal notranslate\"><span class=\"pre\">settings.yml</span></code>","How to update","Searx admin interface","Blog","Preparation for offline engines","Limit access to your searx engines","Introducing Python 3 support","How to contribute","Engine overview","Developer documentation","Makefile Targets","Plugins","Development Quickstart","reST primer","Search API","Translation","Welcome to searx","User documentation","Why use a private instance?","Search syntax","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/filtron.sh</span></code>","Tooling box <code class=\"docutils literal notranslate\"><span class=\"pre\">utils/*</span></code>","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/lxc.sh</span></code>","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/morty.sh</span></code>","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/searx.sh</span></code>"],titleterms:{"default":[3,13,22],"public":[7,9,32],"return":22,The:[7,9,21],about:[27,32],access:19,acknowledg:[16,18,19,20],activ:24,admin:16,administr:[0,5],admonit:27,aka:27,alltogeth:11,anchor:27,apach:7,api:[0,28],architectur:1,argument:22,articl:[2,27],ascii:27,bar:0,basic:27,bibliograph:27,block:27,blog:17,box:[4,35],bug:20,build:[2,21,24,26,27],buildhost:[2,36],built:[3,13],builtin:13,bullet:27,check:10,clean:[21,24],code:[21,22,27],command:[35,36],commit:21,common:35,compil:26,conclus:32,configur:[0,3,4,10,13,22],consequ:32,content:[2,4,7,9,10,11,14,21,22,24,27],contribut:21,creat:[10,21,34,37],csv:27,data:0,debian:7,debug:26,definit:27,depend:10,deploi:21,design:21,develop:[18,23,26],direct:21,disabl:[7,9],distributor:11,doc:[2,21,24],docker:8,document:[5,21,23,31],doe:32,dot:27,drop:24,emb:0,engin:[3,14,18,19,22],entri:25,environ:[24,26,27,35],equat:27,exampl:[22,25,27,33],ext:27,extlink:27,fact:20,featur:30,field:27,figur:27,file:[22,27],filtron:[4,34],first:6,flat:27,foo:27,fork:24,found:20,fun:20,further:[1,3,4,7,9,11,12,13,14,25,27,28,34,36,37,38],gate:27,gener:[22,27],get:0,github:21,global:14,good:21,graphviz:27,grid:27,hackabl:21,head:27,hello:27,highlight:27,hlist:27,hook:25,horizont:27,how:[4,12,15,20,21,26,32],http:[7,9],hyperlink:27,imag:[22,27],init:29,inlin:27,instal:[6,7,8,9,10,16,34,36,37,38],instanc:[4,32],interfac:16,internet:[7,9],intersphinx:27,introduc:20,javascript:26,kernel:27,kiss:27,latex:27,layout:7,limit:19,line:27,link:27,lint:2,list:27,liter:27,live:[21,24],log:[7,9],lxc:36,make:[22,24,26],makefil:[24,26],map:22,markup:27,math:27,matter:27,morti:37,name:27,need:2,nest:27,next:[18,19],nginx:9,note:27,offlin:18,ordinari:27,origin:11,overrid:22,overview:[22,34,36,37,38],packag:10,page:24,paragraph:27,paramet:28,pars:22,pass:22,plugin:[13,25],point:25,post:25,pre:25,prepar:18,prime:21,primer:27,privaci:[21,32],privat:[19,32],process:27,progress:18,project:29,protect:[4,32],proxi:[7,12],pybuild:24,pyenv:26,pylint:24,python:[20,24],quickstart:26,quot:27,read:[1,3,4,7,9,11,12,13,14,25,27,28,34,36,37,38],readabl:27,ref:27,render:27,request:[4,22],requir:29,respons:0,rest:[21,27],restart:7,result:[12,22,25],revers:7,role:27,rout:4,run:[20,24,26,36],sampl:[0,4],script:[2,6],search:[0,25,28,33],searx:[9,10,16,19,20,30,32,36,38],see:32,server:[7,9],servic:7,set:[14,22],setup:[12,24,26,35,36],shell:2,sidebar:27,simpl:27,site:9,skill:27,smart:27,soft:27,some:2,sourc:[21,26],space:27,specif:27,sphinx:[2,27],step:[10,18,19],structur:27,style:26,substitut:27,suit:36,support:[7,20],svg:27,syntax:[27,33],tab:27,tabl:27,target:[24,26],templat:27,test:[24,26],theme:26,thi:2,through:4,time:[3,13],tip:26,titl:27,tool:[4,35],torrent:22,transifex:29,translat:[21,29],truth:27,unicod:27,unit:26,updat:[6,15,29],upgrad:20,upstream:24,url:27,use:32,user:[10,31,34,37],using:[20,32],util:[34,35,36,37,38],uwsgi:[7,11],video:22,view:27,welcom:30,what:32,why:32,work:2,yml:[14,22],you:20,your:[19,26]}})
1+Search.setIndex({docnames:["admin/api","admin/architecture","admin/buildhosts","admin/engines","admin/filtron","admin/index","admin/installation","admin/installation-apache","admin/installation-docker","admin/installation-nginx","admin/installation-searx","admin/installation-uwsgi","admin/morty","admin/plugins","admin/settings","admin/update-searx","blog/admin","blog/index","blog/intro-offline","blog/lxcdev-202006","blog/private-engines","blog/python3","dev/contribution_guide","dev/engine_overview","dev/index","dev/makefile","dev/plugins","dev/quickstart","dev/reST","dev/search_api","dev/translation","index","user/index","user/own-instance","user/search_syntax","utils/filtron.sh","utils/index","utils/lxc.sh","utils/morty.sh","utils/searx.sh"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["admin/api.rst","admin/architecture.rst","admin/buildhosts.rst","admin/engines.rst","admin/filtron.rst","admin/index.rst","admin/installation.rst","admin/installation-apache.rst","admin/installation-docker.rst","admin/installation-nginx.rst","admin/installation-searx.rst","admin/installation-uwsgi.rst","admin/morty.rst","admin/plugins.rst","admin/settings.rst","admin/update-searx.rst","blog/admin.rst","blog/index.rst","blog/intro-offline.rst","blog/lxcdev-202006.rst","blog/private-engines.rst","blog/python3.rst","dev/contribution_guide.rst","dev/engine_overview.rst","dev/index.rst","dev/makefile.rst","dev/plugins.rst","dev/quickstart.rst","dev/reST.rst","dev/search_api.rst","dev/translation.rst","index.rst","user/index.rst","user/own-instance.rst","user/search_syntax.rst","utils/filtron.sh.rst","utils/index.rst","utils/lxc.sh.rst","utils/morty.sh.rst","utils/searx.sh.rst"],objects:{},objnames:{},objtypes:{},terms:{"0pointer":11,"0xa9":28,"1337x":3,"15px":28,"3eff":19,"40px":28,"573b":19,"70px":28,"800gbpciex4":39,"9873266d1c899b68f21ca049ae5e5d93":10,"9b65":19,"\u65e5\u672c\u8a9e":14,"abstract":17,"boolean":[23,28],"break":[22,28],"byte":23,"case":[7,9,14,19,20,27,33,35,38,39],"class":7,"default":[4,7,9,11,12,14,21,22,25,26,28,29,31,33,34,35,36,37,38,39],"espa\u00f1ol":14,"export":[9,10,19,25,35,37,38],"fran\u00e7ai":14,"function":[18,23,26,28,37],"import":[9,18,28],"int":[4,23,28],"long":33,"new":[3,7,9,10,11,13,16,18,20,22,25,26,27,29,30,38],"null":[7,9,22],"public":[1,6,13,28,36,37],"return":[13,14,18,24,26,28,33],"schr\u00f6dinger":28,"short":27,"static":[2,4,9,26],"switch":[7,22],"t\u00fcrk\u00e7e":14,"true":[0,4,7,9,10,11,14,18,23,26,27,28,29,35,38],"try":[10,25,27,33],"var":7,"while":[11,18,19,25,28],And:[7,19,28],But:[16,21,23,33,37],DNS:[36,37],For:[2,4,7,8,9,10,11,19,20,22,25,27,28,29],IPs:[4,36],Not:28,One:[11,16],That:28,The:[0,2,5,6,11,14,20,23,25,28,29,33,35,36,37,38,39],Then:[18,21,27,30],There:[7,11,22,28],These:[23,28],USE:7,Use:[4,7,9],Used:[7,14],Uses:14,With:[7,19,25,28,37],__dict__:28,__name__:28,_anchor:28,_chapter:28,_doc:28,_dot:28,_rest:28,_section:28,_sphinx:28,_subsect:28,_svg:28,a2disconf:7,a2dismod:7,a2dissit:7,a2enconf:7,a2enmod:7,a2ensit:7,abbrev:34,abl:[2,14,18,22,23,28],about:[1,19,20,22,25,31,37],abov:[7,10,19,22,28,29,37],absenc:28,abus:[4,33],academ:3,accept:[4,10,18,34],access:[4,7,13,16,17,18,19,28,31,33],access_log:9,accord:11,account:[7,9,19,30,35,36,38,39],accross:14,accusam:28,acg:3,acgsou:3,acknowledg:17,act:[12,16],action:[0,4,11],activ:[7,9,10,11,12,14,19,21,22,27,29,35,38,39],adapt:23,add:[6,7,9,11,12,20,22,25,26,28,34,35,36,38,39],added:[11,19,20,25,26],adding:[18,28,36],addit:[2,23,25,27,28],addition:[31,33],address:[12,14,23,33,36],adipisici:28,adjust:25,admin:[14,17,19,20,28,31,36,38],administr:[16,18,20,29,31,33],admonit:24,adopt:22,adorn:28,ads:33,advantag:[16,28],advertis:33,advis:[4,7,9],aearx:14,af2cae6:28,affect:16,after:[10,21,26,27,28,30,35,38],again:25,agent:[4,10,13,14,23],aggreg:[4,31,33],agpl:[36,37],aim:[16,25,28],aka:25,alia:9,align:28,aliquid:28,aliquyam:28,all:[0,6,7,12,19,21,22,23,25,28,29,35,36,37,38,39],allow:[7,10,14,28,34],allowoverrid:7,alltogeth:5,along:4,alreadi:[7,9,19,22,27],also:[2,7,8,10,11,19,22,25,28,33,34,36],alt:28,alter:22,altern:[6,9,27,28,37],alwai:[9,19,23,27,33,35,38],amd64:[35,38],amet:28,among:[22,33],amsmath:28,analog:19,analysi:2,ancel:28,anchor:24,ani:[2,6,7,11,25,28,29,31,36],annoi:28,anonym:[31,33],anoth:[11,14,16,19,23,28,37],answer:[14,28,33],anymor:7,anyon:31,anyth:[14,21,33],anywai:[25,28],apach:[1,4,5,6,11,14,31,35,36,37,38,39],apache2:7,apache2ctl:7,api:[5,14,20,23,24,30,31,35],api_kei:[14,23],apikei:14,apk:3,apkm:3,apkmirror:3,app:[3,7,9,11,19,28,35,38,39],appear:[27,28],append:18,appli:[14,15,22],applic:[4,9,11,14,16,19,39],approach:11,april:37,apt:[2,7,9,10,27,28],arbitrari:[18,23],arch:[0,2,3,7,9,10,11,20,28],architectur:[4,5,6,7,9,19,31,35,38,39],archiv:3,archlinux:[3,11,20,37],argument:[12,13,28],arrai:23,arrow:28,art:[28,29],articl:24,arx:3,arxiv:3,asciimoo:[6,8,10,19,22,25,27,30,35,38,39],ascrib:28,aspect:[19,22],assert:22,assign:23,assum:[10,28],asterisk:28,attach:26,attend:19,attent:28,attribut:28,audienc:28,author:[22,28],auto:[19,28,30,37],autobuild:25,autocomplet:[0,29],autodoc:28,autoindex:7,autoindex_modul:7,automat:[11,13,28],avail:[7,9,11,13,14,18,22,27,29,33,35,38,39],avoid:[4,6,13,14],awar:[7,28,36],babel:[2,10],back:19,backquot:28,backslash:28,backup:36,balanc:25,ban:33,bang:14,bar:[5,28,35,38],barrier:16,base:[2,10,14,18,19,23,25,29,37],base_url:[9,14,23],baseprofil:28,bash:[10,19,28,35,36,37,38],basic:[24,37],batch:36,baz:28,becaus:[16,20,22,23,27,30,33],becom:[19,28],been:[18,19,22],befor:[6,10,11,19,21,22,25,26,27,28,33,36,37],beginn:9,behavior:28,behaviour:[11,13,22,26],being:[4,14,16,21,31],below:[4,6,10,11,14,22,27,28,30],benefit:20,besid:33,best:[2,25,28,33,36],better:[2,7,9,23,25,33],between:[4,23,28],big:28,bigger:14,biggest:16,bii:3,bin:[2,3,10,11,21,25,27,35,38],binari:[35,38],bing:[3,14],bing_imag:3,bing_new:3,bing_video:3,bit:[11,28],bitbucket:[0,3],biv:3,black:28,blank:[14,28],block:[4,14,24],blocker:19,blog:[11,19,28,31],bodi:[10,22,28],boilerpl:[10,19,25],bold:28,boldfac:28,born:22,bot:19,both:[11,20,21,22,29,33],botlimit:4,bottom:13,boundingbox:23,box:[1,6,31,37],branch:[22,25,36],brand:[25,36],bring:[25,28],broken:28,browser:[10,13,14,16,19,21,22,25,33,37],btdigg:3,bug:[11,17,25,27],buggi:11,bugreport:[11,22],build:[1,5,6,8,10,19,24,37],buildenv:25,builder:28,buildhost:[5,19,25,31,36,39],built:[22,23,27,28],builtin:[5,26,31],bundl:10,c3tv:3,calcul:9,call:[16,19,20,25,30,37],callback:26,can:[0,1,2,4,6,7,8,9,10,11,12,14,16,18,19,20,21,22,23,25,26,27,28,31,33,35,37,38,39],cancel:28,cannot:[2,28,33,35,38],capabl:[16,22],caplabl:18,captcha:33,caption:28,cardin:22,care:[14,28,36,37],carv:20,cat:[35,37,38],catcher:28,categori:[0,3,13,14,18,23,28,29,34],caution:28,caveat:28,ccc:3,cdn:2,cell:28,cfg:[3,28],cgi:11,chain:25,chainabl:34,chang:[11,14,19,21,22,25,28,36],chapter:[4,21,22,28,38,39],charact:[22,28],chdir:[11,19],check:[2,5,18,19,22,23,25,27,30],checker:25,checkout:22,chmod:11,choic:[6,10,19,28,33,36],choos:[6,22,23],chown:[7,9,10,11,35,38],chronolog:28,citi:23,classifi:28,clean:[24,37],clear:33,cli:30,client:19,clita:28,clock:21,clone:[6,8,9,10,19,22,25,27,39],close:[4,10],cmd:[19,36,37],code:[3,11,14,18,24,25,27,29,33,36,37],codebas:16,coffe:37,col:28,colleagu:20,collect:2,colon:28,colspan:28,column:28,com:[6,8,10,19,23,25,27,28,29,30,35,37,38,39],combin:7,come:[4,9,20,21,22,25,33,37],comfort:[11,28],comma:[20,29],command:[2,4,7,10,11,19,21,27,28,30,31,35,38,39],comment:[7,9,10,28,35,37,38],commit:[19,25,27,30],commodi:28,common:[11,27,31,33,35,38,39],commonli:28,commun:[7,9,18],compact:28,compani:33,compar:[7,9,11,19,37],compat:21,compil:[7,24,30],complet:[4,11,22,29,35,37,38,39],compon:[7,26,36],compromis:33,comput:33,con:28,conatin:19,concern:22,conclus:32,concret:[20,28],condit:28,conf:[2,7,9,28,35,38],config:[0,11,20,23,28,30,35,36,37,38,39],configur:[5,7,9,11,16,18,19,20,24,28,30,33,35],conflict:36,confnam:11,confus:28,connect:[4,9,10,18,31],consectetur:28,consequ:[14,22],consequat:28,consetetur:28,consid:6,consist:19,construct:[23,28],consult:27,contact:14,contain:[10,13,14,17,27,28,31,36,37],content:[5,17,24,31,32,33,36],context:[26,28,37],continu:28,contribut:[1,2,19,24,25,31],contributor:28,control:[7,11,33],convent:22,convert:28,cooki:[23,31,33],copi:[10,22,28,37],copyright:28,core:[2,11,18],corner:22,correct:[9,14],correctli:9,correspond:11,could:[11,14,23,28],count:28,countri:[14,23],courgett:29,cours:28,coverag:27,crawler:28,creat:[5,6,7,9,11,14,18,19,21,27,28,29,30,36,39],creation:[2,28],creativ:20,cross:28,crossref:3,cryptic:27,cryptographi:14,cspan:28,css:[13,26],css_depend:26,csv:[4,29],csv_tabl:28,ctan:28,cthulhu:34,ctrl:[10,19,25],ctx:26,cup:37,curl:10,currenc:3,currency_convert:3,current:[13,14,18,22,23,30,34],custom:[14,22,28,34],customiz:[0,16],customlog:7,cycl:[19,25],daemon:[35,38,39],dai:[11,25,29],daili:19,dailymot:3,dalf:1,danger:28,data:[5,23,28,33],databas:[20,28],date:[0,23],datetim:[23,28],daunt:16,dbpedia:29,ddd:3,ddg:[3,34],ddi:3,de_d:14,deactiv:[14,35,38,39],debian:[2,5,9,10,11,15,28],debug:[10,14,19,24,25,35,36,38,39],decid:[16,25],decim:23,dedic:[11,19,28],deeper:[25,28],deezer:3,def:[18,23,26,28],defaul:28,default_local:[0,14],default_on:26,default_them:[0,14],defin:[14,26,28],definit:3,dejavu:2,delet:[14,29,30,37],delimit:28,demon:10,demonstr:9,deni:7,depend:[4,5,7,9,13,16,18,19,21,23,25,27,28,29],deploi:[8,14,25,28],describ:[4,6,7,11,14,19,25,28,39],descript:[13,22,26,28,35,38],deserv:22,design:[18,28],desir:[23,27],desktop:19,detail:[7,14,18,28],detect:14,deutsch:[0,14],dev:[2,7,9,10,22,25,28],devel:[2,10],develop:[2,10,14,16,17,20,21,22,25,28,31,36],deviantart:3,dfrac:28,diam:28,dict:28,dictzon:3,didn:14,diff:28,differ:[7,9,11,19,21,22,23,28,37],digg:3,digit:31,digraph:28,dir:[10,35,38],direct:[7,24,28,35,38],directli:[9,14,37],directori:[3,7,11],disabl:[3,5,10,11,13,14,19,25,26,28,29,36,37],disabled_engin:29,disabled_plugin:29,disadvantag:28,discoveri:[18,20],discret:36,displai:[2,13,14,23],display_error_messag:[14,23,28],displaystyl:28,dispos:36,disrespect:22,dist:[22,25],distinguish:28,distribut:[7,9,11,19,20,28,35,38],distributor:5,dive:33,divid:19,dnf:[2,7,9,10,28],doai_rewrit:29,doc:[3,5,7,11,19,24,28,37],docker:[5,6,25,31],dockerfil:8,docs_url:25,doctest:28,doctre:28,docuemt:2,document:[7,11,18,20,25,28,31,37],documentroot:7,docutil:28,doe:[7,11,16,18,19,23,25,28,29,32],doesn:14,doi:13,dolor:28,domain:28,domin:22,don:[7,21,25,28,31],done:[7,9,25,28,36,37],dontlog:7,dot:2,doubl:28,download:[6,19,25,28,35,38],drop:21,dsitro:19,duckduckgo:[3,29,34],duckduckgo_definit:3,duckduckgo_imag:3,duden:3,due:[35,38],duo:28,duref:28,dvisvgm:2,e0b3:19,e97:19,each:[11,19,28,29,37],easi:[19,31],easier:22,easili:22,echo:[10,35,37,38],ecosystem:28,edit:[10,11,16,19,22,25,28,33,38],effect:[6,22,28],egg_info:25,eirmod:28,either:27,element:28,elimin:27,elit:28,elitr:28,els:37,emac:28,email:14,emb:[5,28],embed:[0,8,28],emperor:11,emphasi:28,empti:[7,28,29],en_u:[14,23],enabl:[0,7,9,10,11,20,22,25,27,29,36],enabled_engin:29,enabled_plugin:29,encapsul:19,enclos:28,encod:28,encourag:28,encrypt:31,end:[21,28,37],endfor:28,engin:[0,5,10,16,17,22,24,27,28,29,31,33,34,35,38],english:[0,14],enim:28,enough:[6,7,9,30],enpoint:29,ensur:22,enter:[10,21],entri:[24,36,37],env:[7,11,19,25,27,36,37],environ:[9,10,19,24,31,35,37,38,39],eof:[35,37,38],eol:37,eos:28,equat:[2,24],erat:28,erowid:3,error:[3,14,23,27,28],error_log:9,escap:28,especi:28,esperanto:0,essenti:[2,10],est:28,etc:[4,7,9,10,11,19,22,35,39],eth0:[19,37],eto:3,etool:3,etymonlin:3,evalu:[28,37],even:[11,19,37],event:11,ever:37,everi:[14,19,22,23,33,37],everyon:[18,33],everyth:[10,28,33],exactli:[4,28],exampl:[0,4,7,9,11,18,19,20,22,24,27,29,32,33,36,37],exceed:4,excel:[6,9],except:[7,21,22,28,36],exchang:33,execstart:[35,38],execut:[14,30],exercis:19,exercit:28,exist:[7,9,16,19,21,22,25],exit:[10,19],expand:28,expect:[20,22],experi:11,experienc:[16,19],experiment:36,explain:22,explanatori:[35,37,38,39],explicit:28,expos:20,ext:2,extend:[18,22,26,28],extens:[2,28],extern:[4,12,23,28,29,33],extra:[2,7],extract:2,extrem:16,eye:[19,28],face:28,fact:17,fail:[19,27],fals:[0,10,14,26,27,28,29,38],familiar:[11,25],fanci:22,faq:28,favorit:[22,25],fd00:7,fd42:19,fdroid:3,fe80:7,fea5:19,featur:[12,16,20,22,28,33],fedora31:37,fedora:[2,7,9,10,11,28,37],fedoraproject:37,feedback:[22,28],feel:[26,28],few:[14,22,23],fieldnam:28,figur:[7,9,24],file:[2,3,7,9,10,11,14,16,18,19,20,21,22,25,26,27,30,35,37,38,39],file_filt:30,filenam:23,files:23,fill:28,filter:[0,4,29],filtron:[1,5,6,7,9,11,19,31,36,37],filtron_api:[35,36,37],filtron_listen:[35,36,37],filtron_target:[35,36],find:[1,4,18,20],fine:[6,10],finish:[30,37],firefox:2,firewal:4,first:[7,9,10,16,18,19,21,25,27,28,33],fit:[11,20,26],fix:[22,25,27],fixm:7,flask:[26,28],flexibl:[28,36],flickr:3,flickr_noapi:3,fmt:37,folder:[7,9,10,11,19,22,23,25,27,28,30,36,37],follow:[4,6,7,9,11,12,22,23,25,27,28,30],followsymlink:7,font:2,fontsrecommend:2,footer:22,force_timeout:[36,37],fork:[6,19,22,36],form:[0,28,33],format:[4,23,27,28,29],forward:[4,9,33],found:[2,16,17,25],foundat:[16,18,20,21],fr_fr:14,fraction:28,framalibr:3,free:[3,26,31],fresh:7,friend:[20,25,33],frinkiac:3,frk:3,frl:3,from:[1,2,4,6,7,8,9,10,11,13,14,16,18,19,20,21,22,25,28,30,31,33,35,36,37,38,39],front:28,fsd:3,full:[14,22,28,35,38],fulli:[7,9,16],fun:17,fund:[18,20],further:[25,27,36],furthermor:[23,27,29,33],futur:37,gain:33,gate:25,geektim:3,gen:3,gener:[0,3,7,11,14,18,22,24,25,33],genesi:3,geniu:3,gentlemen:17,gentoo:3,geojson:23,german:0,get:[2,4,5,6,7,9,10,13,19,22,23,25,27,28,29,30,31,35,37,38],get_engines_stat:28,gid:11,gigablast:3,gil:11,git:[2,6,7,8,9,10,14,15,19,22,23,25,27,28,35,36,38,39],git_branch:[19,25,36],git_url:[19,25],github:[3,6,8,10,18,19,21,25,27,28,29,35,37,38,39],gitlab:3,gitmoji:22,give:[7,25,27],given:28,glob:11,global:5,global_ip:37,glyph:28,gnu:25,go1:[35,38],go_env:[35,38],goe:25,goi:[0,3],going:[4,18,20,28,33],gon:3,good:[6,7,9,19,27,37],googl:[0,3,29,35,38],google_imag:3,google_new:3,google_video:3,gopath:[35,38],gos:3,got:19,gov:3,gpa:3,gpm:3,gps:3,grant:[7,11],graphic:16,graphviz:2,grep:37,group:[28,33,35,38],grow:16,grumpi:28,grunt:27,gubergren:28,guest:37,guid:[9,16,25,27,28],guidelin:20,guilabel:28,habr:3,habrahabr:3,hack:[16,18,20,21,22],hackabl:24,hackerspac:34,handl:[14,19,28,33,37],handler:7,happi:[16,18,20,21,22],hard:[16,28],harden:[35,38],has:[12,18,20,22,23,27,28,33],hat:28,have:[2,6,7,8,9,10,14,16,19,21,22,23,25,28,33,36,37],hbar:28,head:10,header:[4,7,9,23,28],headers_modul:7,heard:28,hebrew:14,height:28,help:[13,22,25,27,35,36,37,38,39],helper:28,her:20,here:[2,7,9,11,14,18,19,22,28,36],herein:1,heterogen:19,hidden:[0,20,33],him:20,hint:[1,28,36],histor:[7,21],hit:10,home:[10,19,30,35,36,38],hoogl:3,host:[2,4,7,9,10,16,19,20,25,30,31,37],hostnam:[9,37],hotkei:[0,13],hous:23,house_numb:23,how:[1,2,5,6,7,9,11,14,17,19,24,25,28,31,32,35,38],howev:[18,23,29],html:[0,2,7,11,22,23,25,28,38],html_math_render:2,http:[0,2,4,5,6,8,10,11,12,13,14,18,19,22,23,25,27,28,30,31,35,36,37,38,39],http_connect:[4,9],http_host:[4,9],httpd:7,https_rewrit:29,hub:8,huge:28,idea:27,identifi:[36,37],ifmodul:7,illustr:6,imag:[0,2,3,12,14,19,24,25,29,34,37,38,39],image_proxi:[7,9,14,29,38],imagemagick:[2,28],img_src:23,imgmath:2,imgmath_font_s:2,imgmath_image_format:2,imgmath_latex:2,immedi:13,implement:[9,11,16,21,22,23,26,37],impli:20,improv:25,in_contain:37,ina:3,inbound:14,includ:[7,9,19,20,25,28,37],inclus:34,incom:7,increment:25,indent:[28,37],index:7,infinit:13,infinite_scrol:[13,29],info:[14,19,25,37,38],info_msg:37,inform:[8,12,13,14,20,22,23,37],infrastructur:[1,11],infratructur:4,inherit:28,ini:[7,9,11,19],init:[11,18,19,24,37],initi:[11,19,30,37],inlin:24,input:[0,20,28],insecur:10,insert:[28,30],insid:[10,19,23,37],insight:33,inspect:[19,35,36,38,39],instal:[1,2,4,5,11,12,19,21,22,25,27,28,30,31,36],instanc:[0,1,5,6,7,8,9,11,14,16,18,19,20,25,29,30,31,32,35,36,37,38,39],instance_nam:[0,10],instead:[11,16,20,21,27,28],instruct:28,insuffici:18,integr:31,intent:22,interact:[10,35,36,38,39],interfac:[7,14,17,31],interfer:22,intermedi:25,intern:27,internet:[6,18,31],interpret:[11,28],interpretor:11,intersphinx_map:28,interv:4,intranet:[6,7,9],intro:[7,9],introduc:[16,17,18,20,28,31],introduct:[25,27],intuit:28,inv:28,inventori:28,investig:21,invidi:3,invidunt:28,ipsum:28,ipv4:[9,37],ipv6:[9,19,37],isn:[7,9],iso:[14,23],isol:[4,19],issu:[11,18,20,21],ital:28,italiano:14,item:28,its:[2,6,16,22,25,28,29,33,37],itself:[11,22],japanes:14,javascript:[13,24],jinja:28,jinja_context:28,job:36,join:28,js_depend:26,json:[4,29,35],json_engin:3,juli:37,jump:[10,19,25],just:[0,4,9,19,25,28,33,37],justo:28,kasd:28,kbd:28,keep:[7,9,19,25],kei:[12,13,14,18,23,30,38,39],kickass:3,kind:[7,28,33],kiss_:28,know:[7,11,18,19,20,28,33,37],knowledg:28,known:25,kvch:[16,18,20,21],l19:19,label:28,labor:28,labori:28,lack:22,lang:[0,29,30],languag:[0,3,4,14,23,25,28,29,30,34],language_support:[23,28],laptop:33,larg:[11,35,37,38,39],last:28,lat:23,later:[36,37],latest:[11,30],latex:2,latexextra:2,latexmk:2,latitud:23,latter:[25,28],launch:37,layout:5,lazi:11,lc_messag:30,learn:28,least:[19,21],leav:14,leech:23,leecher:23,left:[10,28],legaci:29,length:22,less:[7,9,11,16,27,28,33],let:[19,28,33,36],level:[22,28],lib:[7,11,35,38],libapache2:7,libffi:[2,10],librari:3,librsvg2:2,librsvg:2,libssl:[2,10],libxml2:[2,10],libxslt:[2,10],licens:[36,37],light:9,like:[0,2,8,10,13,14,20,22,23,25,28,36],like_hotkei:29,limit:[4,7,17,18,28,31],line:[7,9,18,22,25,37],link:[11,13,14,19,24],lint:[5,25],linux:[0,2,3,7,9,10,11,17,20,28,31,35,36,37,38],linuxcontain:37,linuxcontainers_org_nam:37,linuxdoc:28,list:[7,18,20,23,24,25,26,29,34],listen:[4,7,9,35,36,37,38],liter:24,literalinclud:28,live:[19,24,28,37],load:[11,13,14,37],loadmodul:7,lobst:3,local:[0,4,9,10,11,14,19,20,21,23,25,26,27,30,35,36,37,38,39],local_imag:37,localhost:[7,8,9],locat:[4,7,9,10,11,14,28],log:[4,5,11,14,19,27,33,35,36,38,39],logger:11,logic:22,logicodev:29,login:10,lon:23,longer:25,longitud:23,look:[7,10,25],lorem:28,loremlorem:28,lot:19,low:[7,9],lsb:11,lxc:[19,31,36],lxc_host_prefix:37,lxc_repo_root:37,lxc_set_suite_env:37,lxc_suit:[19,37],lxc_suite_info:37,lxc_suite_instal:37,lxc_suite_install_info:37,lxc_suite_nam:37,lxd:[19,37],lxml:[2,10],made:[14,19],magna:28,magnetlink:23,magyar:14,mai:[14,19,28,35,38],main:[7,13,25,30,36],mainlin:9,maintain:[1,11,19,28,36],mainten:[4,6,19,35,38,39],make:[2,8,16,19,20,21,22,24,28,33,37],makefil:[19,22,24,31,36,37],man:28,manag:[4,15,16,25,27,35,38,39],mandatori:6,mani:4,manipul:[16,37],manual:[14,25,28],manuali:28,map:[0,3,28],mark:[10,28],markup:24,mass:22,master:[11,15,22,25,28,36],math:[2,24],mathemat:28,mathrm:28,matter:[19,23,33],max:[4,23],maxim:22,maximum:[22,23],mean:[11,19,22,28,33],meaning:28,meant:28,media:[0,3,23],mediawiki:3,memori:14,mention:21,menuselect:28,merg:19,messag:[4,14,22,23,25,27,28,30],messagespo:30,meta:28,metadata:28,metasearch:[10,23,31,35,38],method:[0,6,11,23,28],microsoft:3,microsoft_academ:3,middlewar:4,might:[11,19,20,22,25,28,29,33,36,37],migrat:21,min:23,minim:28,mirror:3,misbehav:22,miss:[4,28],mix:19,mixcloud:3,mjk:3,mkdir:[7,9,10,11,35,38],mod:[7,28],mod_autoindex:7,mod_head:7,mod_proxi:7,mod_proxy_http:7,mod_proxy_uwsgi:7,mod_uwsgi:7,mod_wsgi:7,mode:[11,14,28,36,37],modern:7,modifi:[11,14,28,34],modul:[7,11,28],mojeek:3,monet:33,monitor:[11,19],mono:2,month:[0,29],more:[4,8,12,14,16,18,22,25,28,29,31,33,36,37],morecol:28,morerow:28,morti:[1,6,7,9,12,19,31,36,37],morty_listen:[36,37,38],most:[2,7,14,21,33,35,36,38,39],mostli:[11,28],motiv:17,move:[18,22],movi:3,much:[22,28],multi:[35,38],multibl:23,multipl:[13,14,28,33],multithread:11,multius:10,music:3,must:[9,14,21,22,23,27,28],my_arg:28,my_funct:28,my_other_arg:28,mydomain:36,mymemori:3,myproject:27,name:[0,3,4,7,8,9,10,13,14,19,20,23,25,26,30,37],nativ:11,navig:13,necessari:[10,20],nederland:14,need:[4,6,7,9,10,11,14,18,19,22,25,28,33,35,36,37,38,39],neither:31,net:31,network:[14,35,38],never:[19,25],nevertheless:[7,9],newcom:16,nework:14,next:[7,9,13,17,28],nginx:[1,4,5,6,14,19,31,35,37,38,39],nightmar:28,nil:37,nisi:28,nlnet:[16,18,20,21],noconfirm:[2,10],node:[25,27],nodej:27,non:18,none:[7,23,25,28,29],nonewprivileg:[35,38],nonumi:28,nor:31,normal:[7,19,23,28,36],nostrud:28,note:[7,9,22,29],notic:19,now:[7,9,10,19,20,21,26],npm:[3,25,27],number:[4,14,23,28,29,37],number_of_result:23,numer:28,numref:28,nyaa:3,oad:3,oap:3,obj:28,object:[23,26,28],obtain:14,off:[7,9,22,35,37,38,39],offer:11,offlin:[3,17,20,23,28,31],often:[23,28,36],old:[7,19],on_result:26,onc:[19,37],one:[7,11,14,19,20,22,25,28,31,33,35,36,37,38,39],ones:[23,35,38],ongo:25,onli:[2,6,7,12,14,20,22,26,28,29,36,37],onlin:[18,28,31],open:[7,10,13,19,21,22,25,28,29,33,36,37],open_results_on_new_tab:13,openairedataset:3,openairepubl:3,openrepo:3,openstreetmap:[0,3],oper:[21,28,33],option:[7,10,11,12,14,16,19,20,22,23,25,26,27,28,29,33,35,36,38,39],order:[7,22,27,28],org:[2,4,7,9,11,14,23,28,37],organ:31,orient:7,origin:[5,15,19,28],oscar:[0,14,29],osm:[0,3,23],other:[14,22,23,28,33],otherwis:23,our:[1,4,6,16,19,22,25,28,37],out:[7,9,18,19,22,25,28,35,37,38],outgo:14,outgoing_proxi:14,output:[2,20,28,29,35,37,38,39],outsid:19,outstand:28,over:[19,28,31,37],overlin:28,overlook:19,overview:[4,14,24,25,29,31,36],overwrit:13,overwritten:23,own:[6,19,25,31,33],owner:25,packag:[2,4,5,7,9,11,19,25,27,28,35,37,38,39],pacman:[2,7,9,10,28],page:[3,7,9,13,14,16,20,22,23,24,28,29,33,34],pageno:[23,29],pagenumb:23,pair:18,palletsproject:28,param:[4,18,23,28],paramet:[23,24],paramt:23,parent:28,pars:29,parse_lin:18,part:[14,16,28,37],parti:33,partial:28,partli:23,pass:[7,9,18,29],past:0,patch:[22,28],path:[4,7,14,19,28,35,37,38],paywal:13,pdb:3,pdbe:3,pdf:2,peopl:[16,33],pep8:[22,25,27],pep8_check:25,pep:28,per:[11,22,23,28],perfect:19,perform:[11,13,18,23],phase:27,photon:3,phrase:28,piec:28,pip3:21,pip:[2,10,30],pipe:18,piratebai:3,pix:29,place:[6,9,11,22,23,28,30,33],plai:3,plaintext:28,pleas:[21,22,27,28,29],plenti:22,plu:[7,9],plugin:[0,2,5,10,11,22,24,29,31],pocket:[7,9],point:[9,10,11,19,24,25,28,33],pointer:28,pointhi:29,polygon:28,popen:18,popular:28,port:[4,8,9,10,14,37],possibl:[8,12,13,14,18,19,20,28,29],post:[0,19,22,29],post_search:26,postcod:23,pot:30,pov:28,power:28,practic:22,pre_search:26,prefer:[6,16,20,28,29,33,34],prefix:34,preinstal:[4,19],prepar:[17,31,37],prerequisit:[19,28],present:[18,20],preserv:[22,28],press:[13,25],pretti:14,preview:23,previou:36,primari:37,primary_ip:[36,37],prime:24,primer:[24,31],principl:28,privaci:[6,7,9,10,11,19,24,28,32,35,38],privat:[17,18,31,32],privatedevic:[35,38],privatetmp:[35,38],pro:28,problem:4,procedur:[6,37],process:[2,4,11,18,19,20,25],processor:28,produc:28,product:[14,17,36],profil:[10,25,31,33,35,38],program:25,progress:[17,35,38],project:[11,19,24,25,28],promot:31,prompt:[19,36],proper:[33,35],properli:21,propos:18,protect:[1,5,7,9,19,22,31,32,35],protectsystem:[35,38],protocol:[9,11,19],provid:[20,22,23,28],proxi:[1,5,6,9,14,19,29,31,33,35,36,37,38,39],proxif:[7,9],proxifi:12,proxy_add_x_forwarded_for:[4,9],proxy_buff:9,proxy_http:7,proxy_http_modul:7,proxy_modul:7,proxy_pass:[4,9],proxy_set_head:[4,9],proxy_uwsgi_modul:7,proxypass:[7,35,38],proxypreservehost:7,psi:28,pub:3,public_host:35,public_url:[35,36,37,39],public_url_morti:[37,38],public_url_path_morti:36,publicli:18,publish:23,publishedd:23,pubm:3,pull:[8,15,18,22,28,30],purpos:[14,23,27],push:[22,25],pwd:19,py3:25,pybabel:30,pybuild:24,pyclean:25,pyenv:[10,11,19,25,39],pygment:28,pylint:24,pylintrc:25,pypi:[25,28],python2:[11,21],python3:[2,10,11,21,27],python:[2,10,11,14,17,19,24,27,28,31,39],pythonhom:11,pythonpath:[11,19],qout:37,quadratur:31,qualiti:[2,25,28],queri:[13,18,20,23,29,33,34],question:[28,33],qui:28,quickstart:[22,24,25,31],quiet:25,quit:[7,19,22,25],qwant:3,qwer:34,qwi:3,qwn:3,qws:3,rais:18,random:[23,33],rang:[3,11,23,29],rangl:28,rate:4,rather:20,raw:28,rbg:3,reach:28,reactiv:14,read:[18,19,22,25,27,36],readability_:28,reader:[19,28],readi:19,readlin:18,readm:[4,7,11,12],readthedoc:11,real:[4,9],realli:6,reason:[7,11,16,21,25,28],rebuild:[22,25],rebum:28,recommend:[2,4,6,11,22,23,25,28,36],reconsid:22,record:28,reddit:3,redefin:23,redirect:13,reduc:22,ref:[35,38],refer:[1,28,33],referenc:28,refnam:28,regardless:33,regular:18,reinstal:[35,39],rel:[9,19,28,37],releas:[21,25,37],releng:37,reload:11,remark:19,rememb:[11,19,22],remot:37,remote_addr:[4,9],remov:[11,13,19,33,35,36,37,38,39],renam:29,render:2,replac:[7,9,10,16,19,26],repo:22,report:19,reposetori:19,repositori:[10,16,19,37],request:[5,7,9,14,18,20,22,24,26,28,33],request_timeout:14,request_uri:7,requesthead:7,requir:[2,7,13,21,22,23,24,25,27,28,29],requisit:25,reset:33,resourc:9,respect:[10,22,33,35,38],respons:14,rest:[20,24,31],restart:[5,9,10,11,12,15,19,35,38],restrict:20,restructuredtext:28,result:[1,2,5,6,7,9,13,14,18,24,28,29,31,33,38,39],result_proxi:[7,9,12,38],results_on_new_tab:29,retriev:30,return42:28,return_cod:18,rever:7,revers:[1,5,6,9,35,36,37,38],rewrit:[0,13],rfc:28,rhel:[2,7,9,10,11,28],rid:[25,37],right:[11,20,26,28,31],rightmost:28,rigth:28,road:23,roboag:4,robot:[25,27],robotframework:21,role:24,rolenam:28,roll:37,romanian:14,root:[7,9,19,25,37],rotat:28,round:22,rout:[5,7,9,28],row:28,rowspan:28,rspan:28,rss:[4,29],rst:[22,28],rst_titl:37,rubygem:3,rule:[4,22,35],run:[2,4,6,7,8,9,11,12,14,17,18,19,20,22,23,24,26,28,30,33,35,36,38,39],runtimeerror:18,russian:14,ryzen:10,sadipsc:28,safe:[3,29],safe_search:0,safesearch:[28,29],same:[4,10,13,14,19,23,28],sampl:[5,28,35],san:2,sanctu:28,sanit:19,satisfi:27,save:7,sc2031:37,sc2034:[36,37],scalabl:28,scale:[19,28,37],scaleabl:28,scan:11,scc:3,scd:3,schedul:[18,21],scheme:[4,9],scholar:3,schroeding:28,scienc:3,scope:22,scratch:2,script:[1,4,5,7,9,10,19,27,35,36,37,38,39],script_nam:9,scroll:13,sdist:25,sea:28,search:[3,4,5,13,14,18,19,20,22,23,24,28,31,32,33],search_on_category_select:[13,29],search_path:23,search_str:23,searchcod:3,searchcode_cod:3,searchcode_doc:3,searx:[0,1,2,4,5,6,7,8,11,12,14,15,17,18,22,23,25,26,27,28,29,30,32,34,35,36,38],searx_instance_nam:39,searx_internal_http:39,searx_internal_url:36,searx_settings_path:[10,11,19],searx_url:[25,36],searx_userag:14,sec:4,second:[10,14,28],secret:[14,20],secret_kei:14,section:[9,14,19,25,28],secur:31,sed:[10,28],see:[2,4,7,8,9,11,12,14,18,19,20,22,27,28,29,31,34,35,37],seed:23,seeder:23,seedpeer:3,select:[13,25,28,33,34,37],selenium:27,self:[13,16,31,35,37,38,39],self_inform:29,semant:[3,22],send:[2,4,14,33],sens:28,sent:33,separ:[20,22,28,29,35,38],seri:25,serif:2,seriou:19,serv:[22,33,37],server:[4,5,6,11,14,19,27,37,38],server_nam:9,servic:[4,5,6,9,11,12,19,28,29,31,33,35,36,37,38,39],service_home_bas:36,service_us:[35,36,38,39],service_ussr:36,session:[10,27],set:[2,3,5,7,9,10,11,12,16,18,19,25,27,28,29,30,31,33,34,35,36,37,38,39],setenvif:7,sethandl:7,setup:[1,2,4,5,6,7,9,10,11,19,24,28,31,35,38],setuptool:10,sever:19,seznam:3,share:[7,11,19,20,37,39],shell:[5,10,19,35,36,37,38,39],shellcheck:[2,10,28,36,37],ship:9,shortcut:[0,3,14,20,23,28],should:[6,7,9,14,16,19,21,22,28,30],show:[1,2,3,7,9,19,28,35,36,37,38],shown:[6,7,10,19,28],side:[6,28],sign:28,signal:19,signifi:28,similar:[11,28],simpl:[19,25,29,35,38],simplest:28,simpli:[4,19,22,25,29,35,36,38,39],simplifi:[4,25,35,38,39],sinc:[9,16,25,28],singl:[7,9,11,33,37],sit:28,site:[0,4,5,7,14,23,28,29,35,38,39],size:23,skeleton:18,skill:24,skip:27,slow:14,small:[23,39],smylink:19,snap:[19,37],snapcraft:37,snippet:12,social:[0,3],sock:14,socket:[7,9,11],soft:24,softwar:[3,19,35,38],sold:33,solut:20,solv:[4,20],some:[1,6,7,11,14,19,20,22,25,28,35,36,37,38,39],someon:33,someth:[22,25],sometim:16,soundcloud:3,sourc:[10,14,19,21,24,25,28,30,33,35,37,38],source_fil:30,source_ip:14,source_lang:30,space:14,span:28,spars:28,spdx:[36,37],speak:11,special:[6,11,23],specif:[11,14,23,37],specifi:[11,14,23,29],speu:3,sphinx:22,splinter:21,split:22,spoilt:6,sponsor:[16,18,20,21],src:[4,9,10,11,19,39],srv:7,ssl:[23,31],stabl:14,stack:[19,27,37],stackoverflow:3,stage:28,standalon:16,standard:[7,22,23,37],start:[1,4,7,9,10,11,17,22,23,25,31,35,37,38,39],startpag:[3,29],stash:[15,25],stat:28,statist:28,statu:[35,36,38,39],stdout:18,step:[1,5,6,17,19,22,31,39],stet:28,stone:20,stop:[4,7,9,10,11,19,25,35,37,38,39],storag:37,store:[23,33],strang:11,street:23,strict:20,string:[20,23,29,30],stroke:28,strong:28,structur:[22,24],stub:28,stuff:28,style:[24,29],sub:[22,28],subdir:9,subdirectori:9,subject:28,submit:22,subnet:7,subprocess:18,subrul:4,subscript:28,subsect:28,subshel:37,substitut:24,sudo:[2,6,7,9,10,11,15,19,27,28,35,36,37,38,39],suffix:14,suggest:[1,26],suit:[17,36],suitabl:28,sup:28,superscript:28,supervisor:16,support:[2,3,5,9,10,11,14,17,20,22,23,28,29,31,33,35,37,38],sure:[8,10,19,21],surround:28,suspici:4,svg:2,svg_imag:28,symbol:[11,19],symlink:9,syntax:[29,31,32],syslog:[35,38],system:[10,11,19,20,21,22,25,28,35,36,38],systemctl:[7,9,11,15,19],systemd:[11,35,38,39],szn:3,tab:[13,24,29,37],tabl:[18,24],tailor:33,take:[11,14,16,22,30,37],taken:[28,36],takimata:28,tar:[25,35,38],target:[19,22,24,28,31,35,37,38],task:[6,10,19,28,37],tcp_nodelai:10,tell:23,templat:[11,18,19,23,24],tempor:28,term:[7,28],termin:[10,19],test123:39,test:[2,7,9,10,19,21,22,24,37,39],texliv:2,text:[0,23,28],textstyl:28,tfrac:28,than:[14,28,31],thei:[11,14,19,20,28,33],them:[11,14,19,25,28,36],theme:[14,24,25,29],themes_path:14,themselv:20,therefor:[6,28],theses:19,thi:[4,6,7,8,9,10,11,12,13,14,16,18,19,20,21,23,25,26,27,28,29,33,35,36,37,38,39],thing:28,think:[22,25,28],third:[28,33],those:[18,19,30,33],thread:11,three:[22,26,28,33],through:[5,7,9,14,20,28,29,33],thu:[18,21,29,33],thumbnail:23,thumbnail_src:23,time:[4,14,19,21,22,23,28,29,33,37],time_rang:[0,29],time_range_support:[23,28],timeout:[3,14,23,28,36,38],timestamp:11,tip:[24,28],titl:23,todai:18,togeth:18,token:[18,20],tokyotoshokan:3,too:[4,14,28,33],tool:[1,2,6,10,16,22,28,30,31,37],top:28,tor:[3,31,33],torrentfil:23,torrentz:3,touch:[7,9,11,14,19],tpb:3,trace:27,track:[31,33],tracker:13,tracker_url_remov:29,trademark:28,traffic:[7,9],train:28,transform:28,transifex:[22,24],transifexrc:30,translat:[3,14,24,31],transpar:[19,37],travi:[21,27],tree:[10,19,25],troubleshoot:36,trust:[20,31,33],ttf:2,tupl:26,turn:[22,27],twice:10,twine:25,twitter:3,two:[11,22,28,29],txt:[21,25,28],type:[0,22,23,25,29,30,33,35,37,38],typic:[1,28],typo:28,ubu1604:37,ubu1804:37,ubu1910:37,ubu2004:37,ubuntu:[2,7,9,10,11,15,28,37],uds:7,ugli:[16,28],uid:[11,19],ullamco:28,ultrasecretkei:[10,14],unam:[10,37],uncom:14,uncommon:22,under:[19,20,23],understand:[16,28],unfortun:22,unicod:24,uninstal:[25,36],unit:[11,22,25,35,38,39],unit_test:[25,27],univers:10,unix:[7,9,11],unknown:[33,35,38],unless:20,unlik:33,unspecifi:23,unsplash:3,untouch:25,unwant:6,updat:[5,10,14,22,24,31,35,38,39],update_dev_packag:27,update_packag:15,upload:25,upstream:11,url:[0,7,9,12,13,14,19,22,23,25,33,36,37,38,39],urlencod:23,usag:[6,7,9,19,25,28,35,37,38,39],use:[2,4,6,7,9,11,12,14,18,19,20,22,23,25,27,28,31,32,35,36,37,38,39],used:[7,9,14,21,22,23,28,31,33,36],useful:[14,36],user:[4,5,7,9,11,13,14,19,20,22,23,28,31,33,36,39],useradd:[10,35,38],userag:4,useragent_suffix:14,uses:[11,14,23,28,33],using:[4,7,9,11,14,17,19,22,25,27,28,30,31],usr:[4,7,9,10,11,19,35,36,38,39],usual:[17,21,33],utf:[28,36,37],util:[1,2,4,6,7,9,12,19,25,31],uwsgi:[1,2,5,9,10,15,19,31,39],uwsgi_param:9,uwsgi_pass:9,uwsgisocket:7,valid:[23,27,29],valu:[0,9,18,23,28,29,36],variabl:[23,25,28,38],variant:28,variou:[22,26],vassal:11,vector:28,vendor:22,veniam:28,venv3:21,venv:[2,10,27],verbos:[10,25,36],veri:36,verifi:23,vero:28,version:[10,13,21,28,35,38],via:[7,9,11,16,34],video:3,view:[24,33],viewbox:28,vim:[0,13,29],vim_hotkei:13,vimeo:3,virtual:[7,9],virtualenv:[2,10,11,19,21,25,27,39],virualenv:[10,25],visist:28,visit:[10,28,33],voat:3,voluptua:28,vpn:33,vulner:33,wai:[11,18,22,23,28,33],wait:[14,18],want:[14,20,21,22,25,28,29,33,36,37],wantedbi:[35,38],warn:[2,7,9,28,37],watch:22,web:[4,10,14,16,19,23,25,35,37,39],webapp:[10,11,14,21,25,28],webcrawl:4,webserv:9,websit:0,weight:[14,28],weigth:[3,14],weird:22,welcom:[7,9],well:28,were:[18,20,21],werkzeug:25,wget:[35,38],what:[11,19,28,37],whatev:[8,25,37],wheel:10,when:[2,7,13,14,21,26,27,28,33],where:[4,14,19,28],whether:[27,33],which:[1,4,7,9,11,14,16,18,19,20,22,23,25,28,29,31,33,35,38],whl:25,who:[11,16,18,33],whole:[7,26],why:[28,31,32],wide:22,widen:28,width:28,wiki:[0,3,9,18,20,28,37],wikibook:3,wikidata:3,wikinew:3,wikipedia:[3,14,29,34],wikiquot:3,wikisourc:3,wikivers:3,wikivoyag:3,wiktionari:3,window:13,wish:14,within:[25,28],without:[2,14,23,31,33],wolframalpha:3,wolframalpha_noapi:3,won:[14,21],wonderfal:8,word:[26,28,29],work:[9,10,14,17,22,23,25,27,33],worker:11,workingdirectori:[35,38],world:[22,28,33],worri:21,worth:[11,33],would:[19,20],wrap:[9,17],written:19,wrong:25,wsgi:[9,11],www1x:3,www:[2,7,28,30,37],wysiwyg:22,xdg:25,xetex:2,xgd:10,xml:28,xmln:28,xpath:3,xxxx:28,xzf:[35,38],yahoo:3,yahoo_new:3,yandex:3,year:[21,29],yes:[35,38],yet:[22,23,25],yhn:3,yml:[3,5,7,9,10,11,12,16,18,19,25,27,29,31,38,39],you:[1,2,4,6,7,8,9,10,11,14,17,18,19,22,25,27,28,29,31,33,34,35,36,37,38,39],your:[2,4,6,7,9,10,11,12,13,14,16,17,21,22,24,25,26,28,31,35,36,37,38,39],your_morty_proxy_kei:12,yourself:22,youtub:3,youtube_noapi:3,yyyi:28,zero:18,zlib1g:[2,10],zzzz:28},titles:["Administration API","Architecture","Buildhosts","Engines","How to protect an instance","Administrator documentation","Installation","Install with apache","Docker installation","Install with nginx","Step by step installation","uwsgi","How to setup result proxy","Plugins builtin","<code class=\"docutils literal notranslate\"><span class=\"pre\">settings.yml</span></code>","How to update","Searx admin interface","Blog","Preparation for offline engines","Developing in Linux containers [202006]","Limit access to your searx engines","Introducing Python 3 support","How to contribute","Engine overview","Developer documentation","Makefile Targets","Plugins","Development Quickstart","reST primer","Search API","Translation","Welcome to searx","User documentation","Why use a private instance?","Search syntax","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/filtron.sh</span></code>","Tooling box <code class=\"docutils literal notranslate\"><span class=\"pre\">utils/*</span></code>","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/lxc.sh</span></code>","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/morty.sh</span></code>","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/searx.sh</span></code>"],titleterms:{"abstract":19,"default":[3,13,23],"function":19,"public":[7,9,33],"return":23,The:[7,9,19,22],about:[28,33],access:20,acknowledg:[16,18,20,21],activ:25,admin:16,administr:[0,5],admonit:28,aka:28,alltogeth:11,anchor:28,apach:7,api:[0,29],architectur:1,archlinux:19,argument:23,articl:[2,28],ascii:28,audienc:19,bar:0,basic:28,bibliograph:28,block:28,blog:17,box:[4,36],bug:21,build:[2,22,25,27,28],buildhost:[2,37],built:[3,13],builtin:13,bullet:28,check:10,clean:[22,25],code:[22,23,28],command:[36,37],commit:22,common:36,compil:27,conclus:33,configur:[0,3,4,10,13,23],consequ:33,contain:19,content:[2,4,7,9,10,11,14,19,22,23,25,28],contribut:22,creat:[10,22,35,38],csv:28,data:0,debian:7,debug:27,definit:28,depend:10,deploi:22,design:22,develop:[18,19,24,27],direct:22,disabl:[7,9],distributor:11,doc:[2,22,25],docker:8,document:[5,22,24,32],doe:33,dot:28,drop:25,emb:0,engin:[3,14,18,19,20,23],entri:26,environ:[25,27,28,36],equat:28,exampl:[23,26,28,34],ext:28,extlink:28,fact:21,featur:31,field:28,figur:28,file:[23,28],filtron:[4,35],first:6,flat:28,foo:28,fork:25,found:21,fulli:19,fun:21,further:[1,3,4,7,9,11,12,13,14,26,28,29,35,37,38,39],gate:28,gener:[23,28],gentlemen:19,get:0,github:22,global:14,good:22,graphviz:28,grid:28,hackabl:22,head:28,hello:28,highlight:28,hlist:28,hook:26,horizont:28,how:[4,12,15,21,22,27,33],http:[7,9],hyperlink:28,imag:[23,28],init:30,inlin:28,instal:[6,7,8,9,10,16,35,37,38,39],instanc:[4,33],interfac:16,internet:[7,9],intersphinx:28,introduc:21,javascript:27,kernel:28,kiss:28,latex:28,layout:7,limit:20,line:28,link:28,lint:2,linux:19,list:28,liter:28,live:[22,25],log:[7,9],lxc:37,make:[23,25,27],makefil:[25,27],map:23,markup:28,math:28,matter:28,morti:38,motiv:19,name:28,need:2,nest:28,next:[18,20],nginx:9,note:28,offlin:18,ordinari:28,origin:11,overrid:23,overview:[23,35,37,38,39],packag:10,page:25,paragraph:28,paramet:29,pars:23,pass:23,plugin:[13,26],point:26,post:26,pre:26,prepar:18,prime:22,primer:28,privaci:[22,33],privat:[20,33],process:28,product:19,progress:18,project:30,protect:[4,33],proxi:[7,12],pybuild:25,pyenv:27,pylint:25,python:[21,25],quickstart:27,quot:28,read:[1,3,4,7,9,11,12,13,14,26,28,29,35,37,38,39],readabl:28,ref:28,render:28,request:[4,23],requir:30,respons:0,rest:[22,28],restart:7,result:[12,23,26],revers:7,role:28,rout:4,run:[21,25,27,37],sampl:[0,4],script:[2,6],search:[0,26,29,34],searx:[9,10,16,19,20,21,31,33,37,39],see:33,server:[7,9],servic:7,set:[14,23],setup:[12,25,27,36,37],shell:2,sidebar:28,simpl:28,site:9,skill:28,smart:28,soft:28,some:2,sourc:[22,27],space:28,specif:28,sphinx:[2,28],start:19,step:[10,18,20],structur:28,style:27,substitut:28,suit:[19,37],support:[7,21],svg:28,syntax:[28,34],tab:28,tabl:28,target:[25,27],templat:28,test:[25,27],theme:27,thi:2,through:4,time:[3,13],tip:27,titl:28,tool:[4,36],torrent:23,transifex:30,translat:[22,30],truth:28,unicod:28,unit:27,updat:[6,15,30],upgrad:21,upstream:25,url:28,use:33,user:[10,32,35,38],using:[21,33],usual:19,util:[35,36,37,38,39],uwsgi:[7,11],video:23,view:28,welcom:31,what:33,why:33,work:[2,19],wrap:19,yml:[14,23],you:21,your:[19,20,27]}})
user/own-instance.html+2−2
@@ -82,9 +82,9 @@ protecting users from search services, both referring page and search query are
8282hidden from visited result pages.</p>
8383<div class="section" id="what-are-the-consequences-of-using-public-instances">
8484<h3>What are the consequences of using public instances?<a class="headerlink" href="#what-are-the-consequences-of-using-public-instances" title="Permalink to this headline">¶</a></h3>
85−<p>If someone uses a public instance, he/she has to trust the administrator of that
85+<p>If someone uses a public instance, they have to trust the administrator of that
8686instance. This means that the user of the public instance does not know whether
87−his/her requests are logged, aggregated and sent or sold to a third party.</p>
87+their requests are logged, aggregated and sent or sold to a third party.</p>
8888<p>Also, public instances without proper protection are more vulnerable to abusing
8989the search service, In this case the external service in exchange returns
9090CAPTCHAs or bans the IP of the instance. Thus, search requests return less
utils/lxc.sh.html+4−4
@@ -78,9 +78,9 @@ one</strong>:</p>
7878</pre></div>
7979</div>
8080<p><em>Good to know …</em></p>
81−<p>Eeach container shares the root folder of the repository and the
82−command <code class="docutils literal notranslate"><span class="pre">utils/lxc.sh</span> <span class="pre">cmd</span></code> <strong>handles relative path names transparent</strong>,
83−compare output of:</p>
81+<p>Each container shares the root folder of the repository and the command
82+<code class="docutils literal notranslate"><span class="pre">utils/lxc.sh</span> <span class="pre">cmd</span></code> <strong>handles relative path names transparent</strong>, compare output
83+of:</p>
8484<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh cmd -- ls -la Makefile
8585...
8686</pre></div>
@@ -98,7 +98,7 @@ $ sudo -H ./utils/lxc.sh remove images
9898</pre></div>
9999</div>
100100<div class="section" id="install-suite">
101−<h2>Install suite<a class="headerlink" href="#install-suite" title="Permalink to this headline">¶</a></h2>
101+<span id="lxc-sh-install-suite"></span><h2>Install suite<a class="headerlink" href="#install-suite" title="Permalink to this headline">¶</a></h2>
102102<p>To install the complete <a class="reference internal" href="#lxc-searx-env"><span class="std std-ref">searx suite (includes searx, morty &amp; filtron)</span></a> into all <a class="reference external" href="https://linuxcontainers.org/lxc/introduction/">LXC</a> use:</p>
103103<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ sudo -H ./utils/lxc.sh install suite
104104</pre></div>