mirror of
https://github.com/searxng/searxng
synced 2024-01-01 19:24:07 +01:00
Rename all from searx to searxng
This commit is contained in:
parent
a582cf3d82
commit
ac05f0943c
682 changed files with 58450 additions and 58450 deletions
20
.config.sh
20
.config.sh
|
@ -3,28 +3,28 @@
|
||||||
# shellcheck shell=bash disable=SC2034
|
# shellcheck shell=bash disable=SC2034
|
||||||
#
|
#
|
||||||
# This file should be edited only ones just before the installation of any
|
# This file should be edited only ones just before the installation of any
|
||||||
# service is done. After the installation of the searx service a copy of this
|
# service is done. After the installation of the searxng service a copy of this
|
||||||
# file is placed into the $SEARX_SRC of the instance, e.g.::
|
# file is placed into the $SEARXNG_SRC of the instance, e.g.::
|
||||||
#
|
#
|
||||||
# /usr/local/searx/searx-src/.config.sh
|
# /usr/local/searxng/searxng-src/.config.sh
|
||||||
#
|
#
|
||||||
# .. hint::
|
# .. hint::
|
||||||
#
|
#
|
||||||
# Before you change a value here, You have to fully uninstall any previous
|
# Before you change a value here, You have to fully uninstall any previous
|
||||||
# installation of searx, morty and filtron services!
|
# installation of searxng, morty and filtron services!
|
||||||
|
|
||||||
# utils/searx.sh
|
# utils/searxng.sh
|
||||||
# --------------
|
# --------------
|
||||||
|
|
||||||
# The setup of the SearXNG instance is done in the settings.yml
|
# The setup of the SearXNG instance is done in the settings.yml
|
||||||
# (SEARX_SETTINGS_PATH). Read the remarks in [1] carefully and don't forget to
|
# (SEARXNG_SETTINGS_PATH). Read the remarks in [1] carefully and don't forget to
|
||||||
# rebuild instance's environment (make buildenv) if needed. The settings.yml
|
# rebuild instance's environment (make buildenv) if needed. The settings.yml
|
||||||
# file of an already installed instance is shown by::
|
# file of an already installed instance is shown by::
|
||||||
#
|
#
|
||||||
# $ ./utils/searx.sh --help
|
# $ ./utils/searxng.sh --help
|
||||||
# ---- SearXNG instance setup (already installed)
|
# ---- SearXNG instance setup (already installed)
|
||||||
# SEARX_SETTINGS_PATH : /etc/searx/settings.yml
|
# SEARXNG_SETTINGS_PATH : /etc/searxng/settings.yml
|
||||||
# SEARX_SRC : /usr/local/searx/searx-src
|
# SEARXNG_SRC : /usr/local/searxng/searxng-src
|
||||||
#
|
#
|
||||||
# [1] https://searxng.github.io/searxng/admin/engines/settings.html
|
# [1] https://searxng.github.io/searxng/admin/engines/settings.html
|
||||||
|
|
||||||
|
@ -49,4 +49,4 @@
|
||||||
|
|
||||||
# **experimental**: Set SERVICE_USER to run all services by one account, but be
|
# **experimental**: Set SERVICE_USER to run all services by one account, but be
|
||||||
# aware that removing discrete components might conflict!
|
# aware that removing discrete components might conflict!
|
||||||
# SERVICE_USER=searx
|
# SERVICE_USER=searxng
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[run]
|
[run]
|
||||||
branch = True
|
branch = True
|
||||||
source = searx
|
source = searxng
|
||||||
|
|
||||||
[report]
|
[report]
|
||||||
show_missing = True
|
show_missing = True
|
||||||
|
|
|
@ -93,7 +93,7 @@
|
||||||
(setq-local js-indent-level 2)
|
(setq-local js-indent-level 2)
|
||||||
;; flycheck should use the eslint checker from simple theme
|
;; flycheck should use the eslint checker from simple theme
|
||||||
(setq-local flycheck-javascript-eslint-executable
|
(setq-local flycheck-javascript-eslint-executable
|
||||||
(expand-file-name "searx/static/themes/simple/node_modules/.bin/eslint" prj-root))
|
(expand-file-name "searxng/static/themes/simple/node_modules/.bin/eslint" prj-root))
|
||||||
(flycheck-mode)
|
(flycheck-mode)
|
||||||
))))
|
))))
|
||||||
|
|
||||||
|
|
18
.github/ISSUE_TEMPLATE/bug-report.md
vendored
18
.github/ISSUE_TEMPLATE/bug-report.md
vendored
|
@ -1,28 +1,28 @@
|
||||||
---
|
---
|
||||||
name: Bug report
|
name: Bug report
|
||||||
about: Report a bug in Searx
|
about: Report a bug in Searxng
|
||||||
title: ''
|
title: ''
|
||||||
labels: bug
|
labels: bug
|
||||||
assignees: ''
|
assignees: ''
|
||||||
|
|
||||||
---
|
---
|
||||||
<!-- PLEASE FILL THESE FIELDS, IT REALLY HELPS THE MAINTAINERS OF SEARX -->
|
<!-- PLEASE FILL THESE FIELDS, IT REALLY HELPS THE MAINTAINERS OF SEARXNG -->
|
||||||
|
|
||||||
**Version of Searx, commit number if you are using on master branch and stipulate if you forked Searx**
|
**Version of Searxng, commit number if you are using on master branch and stipulate if you forked Searxng**
|
||||||
<!-- If you are running on master branch using git execute this command
|
<!-- If you are running on master branch using git execute this command
|
||||||
in order to fetch the latest commit ID:
|
in order to fetch the latest commit ID:
|
||||||
```
|
```
|
||||||
git log -1
|
git log -1
|
||||||
```
|
```
|
||||||
If you are using searx-docker then look at the bottom of the Searx page
|
If you are using searxng-docker then look at the bottom of the Searxng page
|
||||||
and check for the version after "Powered by searx"
|
and check for the version after "Powered by searxng"
|
||||||
|
|
||||||
Please also stipulate if you are using a forked version of Searx and
|
Please also stipulate if you are using a forked version of Searxng and
|
||||||
include a link to the fork source code.
|
include a link to the fork source code.
|
||||||
-->
|
-->
|
||||||
**How did you install Searx?**
|
**How did you install Searxng?**
|
||||||
<!-- Did you install Searx using the official wiki or using searx-docker
|
<!-- Did you install Searxng using the official wiki or using searxng-docker
|
||||||
or manually by executing the searx/webapp.py file? -->
|
or manually by executing the searxng/webapp.py file? -->
|
||||||
**What happened?**
|
**What happened?**
|
||||||
<!-- A clear and concise description of what the bug is. -->
|
<!-- A clear and concise description of what the bug is. -->
|
||||||
|
|
||||||
|
|
8
.github/ISSUE_TEMPLATE/engine-request.md
vendored
8
.github/ISSUE_TEMPLATE/engine-request.md
vendored
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
name: Engine request
|
name: Engine request
|
||||||
about: Request a new engine in Searx
|
about: Request a new engine in Searxng
|
||||||
title: ''
|
title: ''
|
||||||
labels: enhancement, engine request
|
labels: enhancement, engine request
|
||||||
assignees: ''
|
assignees: ''
|
||||||
|
|
||||||
---
|
---
|
||||||
<!-- PLEASE FILL THESE FIELDS, IT REALLY HELPS THE MAINTAINERS OF SEARX -->
|
<!-- PLEASE FILL THESE FIELDS, IT REALLY HELPS THE MAINTAINERS OF SEARXNG -->
|
||||||
|
|
||||||
**Working URL to the engine**
|
**Working URL to the engine**
|
||||||
<!-- Please check if the engine is responding correctly before submitting it. -->
|
<!-- Please check if the engine is responding correctly before submitting it. -->
|
||||||
|
@ -17,13 +17,13 @@ assignees: ''
|
||||||
**Features of this engine**
|
**Features of this engine**
|
||||||
<!-- Features of this engine: Doesn't track its users, fast, easy to integrate, ... -->
|
<!-- Features of this engine: Doesn't track its users, fast, easy to integrate, ... -->
|
||||||
|
|
||||||
**How can Searx fetch the information from this engine?**
|
**How can Searxng fetch the information from this engine?**
|
||||||
<!-- List API URL, example code (using the correct markdown) and more
|
<!-- List API URL, example code (using the correct markdown) and more
|
||||||
that could be useful for the developers in order to implement this engine.
|
that could be useful for the developers in order to implement this engine.
|
||||||
If you don't know what to write, let this part blank.>
|
If you don't know what to write, let this part blank.>
|
||||||
|
|
||||||
**Applicable category of this engine**
|
**Applicable category of this engine**
|
||||||
<!-- Where should this new engine fit in Searx? Current categories in Searx:
|
<!-- Where should this new engine fit in Searxng? Current categories in Searxng:
|
||||||
general, files, images, it, map, music, news, science, social media and videos.
|
general, files, images, it, map, music, news, science, social media and videos.
|
||||||
You can add multiple categories at the same time. -->
|
You can add multiple categories at the same time. -->
|
||||||
|
|
||||||
|
|
4
.github/ISSUE_TEMPLATE/feature-request.md
vendored
4
.github/ISSUE_TEMPLATE/feature-request.md
vendored
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
name: Feature request
|
name: Feature request
|
||||||
about: Request a new feature in Searx
|
about: Request a new feature in Searxng
|
||||||
title: ''
|
title: ''
|
||||||
labels: enhancement
|
labels: enhancement
|
||||||
assignees: ''
|
assignees: ''
|
||||||
|
|
||||||
---
|
---
|
||||||
<!-- PLEASE FILL THESE FIELDS, IT REALLY HELPS THE MAINTAINERS OF SEARX -->
|
<!-- PLEASE FILL THESE FIELDS, IT REALLY HELPS THE MAINTAINERS OF SEARXNG -->
|
||||||
|
|
||||||
**Is your feature request related to a problem? Please describe.**
|
**Is your feature request related to a problem? Please describe.**
|
||||||
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
|
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
|
||||||
|
|
4
.github/dependabot.yml
vendored
4
.github/dependabot.yml
vendored
|
@ -9,14 +9,14 @@ updates:
|
||||||
open-pull-requests-limit: 5
|
open-pull-requests-limit: 5
|
||||||
target-branch: "master"
|
target-branch: "master"
|
||||||
- package-ecosystem: "npm"
|
- package-ecosystem: "npm"
|
||||||
directory: "/searx/static/themes/oscar"
|
directory: "/searxng/static/themes/oscar"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
day: "friday"
|
day: "friday"
|
||||||
open-pull-requests-limit: 5
|
open-pull-requests-limit: 5
|
||||||
target-branch: "master"
|
target-branch: "master"
|
||||||
- package-ecosystem: "npm"
|
- package-ecosystem: "npm"
|
||||||
directory: "/searx/static/themes/simple"
|
directory: "/searxng/static/themes/simple"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
day: "friday"
|
day: "friday"
|
||||||
|
|
14
.github/workflows/data-update.yml
vendored
14
.github/workflows/data-update.yml
vendored
|
@ -1,4 +1,4 @@
|
||||||
name: "Update searx.data"
|
name: "Update searxng.data"
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: "05 06 1 * *"
|
- cron: "05 06 1 * *"
|
||||||
|
@ -25,7 +25,7 @@ jobs:
|
||||||
|
|
||||||
- name: Install Ubuntu packages
|
- name: Install Ubuntu packages
|
||||||
run: |
|
run: |
|
||||||
sudo ./utils/searx.sh install packages
|
sudo ./utils/searxng.sh install packages
|
||||||
|
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v2
|
||||||
|
@ -39,7 +39,7 @@ jobs:
|
||||||
|
|
||||||
- name: Fetch data
|
- name: Fetch data
|
||||||
env:
|
env:
|
||||||
FETCH_SCRIPT: ./searx_extra/update/${{ matrix.fetch }}
|
FETCH_SCRIPT: ./searxng_extra/update/${{ matrix.fetch }}
|
||||||
run: |
|
run: |
|
||||||
V=1 ./manage pyenv.cmd python "$FETCH_SCRIPT"
|
V=1 ./manage pyenv.cmd python "$FETCH_SCRIPT"
|
||||||
|
|
||||||
|
@ -47,16 +47,16 @@ jobs:
|
||||||
id: cpr
|
id: cpr
|
||||||
uses: peter-evans/create-pull-request@v3
|
uses: peter-evans/create-pull-request@v3
|
||||||
with:
|
with:
|
||||||
commit-message: Update searx.data - ${{ matrix.fetch }}
|
commit-message: Update searxng.data - ${{ matrix.fetch }}
|
||||||
committer: searx-bot <noreply@github.com>
|
committer: searxng-bot <noreply@github.com>
|
||||||
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
|
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
|
||||||
signoff: false
|
signoff: false
|
||||||
branch: update_data_${{ matrix.fetch }}
|
branch: update_data_${{ matrix.fetch }}
|
||||||
delete-branch: true
|
delete-branch: true
|
||||||
draft: false
|
draft: false
|
||||||
title: 'Update searx.data - ${{ matrix.fetch }}'
|
title: 'Update searxng.data - ${{ matrix.fetch }}'
|
||||||
body: |
|
body: |
|
||||||
Update searx.data - ${{ matrix.fetch }}
|
Update searxng.data - ${{ matrix.fetch }}
|
||||||
labels: |
|
labels: |
|
||||||
data
|
data
|
||||||
|
|
||||||
|
|
6
.github/workflows/integration.yml
vendored
6
.github/workflows/integration.yml
vendored
|
@ -19,7 +19,7 @@ jobs:
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- name: Install Ubuntu packages
|
- name: Install Ubuntu packages
|
||||||
run: |
|
run: |
|
||||||
sudo ./utils/searx.sh install packages
|
sudo ./utils/searxng.sh install packages
|
||||||
sudo apt install firefox
|
sudo apt install firefox
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v2
|
||||||
|
@ -55,7 +55,7 @@ jobs:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- name: Install Ubuntu packages
|
- name: Install Ubuntu packages
|
||||||
run: sudo ./utils/searx.sh install buildhost
|
run: sudo ./utils/searxng.sh install buildhost
|
||||||
- name: Install node dependencies
|
- name: Install node dependencies
|
||||||
run: make V=1 node.env
|
run: make V=1 node.env
|
||||||
- name: Build themes
|
- name: Build themes
|
||||||
|
@ -70,7 +70,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install Ubuntu packages
|
- name: Install Ubuntu packages
|
||||||
run: sudo ./utils/searx.sh install buildhost
|
run: sudo ./utils/searxng.sh install buildhost
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v2
|
||||||
with:
|
with:
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
searxng is a fork from `searx <https://github.com/searx/searx>`_ and is
|
searxng is a fork from `searxng <https://github.com/searxng/searxng>`_ and is
|
||||||
maintained by Alexandre Flament (`@dalf <https://github.com/dalf>`_) and Markus
|
maintained by Alexandre Flament (`@dalf <https://github.com/dalf>`_) and Markus
|
||||||
Heiser (`@return42 <https://github.com/return42>`_)
|
Heiser (`@return42 <https://github.com/return42>`_)
|
||||||
|
|
||||||
People who have submitted patches/translations, reported bugs, consulted
|
People who have submitted patches/translations, reported bugs, consulted
|
||||||
features or generally made searx better:
|
features or generally made searxng better:
|
||||||
|
|
||||||
- Adam Tauber `@asciimoo <https://github.com/asciimoo>`_
|
- Adam Tauber `@asciimoo <https://github.com/asciimoo>`_
|
||||||
- Matej Cotman `@matejc <https://github.com/matejc>`_
|
- Matej Cotman `@matejc <https://github.com/matejc>`_
|
||||||
|
|
|
@ -7,14 +7,14 @@ Core
|
||||||
- drop support for Python 3.5 ( #2459 )
|
- drop support for Python 3.5 ( #2459 )
|
||||||
- add support for Python 3.9 ( #2397 #2459 )
|
- add support for Python 3.9 ( #2397 #2459 )
|
||||||
- update Python dependencies ( #2428 #2459 #2206 ) ⚠️ pyopenssl is not longer required
|
- update Python dependencies ( #2428 #2459 #2206 ) ⚠️ pyopenssl is not longer required
|
||||||
- automatic update of searx.data ( #2555 #2585 #2595 #2592 #2600 )
|
- automatic update of searxng.data ( #2555 #2585 #2595 #2592 #2600 )
|
||||||
- update searx.data ( #2604 #2605 #2606 #2607 #2415 )
|
- update searxng.data ( #2604 #2605 #2606 #2607 #2415 )
|
||||||
- add ability to send engine data to subsequent requests ( #2615 )
|
- add ability to send engine data to subsequent requests ( #2615 )
|
||||||
- add checker ( #2419 #2476 #2481 #2682 #2682 #2657 )
|
- add checker ( #2419 #2476 #2481 #2682 #2682 #2657 )
|
||||||
- by default allow only HTTPS, not HTTP ( #2641 #2659 )
|
- by default allow only HTTPS, not HTTP ( #2641 #2659 )
|
||||||
- replace /translations.js with an embedded JSON ( #2660 )
|
- replace /translations.js with an embedded JSON ( #2660 )
|
||||||
- activate raise_for_error by default ( #2557 )
|
- activate raise_for_error by default ( #2557 )
|
||||||
- don't dump traceback of SearxEngineResponseException on init ( #2635 )
|
- don't dump traceback of SearxngEngineResponseException on init ( #2635 )
|
||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
~~~~~~~~~~~~~
|
~~~~~~~~~~~~~
|
||||||
|
@ -36,7 +36,7 @@ Themes
|
||||||
- oscar: Hide links panel in mobile screens ( #2458 )
|
- oscar: Hide links panel in mobile screens ( #2458 )
|
||||||
- oscar: upgrade dependencies ( #2346 #2673 #2662 )
|
- oscar: upgrade dependencies ( #2346 #2673 #2662 )
|
||||||
- remove legacy, courgette and pix-art themes ( #2344 )
|
- remove legacy, courgette and pix-art themes ( #2344 )
|
||||||
- add hyperlink to searx instances list in error message ( #2387 )
|
- add hyperlink to searxng instances list in error message ( #2387 )
|
||||||
- preferences: a tooltip is shown when the mouse is over the engine names ( #2661 )
|
- preferences: a tooltip is shown when the mouse is over the engine names ( #2661 )
|
||||||
- Ignore double-quotes when highlighting query parts ( #2553 )
|
- Ignore double-quotes when highlighting query parts ( #2553 )
|
||||||
- update autocomplete ( #2593 )
|
- update autocomplete ( #2593 )
|
||||||
|
@ -106,7 +106,7 @@ Bug fixes
|
||||||
Code refactoring / reduce the technical debt
|
Code refactoring / reduce the technical debt
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- refactor searx.search.SearchQuery and searx.search.EngineRef ( #2398 )
|
- refactor searxng.search.SearchQuery and searxng.search.EngineRef ( #2398 )
|
||||||
- dynamically set language_support variable ( #2499 )
|
- dynamically set language_support variable ( #2499 )
|
||||||
- engines: add about variable ( #2460 )
|
- engines: add about variable ( #2460 )
|
||||||
- processors ( #2225 5c6a5407a0b124c3323e73c33b81ec1fbd7d2fce )
|
- processors ( #2225 5c6a5407a0b124c3323e73c33b81ec1fbd7d2fce )
|
||||||
|
@ -140,7 +140,7 @@ Install scripts
|
||||||
- replace ubu1910 image by ubu2010 image ( #2435 )
|
- replace ubu1910 image by ubu2010 image ( #2435 )
|
||||||
- LXC switch to Fedora 33 / Fedora 31 reached its EOL #2634 ( #2634 )
|
- LXC switch to Fedora 33 / Fedora 31 reached its EOL #2634 ( #2634 )
|
||||||
- add package which to CentOS-7 boilerplate ( #2623 )
|
- add package which to CentOS-7 boilerplate ( #2623 )
|
||||||
- use SEARX_SETTINGS_TEMPLATE from .config environment ( #2417 )
|
- use SEARXNG_SETTINGS_TEMPLATE from .config environment ( #2417 )
|
||||||
- determine path to makefile.lxc in a LXC ( #2399 )
|
- determine path to makefile.lxc in a LXC ( #2399 )
|
||||||
- remove unused code ( #2401 #2497 )
|
- remove unused code ( #2401 #2497 )
|
||||||
- support git versions <v2.22 ( #2620 )
|
- support git versions <v2.22 ( #2620 )
|
||||||
|
@ -148,7 +148,7 @@ Install scripts
|
||||||
Announcement
|
Announcement
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
We, the searx maintainer team, would like to say a huge thank you for everybody who had been involved in the development of searx or supported us in the past 7 years - making our first stable release available. Special thanks to [NLNet](https://nlnet.nl) for sponsoring multiple features of this release.
|
We, the searxng maintainer team, would like to say a huge thank you for everybody who had been involved in the development of searxng or supported us in the past 7 years - making our first stable release available. Special thanks to [NLNet](https://nlnet.nl) for sponsoring multiple features of this release.
|
||||||
|
|
||||||
|
|
||||||
0.18.0 2020.12.14
|
0.18.0 2020.12.14
|
||||||
|
@ -158,16 +158,16 @@ Core
|
||||||
~~~~
|
~~~~
|
||||||
|
|
||||||
- drop Python 2 support ( #2137 #2244 )
|
- drop Python 2 support ( #2137 #2244 )
|
||||||
- separate index and search routes ( #1681 ). ⚠️ add & remove your searx instance(s) from your browser.
|
- separate index and search routes ( #1681 ). ⚠️ add & remove your searxng instance(s) from your browser.
|
||||||
- add external_bang ( #2027 #2043 #2059 )
|
- add external_bang ( #2027 #2043 #2059 )
|
||||||
- add external plugins supports ( #2074 )
|
- add external plugins supports ( #2074 )
|
||||||
- add plugin converting strings into hash digests ( #1246 )
|
- add plugin converting strings into hash digests ( #1246 )
|
||||||
- new category: Onions ( #565 )
|
- new category: Onions ( #565 )
|
||||||
- allow searx query parts anywhere in the query ( commit aa3c18dda9329fff875328f6ba97483c417b149a 2aef38c3b9d1fe93e9d665a49b10151d63d92392 )
|
- allow searxng query parts anywhere in the query ( commit aa3c18dda9329fff875328f6ba97483c417b149a 2aef38c3b9d1fe93e9d665a49b10151d63d92392 )
|
||||||
- preferences: use base_url for prefix of sharing 'currenly saved preferences' (#1249 )
|
- preferences: use base_url for prefix of sharing 'currenly saved preferences' (#1249 )
|
||||||
- upgrade to request 2.24.0, pyopenssl is optional ( #2199 )
|
- upgrade to request 2.24.0, pyopenssl is optional ( #2199 )
|
||||||
- force admins to set secret_key if debug mode is disabled ( #2256 )
|
- force admins to set secret_key if debug mode is disabled ( #2256 )
|
||||||
- standalone searx update ( #1591 )
|
- standalone searxng update ( #1591 )
|
||||||
- architecture clean up ( #2140 #2185 #2195 #2196 #2198 #2189 #2208 #2239 #2241 #2246 #2248 )
|
- architecture clean up ( #2140 #2185 #2195 #2196 #2198 #2189 #2208 #2239 #2241 #2246 #2248 )
|
||||||
- record detail about engine error ( #2332 #2375 #2350 ). Add a new API endpoint: ``/stats/errors``.
|
- record detail about engine error ( #2332 #2375 #2350 ). Add a new API endpoint: ``/stats/errors``.
|
||||||
- display if an engine does not support HTTPS requests ( #2373 )
|
- display if an engine does not support HTTPS requests ( #2373 )
|
||||||
|
@ -271,7 +271,7 @@ Docker image
|
||||||
Bug fixes
|
Bug fixes
|
||||||
~~~~~~~~~
|
~~~~~~~~~
|
||||||
|
|
||||||
- searx.utils.HTMLTextExtractor: invalid HTML don't raise an Exception ( #2190 )
|
- searxng.utils.HTMLTextExtractor: invalid HTML don't raise an Exception ( #2190 )
|
||||||
- Fix static URL ( commit da8b227044f45127f705f6ea94a72d368eea73bb )
|
- Fix static URL ( commit da8b227044f45127f705f6ea94a72d368eea73bb )
|
||||||
- Fix autocomplete ( #2127 )
|
- Fix autocomplete ( #2127 )
|
||||||
- Fix opensearch.xml ( #2132 #2247 )
|
- Fix opensearch.xml ( #2132 #2247 )
|
||||||
|
@ -301,7 +301,7 @@ Special thanks to `NLNet <https://nlnet.nl>`__ for sponsoring multiple features
|
||||||
- Added autofocus to all search inputs
|
- Added autofocus to all search inputs
|
||||||
- CSP friendly oscar theme
|
- CSP friendly oscar theme
|
||||||
- Added option to hide engine errors with `display_error_messages` engine option (true/false values, default is true)
|
- Added option to hide engine errors with `display_error_messages` engine option (true/false values, default is true)
|
||||||
- Tons of accessibility fixes - see https://github.com/searx/searx/issues/350 for details
|
- Tons of accessibility fixes - see https://github.com/searxng/searxng/issues/350 for details
|
||||||
- More flexible branding options: configurable vcs/issue tracker links
|
- More flexible branding options: configurable vcs/issue tracker links
|
||||||
- Added "disable all" & "allow all" options to preferences engine select
|
- Added "disable all" & "allow all" options to preferences engine select
|
||||||
- Autocomplete keyboard navigation fixes
|
- Autocomplete keyboard navigation fixes
|
||||||
|
@ -360,7 +360,7 @@ News
|
||||||
- Docker image updates
|
- Docker image updates
|
||||||
- Bang expression fixes
|
- Bang expression fixes
|
||||||
- Result merging fixes
|
- Result merging fixes
|
||||||
- New environment variable added: SEARX_BIND_ADDRESS
|
- New environment variable added: SEARXNG_BIND_ADDRESS
|
||||||
|
|
||||||
|
|
||||||
News
|
News
|
||||||
|
@ -425,8 +425,8 @@ News
|
||||||
|
|
||||||
- Bug fixes
|
- Bug fixes
|
||||||
|
|
||||||
- https://github.com/searx/searx/issues/1088
|
- https://github.com/searxng/searxng/issues/1088
|
||||||
- https://github.com/searx/searx/issues/1089
|
- https://github.com/searxng/searxng/issues/1089
|
||||||
|
|
||||||
- Dependency updates
|
- Dependency updates
|
||||||
|
|
||||||
|
@ -484,7 +484,7 @@ Special thanks to `NLNet <https://nlnet.nl>`__ for sponsoring multiple features
|
||||||
- Voat.co (general, social media)
|
- Voat.co (general, social media)
|
||||||
- Online Etimology Dictionary (science)
|
- Online Etimology Dictionary (science)
|
||||||
- CCC tv (video, it)
|
- CCC tv (video, it)
|
||||||
- Searx (all categories - can rotate multiple other instances)
|
- Searxng (all categories - can rotate multiple other instances)
|
||||||
- Answerer functionality (see answerer section on /preferences)
|
- Answerer functionality (see answerer section on /preferences)
|
||||||
- Local answerers
|
- Local answerers
|
||||||
|
|
||||||
|
@ -702,5 +702,5 @@ New dependencies
|
||||||
News
|
News
|
||||||
~~~~
|
~~~~
|
||||||
|
|
||||||
Health status of searx instances and engines: http://stats.searx.oe5tpo.com
|
Health status of searxng instances and engines: http://stats.searxng.oe5tpo.com
|
||||||
(source: https://github.com/pointhi/searx_stats)
|
(source: https://github.com/pointhi/searxng_stats)
|
||||||
|
|
38
Dockerfile
38
Dockerfile
|
@ -1,24 +1,24 @@
|
||||||
FROM alpine:3.14
|
FROM alpine:3.14
|
||||||
ENTRYPOINT ["/sbin/tini","--","/usr/local/searx/dockerfiles/docker-entrypoint.sh"]
|
ENTRYPOINT ["/sbin/tini","--","/usr/local/searxng/dockerfiles/docker-entrypoint.sh"]
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
VOLUME /etc/searx
|
VOLUME /etc/searxng
|
||||||
VOLUME /var/log/uwsgi
|
VOLUME /var/log/uwsgi
|
||||||
|
|
||||||
ARG SEARX_GID=977
|
ARG SEARXNG_GID=977
|
||||||
ARG SEARX_UID=977
|
ARG SEARXNG_UID=977
|
||||||
|
|
||||||
RUN addgroup -g ${SEARX_GID} searx && \
|
RUN addgroup -g ${SEARXNG_GID} searxng && \
|
||||||
adduser -u ${SEARX_UID} -D -h /usr/local/searx -s /bin/sh -G searx searx
|
adduser -u ${SEARXNG_UID} -D -h /usr/local/searxng -s /bin/sh -G searxng searxng
|
||||||
|
|
||||||
ENV INSTANCE_NAME=searxng \
|
ENV INSTANCE_NAME=searxng \
|
||||||
AUTOCOMPLETE= \
|
AUTOCOMPLETE= \
|
||||||
BASE_URL= \
|
BASE_URL= \
|
||||||
MORTY_KEY= \
|
MORTY_KEY= \
|
||||||
MORTY_URL= \
|
MORTY_URL= \
|
||||||
SEARX_SETTINGS_PATH=/etc/searx/settings.yml \
|
SEARXNG_SETTINGS_PATH=/etc/searxng/settings.yml \
|
||||||
UWSGI_SETTINGS_PATH=/etc/searx/uwsgi.ini
|
UWSGI_SETTINGS_PATH=/etc/searxng/uwsgi.ini
|
||||||
|
|
||||||
WORKDIR /usr/local/searx
|
WORKDIR /usr/local/searxng
|
||||||
|
|
||||||
|
|
||||||
COPY requirements.txt ./requirements.txt
|
COPY requirements.txt ./requirements.txt
|
||||||
|
@ -51,40 +51,40 @@ RUN apk upgrade --no-cache \
|
||||||
&& apk del build-dependencies \
|
&& apk del build-dependencies \
|
||||||
&& rm -rf /root/.cache
|
&& rm -rf /root/.cache
|
||||||
|
|
||||||
COPY --chown=searx:searx . .
|
COPY --chown=searxng:searxng . .
|
||||||
|
|
||||||
ARG TIMESTAMP_SETTINGS=0
|
ARG TIMESTAMP_SETTINGS=0
|
||||||
ARG TIMESTAMP_UWSGI=0
|
ARG TIMESTAMP_UWSGI=0
|
||||||
ARG VERSION_GITCOMMIT=unknown
|
ARG VERSION_GITCOMMIT=unknown
|
||||||
|
|
||||||
RUN su searx -c "/usr/bin/python3 -m compileall -q searx"; \
|
RUN su searxng -c "/usr/bin/python3 -m compileall -q searxng"; \
|
||||||
touch -c --date=@${TIMESTAMP_SETTINGS} searx/settings.yml; \
|
touch -c --date=@${TIMESTAMP_SETTINGS} searxng/settings.yml; \
|
||||||
touch -c --date=@${TIMESTAMP_UWSGI} dockerfiles/uwsgi.ini; \
|
touch -c --date=@${TIMESTAMP_UWSGI} dockerfiles/uwsgi.ini; \
|
||||||
find /usr/local/searx/searx/static -a \( -name '*.html' -o -name '*.css' -o -name '*.js' \
|
find /usr/local/searxng/searxng/static -a \( -name '*.html' -o -name '*.css' -o -name '*.js' \
|
||||||
-o -name '*.svg' -o -name '*.ttf' -o -name '*.eot' \) \
|
-o -name '*.svg' -o -name '*.ttf' -o -name '*.eot' \) \
|
||||||
-type f -exec gzip -9 -k {} \+ -exec brotli --best {} \+
|
-type f -exec gzip -9 -k {} \+ -exec brotli --best {} \+
|
||||||
|
|
||||||
# Keep these arguments at the end to prevent redundant layer rebuilds
|
# Keep these arguments at the end to prevent redundant layer rebuilds
|
||||||
ARG LABEL_DATE=
|
ARG LABEL_DATE=
|
||||||
ARG GIT_URL=unknown
|
ARG GIT_URL=unknown
|
||||||
ARG SEARX_GIT_VERSION=unknown
|
ARG SEARXNG_GIT_VERSION=unknown
|
||||||
ARG LABEL_VCS_REF=
|
ARG LABEL_VCS_REF=
|
||||||
ARG LABEL_VCS_URL=
|
ARG LABEL_VCS_URL=
|
||||||
LABEL maintainer="searxng <${GIT_URL}>" \
|
LABEL maintainer="searxng <${GIT_URL}>" \
|
||||||
description="A privacy-respecting, hackable metasearch engine." \
|
description="A privacy-respecting, hackable metasearch engine." \
|
||||||
version="${SEARX_GIT_VERSION}" \
|
version="${SEARXNG_GIT_VERSION}" \
|
||||||
org.label-schema.schema-version="1.0" \
|
org.label-schema.schema-version="1.0" \
|
||||||
org.label-schema.name="searxng" \
|
org.label-schema.name="searxng" \
|
||||||
org.label-schema.version="${SEARX_GIT_VERSION}" \
|
org.label-schema.version="${SEARXNG_GIT_VERSION}" \
|
||||||
org.label-schema.url="${LABEL_VCS_URL}" \
|
org.label-schema.url="${LABEL_VCS_URL}" \
|
||||||
org.label-schema.vcs-ref=${LABEL_VCS_REF} \
|
org.label-schema.vcs-ref=${LABEL_VCS_REF} \
|
||||||
org.label-schema.vcs-url=${LABEL_VCS_URL} \
|
org.label-schema.vcs-url=${LABEL_VCS_URL} \
|
||||||
org.label-schema.build-date="${LABEL_DATE}" \
|
org.label-schema.build-date="${LABEL_DATE}" \
|
||||||
org.label-schema.usage="https://github.com/searx/searx-docker" \
|
org.label-schema.usage="https://github.com/searxng/searxng-docker" \
|
||||||
org.opencontainers.image.title="searxng" \
|
org.opencontainers.image.title="searxng" \
|
||||||
org.opencontainers.image.version="${SEARX_GIT_VERSION}" \
|
org.opencontainers.image.version="${SEARXNG_GIT_VERSION}" \
|
||||||
org.opencontainers.image.url="${LABEL_VCS_URL}" \
|
org.opencontainers.image.url="${LABEL_VCS_URL}" \
|
||||||
org.opencontainers.image.revision=${LABEL_VCS_REF} \
|
org.opencontainers.image.revision=${LABEL_VCS_REF} \
|
||||||
org.opencontainers.image.source=${LABEL_VCS_URL} \
|
org.opencontainers.image.source=${LABEL_VCS_URL} \
|
||||||
org.opencontainers.image.created="${LABEL_DATE}" \
|
org.opencontainers.image.created="${LABEL_DATE}" \
|
||||||
org.opencontainers.image.documentation="https://github.com/searx/searx-docker"
|
org.opencontainers.image.documentation="https://github.com/searxng/searxng-docker"
|
||||||
|
|
12
Makefile
12
Makefile
|
@ -14,7 +14,7 @@ help:
|
||||||
@./manage --help
|
@./manage --help
|
||||||
@echo '----'
|
@echo '----'
|
||||||
@echo 'run - run developer instance'
|
@echo 'run - run developer instance'
|
||||||
@echo 'install - developer install of searx into virtualenv'
|
@echo 'install - developer install of searxng into virtualenv'
|
||||||
@echo 'uninstall - uninstall developer installation'
|
@echo 'uninstall - uninstall developer installation'
|
||||||
@echo 'clean - clean up working tree'
|
@echo 'clean - clean up working tree'
|
||||||
@echo 'search.checker - check search engines'
|
@echo 'search.checker - check search engines'
|
||||||
|
@ -29,7 +29,7 @@ run: install
|
||||||
sleep 2 ; \
|
sleep 2 ; \
|
||||||
xdg-open http://127.0.0.1:8888/ ; \
|
xdg-open http://127.0.0.1:8888/ ; \
|
||||||
) &
|
) &
|
||||||
SEARX_DEBUG=1 ./manage pyenv.cmd python -m searx.webapp
|
SEARXNG_DEBUG=1 ./manage pyenv.cmd python -m searxng.webapp
|
||||||
|
|
||||||
PHONY += install uninstall
|
PHONY += install uninstall
|
||||||
install uninstall:
|
install uninstall:
|
||||||
|
@ -48,10 +48,10 @@ lxc.clean:
|
||||||
|
|
||||||
PHONY += search.checker search.checker.%
|
PHONY += search.checker search.checker.%
|
||||||
search.checker: install
|
search.checker: install
|
||||||
$(Q)./manage pyenv.cmd searx-checker -v
|
$(Q)./manage pyenv.cmd searxng-checker -v
|
||||||
|
|
||||||
search.checker.%: install
|
search.checker.%: install
|
||||||
$(Q)./manage pyenv.cmd searx-checker -v "$(subst _, ,$(patsubst search.checker.%,%,$@))"
|
$(Q)./manage pyenv.cmd searxng-checker -v "$(subst _, ,$(patsubst search.checker.%,%,$@))"
|
||||||
|
|
||||||
PHONY += test ci.test test.shell
|
PHONY += test ci.test test.shell
|
||||||
ci.test: test.yamllint test.pep8 test.pylint test.unit test.robot
|
ci.test: test.yamllint test.pep8 test.pylint test.unit test.robot
|
||||||
|
@ -66,10 +66,10 @@ test.shell:
|
||||||
utils/lib_install.sh \
|
utils/lib_install.sh \
|
||||||
utils/lib_static.sh \
|
utils/lib_static.sh \
|
||||||
utils/filtron.sh \
|
utils/filtron.sh \
|
||||||
utils/searx.sh \
|
utils/searxng.sh \
|
||||||
utils/morty.sh \
|
utils/morty.sh \
|
||||||
utils/lxc.sh \
|
utils/lxc.sh \
|
||||||
utils/lxc-searx.env \
|
utils/lxc-searxng.env \
|
||||||
.config.sh
|
.config.sh
|
||||||
$(Q)$(MTOOLS) build_msg TEST "$@ OK"
|
$(Q)$(MTOOLS) build_msg TEST "$@ OK"
|
||||||
|
|
||||||
|
|
14
README.rst
14
README.rst
|
@ -1,8 +1,8 @@
|
||||||
.. SPDX-License-Identifier: AGPL-3.0-or-later
|
.. SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|searx install|
|
|searxng install|
|
||||||
|searx homepage|
|
|searxng homepage|
|
||||||
|searx wiki|
|
|searxng wiki|
|
||||||
|AGPL License|
|
|AGPL License|
|
||||||
|Issues|
|
|Issues|
|
||||||
|commits|
|
|commits|
|
||||||
|
@ -12,13 +12,13 @@ Privacy-respecting, hackable `metasearch engine`_
|
||||||
|
|
||||||
.. _metasearch engine: https://en.wikipedia.org/wiki/Metasearch_engine
|
.. _metasearch engine: https://en.wikipedia.org/wiki/Metasearch_engine
|
||||||
|
|
||||||
.. |searx install| image:: https://img.shields.io/badge/-install-blue
|
.. |searxng install| image:: https://img.shields.io/badge/-install-blue
|
||||||
:target: https://searxng.github.io/searxng/admin/installation.html
|
:target: https://searxng.github.io/searxng/admin/installation.html
|
||||||
|
|
||||||
.. |searx homepage| image:: https://img.shields.io/badge/-homepage-blue
|
.. |searxng homepage| image:: https://img.shields.io/badge/-homepage-blue
|
||||||
:target: https://searxng.github.io/searxng
|
:target: https://searxng.github.io/searxng
|
||||||
|
|
||||||
.. |searx wiki| image:: https://img.shields.io/badge/-wiki-blue
|
.. |searxng wiki| image:: https://img.shields.io/badge/-wiki-blue
|
||||||
:target: https://github.com/searxng/searxng/wiki
|
:target: https://github.com/searxng/searxng/wiki
|
||||||
|
|
||||||
.. |AGPL License| image:: https://img.shields.io/badge/license-AGPL-blue.svg
|
.. |AGPL License| image:: https://img.shields.io/badge/license-AGPL-blue.svg
|
||||||
|
@ -46,7 +46,7 @@ SearXNG is a fork of `searx`_:
|
||||||
* `the differences with searx <https://github.com/searxng/searxng/issues/46>`_
|
* `the differences with searx <https://github.com/searxng/searxng/issues/46>`_
|
||||||
* `exhaustive changelog <https://github.com/searxng/searxng/wiki/Changes-from-version-1.0.0>`_
|
* `exhaustive changelog <https://github.com/searxng/searxng/wiki/Changes-from-version-1.0.0>`_
|
||||||
|
|
||||||
.. _searx: https://github.com/searx/searx
|
.. _searxng: https://github.com/searxng/searxng
|
||||||
.. _searx.space: https://searx.space
|
.. _searx.space: https://searx.space
|
||||||
.. _user: https://searxng.github.io/searxng/user
|
.. _user: https://searxng.github.io/searxng/user
|
||||||
.. _admin: https://searxng.github.io/searxng/admin
|
.. _admin: https://searxng.github.io/searxng/admin
|
||||||
|
|
|
@ -17,7 +17,7 @@ Environment variables:
|
||||||
BIND_ADDRESS uwsgi bind to the specified TCP socket using HTTP protocol.
|
BIND_ADDRESS uwsgi bind to the specified TCP socket using HTTP protocol.
|
||||||
Default value: ${DEFAULT_BIND_ADDRESS}
|
Default value: ${DEFAULT_BIND_ADDRESS}
|
||||||
Volume:
|
Volume:
|
||||||
/etc/searx the docker entry point copies settings.yml and uwsgi.ini in
|
/etc/searxng the docker entry point copies settings.yml and uwsgi.ini in
|
||||||
this directory (see the -f command line option)"
|
this directory (see the -f command line option)"
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
@ -48,22 +48,22 @@ do
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
get_searx_version(){
|
get_searxng_version(){
|
||||||
su searx -c \
|
su searxng -c \
|
||||||
'python3 -c "import six; import searx.version; six.print_(searx.version.VERSION_STRING)"' \
|
'python3 -c "import six; import searxng.version; six.print_(searxng.version.VERSION_STRING)"' \
|
||||||
2>/dev/null
|
2>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
SEARX_VERSION="$(get_searx_version)"
|
SEARXNG_VERSION="$(get_searxng_version)"
|
||||||
export SEARX_VERSION
|
export SEARXNG_VERSION
|
||||||
echo "searx version ${SEARX_VERSION}"
|
echo "searxng version ${SEARXNG_VERSION}"
|
||||||
|
|
||||||
# helpers to update the configuration files
|
# helpers to update the configuration files
|
||||||
patch_uwsgi_settings() {
|
patch_uwsgi_settings() {
|
||||||
CONF="$1"
|
CONF="$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
patch_searx_settings() {
|
patch_searxng_settings() {
|
||||||
CONF="$1"
|
CONF="$1"
|
||||||
|
|
||||||
# Make sure that there is trailing slash at the end of BASE_URL
|
# Make sure that there is trailing slash at the end of BASE_URL
|
||||||
|
@ -114,7 +114,7 @@ update_conf() {
|
||||||
$PATCH_REF_CONF "${CONF}"
|
$PATCH_REF_CONF "${CONF}"
|
||||||
else
|
else
|
||||||
# Keep the current configuration
|
# Keep the current configuration
|
||||||
printf '⚠️ Check new version %s to make sure searx is working properly\n' "${NEW_CONF}"
|
printf '⚠️ Check new version %s to make sure searxng is working properly\n' "${NEW_CONF}"
|
||||||
cp "${REF_CONF}" "${NEW_CONF}"
|
cp "${REF_CONF}" "${NEW_CONF}"
|
||||||
$PATCH_REF_CONF "${NEW_CONF}"
|
$PATCH_REF_CONF "${NEW_CONF}"
|
||||||
fi
|
fi
|
||||||
|
@ -129,10 +129,10 @@ update_conf() {
|
||||||
}
|
}
|
||||||
|
|
||||||
# make sure there are uwsgi settings
|
# make sure there are uwsgi settings
|
||||||
update_conf "${FORCE_CONF_UPDATE}" "${UWSGI_SETTINGS_PATH}" "/usr/local/searx/dockerfiles/uwsgi.ini" "patch_uwsgi_settings"
|
update_conf "${FORCE_CONF_UPDATE}" "${UWSGI_SETTINGS_PATH}" "/usr/local/searxng/dockerfiles/uwsgi.ini" "patch_uwsgi_settings"
|
||||||
|
|
||||||
# make sure there are searx settings
|
# make sure there are searxng settings
|
||||||
update_conf "${FORCE_CONF_UPDATE}" "${SEARX_SETTINGS_PATH}" "/usr/local/searx/searx/settings.yml" "patch_searx_settings"
|
update_conf "${FORCE_CONF_UPDATE}" "${SEARXNG_SETTINGS_PATH}" "/usr/local/searxng/searxng/settings.yml" "patch_searxng_settings"
|
||||||
|
|
||||||
# dry run (to update configuration files, then inspect them)
|
# dry run (to update configuration files, then inspect them)
|
||||||
if [ $DRY_RUN -eq 1 ]; then
|
if [ $DRY_RUN -eq 1 ]; then
|
||||||
|
@ -141,9 +141,9 @@ if [ $DRY_RUN -eq 1 ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
touch /var/run/uwsgi-logrotate
|
touch /var/run/uwsgi-logrotate
|
||||||
chown -R searx:searx /var/log/uwsgi /var/run/uwsgi-logrotate
|
chown -R searxng:searxng /var/log/uwsgi /var/run/uwsgi-logrotate
|
||||||
unset MORTY_KEY
|
unset MORTY_KEY
|
||||||
|
|
||||||
# Start uwsgi
|
# Start uwsgi
|
||||||
printf 'Listen on %s\n' "${BIND_ADDRESS}"
|
printf 'Listen on %s\n' "${BIND_ADDRESS}"
|
||||||
exec su-exec searx:searx uwsgi --master --http-socket "${BIND_ADDRESS}" "${UWSGI_SETTINGS_PATH}"
|
exec su-exec searxng:searxng uwsgi --master --http-socket "${BIND_ADDRESS}" "${UWSGI_SETTINGS_PATH}"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[uwsgi]
|
[uwsgi]
|
||||||
# Who will run the code
|
# Who will run the code
|
||||||
uid = searx
|
uid = searxng
|
||||||
gid = searx
|
gid = searxng
|
||||||
|
|
||||||
# Number of workers (usually CPU count)
|
# Number of workers (usually CPU count)
|
||||||
workers = 4
|
workers = 4
|
||||||
|
@ -17,11 +17,11 @@ lazy-apps = true
|
||||||
enable-threads = true
|
enable-threads = true
|
||||||
|
|
||||||
# Module to import
|
# Module to import
|
||||||
module = searx.webapp
|
module = searxng.webapp
|
||||||
|
|
||||||
# Virtualenv and python path
|
# Virtualenv and python path
|
||||||
pythonpath = /usr/local/searx/
|
pythonpath = /usr/local/searxng/
|
||||||
chdir = /usr/local/searx/searx/
|
chdir = /usr/local/searxng/searxng/
|
||||||
|
|
||||||
# Disable logging for privacy
|
# Disable logging for privacy
|
||||||
disable-logging=True
|
disable-logging=True
|
||||||
|
@ -33,15 +33,15 @@ log-backupname = /var/log/uwsgi/uwsgi.log.1
|
||||||
logto = /var/log/uwsgi/uwsgi.log
|
logto = /var/log/uwsgi/uwsgi.log
|
||||||
|
|
||||||
# No keep alive
|
# No keep alive
|
||||||
# See https://github.com/searx/searx-docker/issues/24
|
# See https://github.com/searxng/searxng-docker/issues/24
|
||||||
add-header = Connection: close
|
add-header = Connection: close
|
||||||
|
|
||||||
# uwsgi serves the static files
|
# uwsgi serves the static files
|
||||||
# expires set to one day as Flask does
|
# expires set to one day as Flask does
|
||||||
static-map = /static=/usr/local/searx/searx/static
|
static-map = /static=/usr/local/searxng/searxng/static
|
||||||
static-expires = /* 864000
|
static-expires = /* 864000
|
||||||
static-gzip-all = True
|
static-gzip-all = True
|
||||||
offload-threads = %k
|
offload-threads = %k
|
||||||
|
|
||||||
# Cache
|
# Cache
|
||||||
cache2 = name=searxcache,items=2000,blocks=2000,blocksize=4096,bitmap=1
|
cache2 = name=searxngcache,items=2000,blocks=2000,blocksize=4096,bitmap=1
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[theme]
|
[theme]
|
||||||
inherit = pocoo
|
inherit = pocoo
|
||||||
stylesheet = searx.css
|
stylesheet = searxng.css
|
||||||
|
|
||||||
[options]
|
[options]
|
||||||
touch_icon =
|
touch_icon =
|
|
@ -59,7 +59,7 @@ Sample response
|
||||||
"shortcut": "bb"
|
"shortcut": "bb"
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
"instance_name": "searx",
|
"instance_name": "searxng",
|
||||||
"locales": {
|
"locales": {
|
||||||
"de": "Deutsch (German)",
|
"de": "Deutsch (German)",
|
||||||
"en": "English",
|
"en": "English",
|
||||||
|
|
|
@ -8,26 +8,26 @@ digraph G {
|
||||||
filtron [label="Filtron", href="https://searxng.github.io/searxng/utils/filtron.sh.html"];
|
filtron [label="Filtron", href="https://searxng.github.io/searxng/utils/filtron.sh.html"];
|
||||||
morty [label="Morty", href="https://searxng.github.io/searxng/utils/morty.sh.html"];
|
morty [label="Morty", href="https://searxng.github.io/searxng/utils/morty.sh.html"];
|
||||||
static [label="Static files", href="url to configure static files"];
|
static [label="Static files", href="url to configure static files"];
|
||||||
uwsgi [label="uwsgi", href="https://searxng.github.io/searxng/utils/searx.sh.html"]
|
uwsgi [label="uwsgi", href="https://searxng.github.io/searxng/utils/searxng.sh.html"]
|
||||||
searx1 [label="Searx #1"];
|
searxng1 [label="Searxng #1"];
|
||||||
searx2 [label="Searx #2"];
|
searxng2 [label="Searxng #2"];
|
||||||
searx3 [label="Searx #3"];
|
searxng3 [label="Searxng #3"];
|
||||||
searx4 [label="Searx #4"];
|
searxng4 [label="Searxng #4"];
|
||||||
|
|
||||||
browser -> rp [label="HTTPS"]
|
browser -> rp [label="HTTPS"]
|
||||||
|
|
||||||
subgraph cluster_searx {
|
subgraph cluster_searxng {
|
||||||
label = "Searx instance" fontname="Sans";
|
label = "Searxng instance" fontname="Sans";
|
||||||
bgcolor="#fafafa";
|
bgcolor="#fafafa";
|
||||||
{ rank=same; static rp };
|
{ rank=same; static rp };
|
||||||
rp -> morty [label="optional: images and HTML pages proxy"];
|
rp -> morty [label="optional: images and HTML pages proxy"];
|
||||||
rp -> static [label="optional: reverse proxy serves directly static files"];
|
rp -> static [label="optional: reverse proxy serves directly static files"];
|
||||||
rp -> filtron [label="HTTP"];
|
rp -> filtron [label="HTTP"];
|
||||||
filtron -> uwsgi [label="HTTP"];
|
filtron -> uwsgi [label="HTTP"];
|
||||||
uwsgi -> searx1;
|
uwsgi -> searxng1;
|
||||||
uwsgi -> searx2;
|
uwsgi -> searxng2;
|
||||||
uwsgi -> searx3;
|
uwsgi -> searxng3;
|
||||||
uwsgi -> searx4;
|
uwsgi -> searxng4;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,17 +6,17 @@ Architecture
|
||||||
|
|
||||||
.. sidebar:: Further reading
|
.. sidebar:: Further reading
|
||||||
|
|
||||||
- Reverse Proxy: :ref:`Apache <apache searx site>` & :ref:`nginx <nginx searx
|
- Reverse Proxy: :ref:`Apache <apache searxng site>` & :ref:`nginx <nginx searxng
|
||||||
site>`
|
site>`
|
||||||
- Filtron: :ref:`searx filtron`
|
- Filtron: :ref:`searxng filtron`
|
||||||
- Morty: :ref:`searx morty`
|
- Morty: :ref:`searxng morty`
|
||||||
- uWSGI: :ref:`searx uwsgi`
|
- uWSGI: :ref:`searxng uwsgi`
|
||||||
- Searx: :ref:`installation basic`
|
- Searxng: :ref:`installation basic`
|
||||||
|
|
||||||
Herein you will find some hints and suggestions about typical architectures of
|
Herein you will find some hints and suggestions about typical architectures of
|
||||||
SearXNG infrastructures.
|
SearXNG infrastructures.
|
||||||
|
|
||||||
We start with a contribution from :pull-searx:`@dalf <1776#issuecomment-567917320>`.
|
We start with a contribution from :pull-searxng:`@dalf <1776#issuecomment-567917320>`.
|
||||||
It shows a *reference* setup for public SearXNG instances which can build up and
|
It shows a *reference* setup for public SearXNG instances which can build up and
|
||||||
maintained by the scripts from our :ref:`toolboxing`.
|
maintained by the scripts from our :ref:`toolboxing`.
|
||||||
|
|
||||||
|
|
|
@ -15,19 +15,19 @@ Buildhosts
|
||||||
:backlinks: entry
|
:backlinks: entry
|
||||||
|
|
||||||
To get best results from build, its recommend to install additional packages
|
To get best results from build, its recommend to install additional packages
|
||||||
on build hosts (see :ref:`searx.sh`).::
|
on build hosts (see :ref:`searxng.sh`).::
|
||||||
|
|
||||||
sudo -H ./utils/searx.sh install buildhost
|
sudo -H ./utils/searxng.sh install buildhost
|
||||||
|
|
||||||
This will install packages needed by searx:
|
This will install packages needed by searxng:
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searxng.rst
|
||||||
:start-after: START distro-packages
|
:start-after: START distro-packages
|
||||||
:end-before: END distro-packages
|
:end-before: END distro-packages
|
||||||
|
|
||||||
and packages needed to build docuemtation and run tests:
|
and packages needed to build docuemtation and run tests:
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searxng.rst
|
||||||
:start-after: START build-packages
|
:start-after: START build-packages
|
||||||
:end-before: END build-packages
|
:end-before: END build-packages
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ Command Line Engines
|
||||||
|
|
||||||
.. sidebar:: info
|
.. sidebar:: info
|
||||||
|
|
||||||
- :origin:`command.py <searx/engines/command.py>`
|
- :origin:`command.py <searxng/engines/command.py>`
|
||||||
- :ref:`offline engines`
|
- :ref:`offline engines`
|
||||||
|
|
||||||
With *command engines* administrators can run engines to integrate arbitrary
|
With *command engines* administrators can run engines to integrate arbitrary
|
||||||
|
|
|
@ -35,7 +35,7 @@ Explanation of the :ref:`general engine configuration` shown in the table
|
||||||
Show errors **DE**
|
Show errors **DE**
|
||||||
============= =========== =================================
|
============= =========== =================================
|
||||||
|
|
||||||
.. jinja:: searx
|
.. jinja:: searxng
|
||||||
|
|
||||||
.. flat-table:: Engines configured at built time (defaults)
|
.. flat-table:: Engines configured at built time (defaults)
|
||||||
:header-rows: 1
|
:header-rows: 1
|
||||||
|
|
|
@ -20,4 +20,4 @@ Engines & Settings
|
||||||
nosql-engines
|
nosql-engines
|
||||||
search-indexer-engines
|
search-indexer-engines
|
||||||
command-line-engines
|
command-line-engines
|
||||||
searx.engines.xpath
|
searxng.engines.xpath
|
||||||
|
|
|
@ -14,17 +14,17 @@ The following `NoSQL databases`_ are supported:
|
||||||
- :ref:`engine mongodb`
|
- :ref:`engine mongodb`
|
||||||
|
|
||||||
All of the engines above are just commented out in the :origin:`settings.yml
|
All of the engines above are just commented out in the :origin:`settings.yml
|
||||||
<searx/settings.yml>`, as you have to set various options and install
|
<searxng/settings.yml>`, as you have to set various options and install
|
||||||
dependencies before using them.
|
dependencies before using them.
|
||||||
|
|
||||||
By default, the engines use the ``key-value`` template for displaying results /
|
By default, the engines use the ``key-value`` template for displaying results /
|
||||||
see :origin:`oscar <searx/templates/oscar/result_templates/key-value.html>` &
|
see :origin:`oscar <searxng/templates/oscar/result_templates/key-value.html>` &
|
||||||
:origin:`simple <searx/templates/simple/result_templates/key-value.html>`
|
:origin:`simple <searxng/templates/simple/result_templates/key-value.html>`
|
||||||
themes. If you are not satisfied with the original result layout, you can use
|
themes. If you are not satisfied with the original result layout, you can use
|
||||||
your own template, set ``result_template`` attribute to ``{template_name}`` and
|
your own template, set ``result_template`` attribute to ``{template_name}`` and
|
||||||
place the templates at::
|
place the templates at::
|
||||||
|
|
||||||
searx/templates/{theme_name}/result_templates/{template_name}
|
searxng/templates/{theme_name}/result_templates/{template_name}
|
||||||
|
|
||||||
Futhermore, if you do not wish to expose these engines on a public instance, you
|
Futhermore, if you do not wish to expose these engines on a public instance, you
|
||||||
can still add them and limit the access by setting ``tokens`` as described in
|
can still add them and limit the access by setting ``tokens`` as described in
|
||||||
|
@ -43,11 +43,11 @@ Extra Dependencies
|
||||||
|
|
||||||
For using :ref:`engine redis_server` or :ref:`engine mongodb` you need to
|
For using :ref:`engine redis_server` or :ref:`engine mongodb` you need to
|
||||||
install additional packages in Python's Virtual Environment of your SearXNG
|
install additional packages in Python's Virtual Environment of your SearXNG
|
||||||
instance. To switch into the environment (:ref:`searx-src`) you can use
|
instance. To switch into the environment (:ref:`searxng-src`) you can use
|
||||||
:ref:`searx.sh`::
|
:ref:`searxng.sh`::
|
||||||
|
|
||||||
$ sudo utils/searx.sh shell
|
$ sudo utils/searxng.sh shell
|
||||||
(searx-pyenv)$ pip install ...
|
(searxng-pyenv)$ pip install ...
|
||||||
|
|
||||||
|
|
||||||
.. _engine redis_server:
|
.. _engine redis_server:
|
||||||
|
@ -61,7 +61,7 @@ Redis Server
|
||||||
|
|
||||||
- ``pip install`` redis_
|
- ``pip install`` redis_
|
||||||
- redis.io_
|
- redis.io_
|
||||||
- :origin:`redis_server.py <searx/engines/redis_server.py>`
|
- :origin:`redis_server.py <searxng/engines/redis_server.py>`
|
||||||
|
|
||||||
|
|
||||||
Redis is an open source (BSD licensed), in-memory data structure (key value
|
Redis is an open source (BSD licensed), in-memory data structure (key value
|
||||||
|
@ -98,7 +98,7 @@ MongoDB
|
||||||
|
|
||||||
- ``pip install`` pymongo_
|
- ``pip install`` pymongo_
|
||||||
- MongoDB_
|
- MongoDB_
|
||||||
- :origin:`mongodb.py <searx/engines/mongodb.py>`
|
- :origin:`mongodb.py <searxng/engines/mongodb.py>`
|
||||||
|
|
||||||
MongoDB_ is a document based database program that handles JSON like data.
|
MongoDB_ is a document based database program that handles JSON like data.
|
||||||
Before configuring the ``mongodb`` engine, you must install the dependency
|
Before configuring the ``mongodb`` engine, you must install the dependency
|
||||||
|
|
|
@ -8,7 +8,7 @@ Recoll Engine
|
||||||
|
|
||||||
- `Recoll <https://www.lesbonscomptes.com/recoll/>`_
|
- `Recoll <https://www.lesbonscomptes.com/recoll/>`_
|
||||||
- `recoll-webui <https://framagit.org/medoc92/recollwebui.git>`_
|
- `recoll-webui <https://framagit.org/medoc92/recollwebui.git>`_
|
||||||
- :origin:`searx/engines/recoll.py`
|
- :origin:`searxng/engines/recoll.py`
|
||||||
|
|
||||||
Recoll_ is a desktop full-text search tool based on Xapian. By itself Recoll_
|
Recoll_ is a desktop full-text search tool based on Xapian. By itself Recoll_
|
||||||
does not offer WEB or API access, this can be achieved using recoll-webui_
|
does not offer WEB or API access, this can be achieved using recoll-webui_
|
||||||
|
|
|
@ -32,7 +32,7 @@ MeiliSearch
|
||||||
|
|
||||||
.. sidebar:: info
|
.. sidebar:: info
|
||||||
|
|
||||||
- :origin:`meilisearch.py <searx/engines/meilisearch.py>`
|
- :origin:`meilisearch.py <searxng/engines/meilisearch.py>`
|
||||||
- `MeiliSearch <https://www.meilisearch.com>`_
|
- `MeiliSearch <https://www.meilisearch.com>`_
|
||||||
- `MeiliSearch Documentation <https://docs.meilisearch.com/>`_
|
- `MeiliSearch Documentation <https://docs.meilisearch.com/>`_
|
||||||
- `Install MeiliSearch
|
- `Install MeiliSearch
|
||||||
|
@ -65,7 +65,7 @@ Elasticsearch
|
||||||
|
|
||||||
.. sidebar:: info
|
.. sidebar:: info
|
||||||
|
|
||||||
- :origin:`elasticsearch.py <searx/engines/elasticsearch.py>`
|
- :origin:`elasticsearch.py <searxng/engines/elasticsearch.py>`
|
||||||
- `Elasticsearch <https://www.elastic.co/elasticsearch/>`_
|
- `Elasticsearch <https://www.elastic.co/elasticsearch/>`_
|
||||||
- `Elasticsearch Guide
|
- `Elasticsearch Guide
|
||||||
<https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html>`_
|
<https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html>`_
|
||||||
|
@ -107,7 +107,7 @@ Solr
|
||||||
|
|
||||||
.. sidebar:: info
|
.. sidebar:: info
|
||||||
|
|
||||||
- :origin:`solr.py <searx/engines/solr.py>`
|
- :origin:`solr.py <searxng/engines/solr.py>`
|
||||||
- `Solr <https://solr.apache.org>`_
|
- `Solr <https://solr.apache.org>`_
|
||||||
- `Solr Resources <https://solr.apache.org/resources.html>`_
|
- `Solr Resources <https://solr.apache.org/resources.html>`_
|
||||||
- `Install Solr <https://solr.apache.org/guide/installing-solr.html>`_
|
- `Install Solr <https://solr.apache.org/guide/installing-solr.html>`_
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
XPath Engine
|
XPath Engine
|
||||||
============
|
============
|
||||||
|
|
||||||
.. automodule:: searx.engines.xpath
|
.. automodule:: searxng.engines.xpath
|
||||||
:members:
|
:members:
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
``settings.yml``
|
``settings.yml``
|
||||||
================
|
================
|
||||||
|
|
||||||
This page describe the options possibilities of the :origin:`searx/settings.yml`
|
This page describe the options possibilities of the :origin:`searxng/settings.yml`
|
||||||
file.
|
file.
|
||||||
|
|
||||||
.. sidebar:: Further reading ..
|
.. sidebar:: Further reading ..
|
||||||
|
@ -24,11 +24,11 @@ settings.yml location
|
||||||
|
|
||||||
The initial ``settings.yml`` we be load from these locations:
|
The initial ``settings.yml`` we be load from these locations:
|
||||||
|
|
||||||
1. the full path specified in the ``SEARX_SETTINGS_PATH`` environment variable.
|
1. the full path specified in the ``SEARXNG_SETTINGS_PATH`` environment variable.
|
||||||
2. ``/etc/searx/settings.yml``
|
2. ``/etc/searxng/settings.yml``
|
||||||
|
|
||||||
If these files don't exist (or are empty or can't be read), SearXNG uses the
|
If these files don't exist (or are empty or can't be read), SearXNG uses the
|
||||||
:origin:`searx/settings.yml` file. Read :ref:`settings use_default_settings` to
|
:origin:`searxng/settings.yml` file. Read :ref:`settings use_default_settings` to
|
||||||
see how you can simplify your *user defined* ``settings.yml``.
|
see how you can simplify your *user defined* ``settings.yml``.
|
||||||
|
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ Global Settings
|
||||||
instance_name: "SearXNG" # displayed name
|
instance_name: "SearXNG" # displayed name
|
||||||
contact_url: false # mailto:contact@example.com
|
contact_url: false # mailto:contact@example.com
|
||||||
|
|
||||||
``debug`` : ``$SEARX_DEBUG``
|
``debug`` : ``$SEARXNG_DEBUG``
|
||||||
Allow a more detailed log if you run SearXNG directly. Display *detailed* error
|
Allow a more detailed log if you run SearXNG directly. Display *detailed* error
|
||||||
messages in the browser too, so this must be deactivated in production.
|
messages in the browser too, so this must be deactivated in production.
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ Global Settings
|
||||||
port: 8888
|
port: 8888
|
||||||
bind_address: "127.0.0.1" # address to listen on
|
bind_address: "127.0.0.1" # address to listen on
|
||||||
secret_key: "ultrasecretkey" # change this!
|
secret_key: "ultrasecretkey" # change this!
|
||||||
image_proxy: false # proxying image results through searx
|
image_proxy: false # proxying image results through searxng
|
||||||
default_locale: "" # default interface locale
|
default_locale: "" # default interface locale
|
||||||
default_theme: oscar # ui theme
|
default_theme: oscar # ui theme
|
||||||
default_http_headers:
|
default_http_headers:
|
||||||
|
@ -109,17 +109,17 @@ Global Settings
|
||||||
Changing a value tagged by :ref:`buildenv <make buildenv>`, needs to
|
Changing a value tagged by :ref:`buildenv <make buildenv>`, needs to
|
||||||
rebuild instance's environment :ref:`utils/brand.env <make buildenv>`.
|
rebuild instance's environment :ref:`utils/brand.env <make buildenv>`.
|
||||||
|
|
||||||
``base_url`` : :ref:`buildenv SEARX_URL <make buildenv>`
|
``base_url`` : :ref:`buildenv SEARXNG_URL <make buildenv>`
|
||||||
The base URL where SearXNG is deployed. Used to create correct inbound links.
|
The base URL where SearXNG is deployed. Used to create correct inbound links.
|
||||||
If you change the value, don't forget to rebuild instance's environment
|
If you change the value, don't forget to rebuild instance's environment
|
||||||
(:ref:`utils/brand.env <make buildenv>`)
|
(:ref:`utils/brand.env <make buildenv>`)
|
||||||
|
|
||||||
``port`` & ``bind_address``: :ref:`buildenv SEARX_PORT & SEARX_BIND_ADDRESS <make buildenv>`
|
``port`` & ``bind_address``: :ref:`buildenv SEARXNG_PORT & SEARXNG_BIND_ADDRESS <make buildenv>`
|
||||||
Port number and *bind address* of the SearXNG web application if you run it
|
Port number and *bind address* of the SearXNG web application if you run it
|
||||||
directly using ``python searx/webapp.py``. Doesn't apply to SearXNG running on
|
directly using ``python searxng/webapp.py``. Doesn't apply to SearXNG running on
|
||||||
Apache or Nginx.
|
Apache or Nginx.
|
||||||
|
|
||||||
``secret_key`` : ``$SEARX_SECRET``
|
``secret_key`` : ``$SEARXNG_SECRET``
|
||||||
Used for cryptography purpose.
|
Used for cryptography purpose.
|
||||||
|
|
||||||
``image_proxy`` :
|
``image_proxy`` :
|
||||||
|
@ -128,7 +128,7 @@ Global Settings
|
||||||
``default_locale`` :
|
``default_locale`` :
|
||||||
SearXNG interface language. If blank, the locale is detected by using the
|
SearXNG interface language. If blank, the locale is detected by using the
|
||||||
browser language. If it doesn't work, or you are deploying a language
|
browser language. If it doesn't work, or you are deploying a language
|
||||||
specific instance of searx, a locale can be defined using an ISO language
|
specific instance of searxng, a locale can be defined using an ISO language
|
||||||
code, like ``fr``, ``en``, ``de``.
|
code, like ``fr``, ``en``, ``de``.
|
||||||
|
|
||||||
``default_theme`` :
|
``default_theme`` :
|
||||||
|
@ -137,7 +137,7 @@ Global Settings
|
||||||
.. _HTTP headers: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
|
.. _HTTP headers: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
|
||||||
|
|
||||||
``default_http_headers``:
|
``default_http_headers``:
|
||||||
Set additional HTTP headers, see `#755 <https://github.com/searx/searx/issues/715>`__
|
Set additional HTTP headers, see `#755 <https://github.com/searxng/searxng/issues/715>`__
|
||||||
|
|
||||||
``outgoing:``
|
``outgoing:``
|
||||||
-------------
|
-------------
|
||||||
|
@ -293,7 +293,7 @@ engine is shown. Most of the options have a default value or even are optional.
|
||||||
|
|
||||||
``timeout`` : optional
|
``timeout`` : optional
|
||||||
Timeout of the search with the current search engine. **Be careful, it will
|
Timeout of the search with the current search engine. **Be careful, it will
|
||||||
modify the global timeout of searx.**
|
modify the global timeout of searxng.**
|
||||||
|
|
||||||
``api_key`` : optional
|
``api_key`` : optional
|
||||||
In a few cases, using an API needs the use of a secret key. How to obtain them
|
In a few cases, using an API needs the use of a secret key. How to obtain them
|
||||||
|
@ -339,16 +339,16 @@ use_default_settings
|
||||||
|
|
||||||
- :ref:`settings location`
|
- :ref:`settings location`
|
||||||
- :ref:`use_default_settings.yml`
|
- :ref:`use_default_settings.yml`
|
||||||
- :origin:`/etc/searx/settings.yml <utils/templates/etc/searx/use_default_settings.yml>`
|
- :origin:`/etc/searxng/settings.yml <utils/templates/etc/searxng/use_default_settings.yml>`
|
||||||
|
|
||||||
The user defined ``settings.yml`` is loaded from the :ref:`settings location`
|
The user defined ``settings.yml`` is loaded from the :ref:`settings location`
|
||||||
and can relied on the default configuration :origin:`searx/settings.yml` using:
|
and can relied on the default configuration :origin:`searxng/settings.yml` using:
|
||||||
|
|
||||||
``use_default_settings: true``
|
``use_default_settings: true``
|
||||||
|
|
||||||
``server:``
|
``server:``
|
||||||
In the following example, the actual settings are the default settings defined
|
In the following example, the actual settings are the default settings defined
|
||||||
in :origin:`searx/settings.yml` with the exception of the ``secret_key`` and
|
in :origin:`searxng/settings.yml` with the exception of the ``secret_key`` and
|
||||||
the ``bind_address``:
|
the ``bind_address``:
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
|
@ -18,7 +18,7 @@ Relational Database Management System (RDBMS) are supported:
|
||||||
- :ref:`engine mysql_server`
|
- :ref:`engine mysql_server`
|
||||||
|
|
||||||
All of the engines above are just commented out in the :origin:`settings.yml
|
All of the engines above are just commented out in the :origin:`settings.yml
|
||||||
<searx/settings.yml>`, as you have to set the required attributes for the
|
<searxng/settings.yml>`, as you have to set the required attributes for the
|
||||||
engines, e.g. ``database:`` ...
|
engines, e.g. ``database:`` ...
|
||||||
|
|
||||||
.. code:: yaml
|
.. code:: yaml
|
||||||
|
@ -30,13 +30,13 @@ engines, e.g. ``database:`` ...
|
||||||
query_str: ...
|
query_str: ...
|
||||||
|
|
||||||
By default, the engines use the ``key-value`` template for displaying results /
|
By default, the engines use the ``key-value`` template for displaying results /
|
||||||
see :origin:`oscar <searx/templates/oscar/result_templates/key-value.html>` &
|
see :origin:`oscar <searxng/templates/oscar/result_templates/key-value.html>` &
|
||||||
:origin:`simple <searx/templates/simple/result_templates/key-value.html>`
|
:origin:`simple <searxng/templates/simple/result_templates/key-value.html>`
|
||||||
themes. If you are not satisfied with the original result layout, you can use
|
themes. If you are not satisfied with the original result layout, you can use
|
||||||
your own template, set ``result_template`` attribute to ``{template_name}`` and
|
your own template, set ``result_template`` attribute to ``{template_name}`` and
|
||||||
place the templates at::
|
place the templates at::
|
||||||
|
|
||||||
searx/templates/{theme_name}/result_templates/{template_name}
|
searxng/templates/{theme_name}/result_templates/{template_name}
|
||||||
|
|
||||||
If you do not wish to expose these engines on a public instance, you can still
|
If you do not wish to expose these engines on a public instance, you can still
|
||||||
add them and limit the access by setting ``tokens`` as described in section
|
add them and limit the access by setting ``tokens`` as described in section
|
||||||
|
@ -63,7 +63,7 @@ SQLite
|
||||||
|
|
||||||
.. sidebar:: info
|
.. sidebar:: info
|
||||||
|
|
||||||
- :origin:`sqlite.py <searx/engines/sqlite.py>`
|
- :origin:`sqlite.py <searxng/engines/sqlite.py>`
|
||||||
|
|
||||||
.. _MediathekView: https://mediathekview.de/
|
.. _MediathekView: https://mediathekview.de/
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ this example of the SQlite engine download the database:
|
||||||
|
|
||||||
- https://liste.mediathekview.de/filmliste-v2.db.bz2
|
- https://liste.mediathekview.de/filmliste-v2.db.bz2
|
||||||
|
|
||||||
and unpack into ``searx/data/filmliste-v2.db``. To search the database use e.g
|
and unpack into ``searxng/data/filmliste-v2.db``. To search the database use e.g
|
||||||
Query to test: ``!mediathekview concert``
|
Query to test: ``!mediathekview concert``
|
||||||
|
|
||||||
.. code:: yaml
|
.. code:: yaml
|
||||||
|
@ -84,7 +84,7 @@ Query to test: ``!mediathekview concert``
|
||||||
disabled: False
|
disabled: False
|
||||||
categories: general
|
categories: general
|
||||||
result_template: default.html
|
result_template: default.html
|
||||||
database: searx/data/filmliste-v2.db
|
database: searxng/data/filmliste-v2.db
|
||||||
query_str: >-
|
query_str: >-
|
||||||
SELECT title || ' (' || time(duration, 'unixepoch') || ')' AS title,
|
SELECT title || ' (' || time(duration, 'unixepoch') || ')' AS title,
|
||||||
COALESCE( NULLIF(url_video_hd,''), NULLIF(url_video_sd,''), url_video) AS url,
|
COALESCE( NULLIF(url_video_hd,''), NULLIF(url_video_sd,''), url_video) AS url,
|
||||||
|
@ -99,11 +99,11 @@ Extra Dependencies
|
||||||
|
|
||||||
For using :ref:`engine postgresql` or :ref:`engine mysql_server` you need to
|
For using :ref:`engine postgresql` or :ref:`engine mysql_server` you need to
|
||||||
install additional packages in Python's Virtual Environment of your SearXNG
|
install additional packages in Python's Virtual Environment of your SearXNG
|
||||||
instance. To switch into the environment (:ref:`searx-src`) you can use
|
instance. To switch into the environment (:ref:`searxng-src`) you can use
|
||||||
:ref:`searx.sh`::
|
:ref:`searxng.sh`::
|
||||||
|
|
||||||
$ sudo utils/searx.sh shell
|
$ sudo utils/searxng.sh shell
|
||||||
(searx-pyenv)$ pip install ...
|
(searxng-pyenv)$ pip install ...
|
||||||
|
|
||||||
|
|
||||||
.. _engine postgresql:
|
.. _engine postgresql:
|
||||||
|
@ -115,7 +115,7 @@ PostgreSQL
|
||||||
|
|
||||||
.. sidebar:: info
|
.. sidebar:: info
|
||||||
|
|
||||||
- :origin:`postgresql.py <searx/engines/postgresql.py>`
|
- :origin:`postgresql.py <searxng/engines/postgresql.py>`
|
||||||
- ``pip install`` psycopg2_
|
- ``pip install`` psycopg2_
|
||||||
|
|
||||||
PostgreSQL is a powerful and robust open source database. Before configuring
|
PostgreSQL is a powerful and robust open source database. Before configuring
|
||||||
|
@ -127,7 +127,7 @@ find an example configuration below:
|
||||||
- name: my_database
|
- name: my_database
|
||||||
engine: postgresql
|
engine: postgresql
|
||||||
database: my_database
|
database: my_database
|
||||||
username: searx
|
username: searxng
|
||||||
password: password
|
password: password
|
||||||
query_str: 'SELECT * from my_table WHERE my_column = %(query)s'
|
query_str: 'SELECT * from my_table WHERE my_column = %(query)s'
|
||||||
|
|
||||||
|
@ -140,7 +140,7 @@ MySQL
|
||||||
|
|
||||||
.. sidebar:: info
|
.. sidebar:: info
|
||||||
|
|
||||||
- :origin:`mysql_server.py <searx/engines/mysql_server.py>`
|
- :origin:`mysql_server.py <searxng/engines/mysql_server.py>`
|
||||||
- ``pip install`` mysql-connector-python_
|
- ``pip install`` mysql-connector-python_
|
||||||
|
|
||||||
MySQL is said to be the most popular open source database. Before enabling MySQL
|
MySQL is said to be the most popular open source database. Before enabling MySQL
|
||||||
|
@ -155,7 +155,7 @@ example configuration for quering a MySQL server:
|
||||||
- name: my_database
|
- name: my_database
|
||||||
engine: mysql_server
|
engine: mysql_server
|
||||||
database: my_database
|
database: my_database
|
||||||
username: searx
|
username: searxng
|
||||||
password: password
|
password: password
|
||||||
limit: 5
|
limit: 5
|
||||||
query_str: 'SELECT * from my_table WHERE my_column=%(query)s'
|
query_str: 'SELECT * from my_table WHERE my_column=%(query)s'
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
.. _searx filtron:
|
.. _searxng filtron:
|
||||||
|
|
||||||
==========================
|
==========================
|
||||||
How to protect an instance
|
How to protect an instance
|
||||||
|
@ -8,7 +8,7 @@ How to protect an instance
|
||||||
.. sidebar:: further reading
|
.. sidebar:: further reading
|
||||||
|
|
||||||
- :ref:`filtron.sh`
|
- :ref:`filtron.sh`
|
||||||
- :ref:`nginx searx site`
|
- :ref:`nginx searxng site`
|
||||||
|
|
||||||
|
|
||||||
.. contents:: Contents
|
.. contents:: Contents
|
||||||
|
@ -19,10 +19,10 @@ How to protect an instance
|
||||||
.. _filtron: https://github.com/asciimoo/filtron
|
.. _filtron: https://github.com/asciimoo/filtron
|
||||||
|
|
||||||
SearXNG depends on external search services. To avoid the abuse of these services
|
SearXNG depends on external search services. To avoid the abuse of these services
|
||||||
it is advised to limit the number of requests processed by searx.
|
it is advised to limit the number of requests processed by searxng.
|
||||||
|
|
||||||
An application firewall, filtron_ solves exactly this problem. Filtron is just
|
An application firewall, filtron_ solves exactly this problem. Filtron is just
|
||||||
a middleware between your web server (nginx, apache, ...) and searx, we describe
|
a middleware between your web server (nginx, apache, ...) and searxng, we describe
|
||||||
such infratructures in chapter: :ref:`architecture`.
|
such infratructures in chapter: :ref:`architecture`.
|
||||||
|
|
||||||
|
|
||||||
|
@ -168,9 +168,9 @@ Use it along with ``nginx`` with the following example configuration.
|
||||||
|
|
||||||
.. code:: nginx
|
.. code:: nginx
|
||||||
|
|
||||||
# https://example.org/searx
|
# https://example.org/searxng
|
||||||
|
|
||||||
location /searx {
|
location /searxng {
|
||||||
proxy_pass http://127.0.0.1:4004/;
|
proxy_pass http://127.0.0.1:4004/;
|
||||||
|
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
|
@ -178,14 +178,14 @@ Use it along with ``nginx`` with the following example configuration.
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Scheme $scheme;
|
proxy_set_header X-Scheme $scheme;
|
||||||
proxy_set_header X-Script-Name /searx;
|
proxy_set_header X-Script-Name /searxng;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /searx/static {
|
location /searxng/static {
|
||||||
/usr/local/searx/searx-src/searx/static;
|
/usr/local/searxng/searxng-src/searxng/static;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Requests are coming from port 4004 going through filtron and then forwarded to
|
Requests are coming from port 4004 going through filtron and then forwarded to
|
||||||
port 8888 where a SearXNG is being run. For a complete setup see: :ref:`nginx
|
port 8888 where a SearXNG is being run. For a complete setup see: :ref:`nginx
|
||||||
searx site`.
|
searxng site`.
|
||||||
|
|
|
@ -7,12 +7,12 @@ Administrator documentation
|
||||||
:caption: Contents
|
:caption: Contents
|
||||||
|
|
||||||
installation
|
installation
|
||||||
installation-searx
|
installation-searxng
|
||||||
installation-uwsgi
|
installation-uwsgi
|
||||||
installation-nginx
|
installation-nginx
|
||||||
installation-apache
|
installation-apache
|
||||||
installation-docker
|
installation-docker
|
||||||
update-searx
|
update-searxng
|
||||||
engines/index
|
engines/index
|
||||||
api
|
api
|
||||||
architecture
|
architecture
|
||||||
|
|
|
@ -47,13 +47,13 @@ Install with apache
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
**Install** :ref:`apache searx site` using :ref:`filtron.sh <filtron.sh overview>`
|
**Install** :ref:`apache searxng site` using :ref:`filtron.sh <filtron.sh overview>`
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ sudo -H ./utils/filtron.sh apache install
|
$ sudo -H ./utils/filtron.sh apache install
|
||||||
|
|
||||||
**Install** :ref:`apache searx site` using :ref:`morty.sh <morty.sh overview>`
|
**Install** :ref:`apache searxng site` using :ref:`morty.sh <morty.sh overview>`
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
|
@ -163,7 +163,7 @@ How this default intro site is configured, depends on the linux distribution
|
||||||
|
|
||||||
less /etc/httpd/conf.d/welcome.conf
|
less /etc/httpd/conf.d/welcome.conf
|
||||||
|
|
||||||
.. _apache searx site:
|
.. _apache searxng site:
|
||||||
|
|
||||||
Apache Reverse Proxy
|
Apache Reverse Proxy
|
||||||
====================
|
====================
|
||||||
|
@ -192,14 +192,14 @@ except in :ref:`The Debian Layout`.
|
||||||
sudo -H a2enmod proxy
|
sudo -H a2enmod proxy
|
||||||
sudo -H a2enmod proxy_http
|
sudo -H a2enmod proxy_http
|
||||||
|
|
||||||
In :ref:`The Debian Layout` you create a ``searx.conf`` with the
|
In :ref:`The Debian Layout` you create a ``searxng.conf`` with the
|
||||||
``<Location /searx >`` directive and save this file in the *sites
|
``<Location /searxng >`` directive and save this file in the *sites
|
||||||
available* folder at ``/etc/apache2/sites-available``. To enable the
|
available* folder at ``/etc/apache2/sites-available``. To enable the
|
||||||
``searx.conf`` use :man:`a2ensite`:
|
``searxng.conf`` use :man:`a2ensite`:
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
sudo -H a2ensite searx.conf
|
sudo -H a2ensite searxng.conf
|
||||||
|
|
||||||
.. group-tab:: Arch Linux
|
.. group-tab:: Arch Linux
|
||||||
|
|
||||||
|
@ -230,7 +230,7 @@ except in :ref:`The Debian Layout`.
|
||||||
With ProxyPreserveHost_ the incoming Host HTTP request header is passed to the
|
With ProxyPreserveHost_ the incoming Host HTTP request header is passed to the
|
||||||
proxied host.
|
proxied host.
|
||||||
|
|
||||||
.. _apache searx via filtron plus morty:
|
.. _apache searxng via filtron plus morty:
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
|
@ -244,9 +244,9 @@ proxied host.
|
||||||
|
|
||||||
.. code:: apache
|
.. code:: apache
|
||||||
|
|
||||||
<Location /searx >
|
<Location /searxng >
|
||||||
|
|
||||||
# SetEnvIf Request_URI "/searx" dontlog
|
# SetEnvIf Request_URI "/searxng" dontlog
|
||||||
# CustomLog /dev/null combined env=dontlog
|
# CustomLog /dev/null combined env=dontlog
|
||||||
|
|
||||||
Require all granted
|
Require all granted
|
||||||
|
@ -258,11 +258,11 @@ proxied host.
|
||||||
|
|
||||||
ProxyPreserveHost On
|
ProxyPreserveHost On
|
||||||
ProxyPass http://127.0.0.1:4004
|
ProxyPass http://127.0.0.1:4004
|
||||||
RequestHeader set X-Script-Name /searx
|
RequestHeader set X-Script-Name /searxng
|
||||||
|
|
||||||
</Location>
|
</Location>
|
||||||
|
|
||||||
2. Configure reverse proxy for :ref:`morty <searx morty>`, listening on
|
2. Configure reverse proxy for :ref:`morty <searxng morty>`, listening on
|
||||||
*localhost 3000*
|
*localhost 3000*
|
||||||
|
|
||||||
.. code:: apache
|
.. code:: apache
|
||||||
|
@ -286,8 +286,8 @@ proxied host.
|
||||||
|
|
||||||
</Location>
|
</Location>
|
||||||
|
|
||||||
For a fully result proxification add :ref:`morty's <searx morty>` **public
|
For a fully result proxification add :ref:`morty's <searxng morty>` **public
|
||||||
URL** to your :origin:`searx/settings.yml`:
|
URL** to your :origin:`searxng/settings.yml`:
|
||||||
|
|
||||||
.. code:: yaml
|
.. code:: yaml
|
||||||
|
|
||||||
|
@ -302,10 +302,10 @@ proxied host.
|
||||||
uWSGI support
|
uWSGI support
|
||||||
=============
|
=============
|
||||||
|
|
||||||
Be warned, with this setup, your instance isn't :ref:`protected <searx
|
Be warned, with this setup, your instance isn't :ref:`protected <searxng
|
||||||
filtron>`, nevertheless it is good enough for intranet usage. In modern Linux
|
filtron>`, nevertheless it is good enough for intranet usage. In modern Linux
|
||||||
distributions, the `mod_proxy_uwsgi`_ is compiled into the *normal* apache
|
distributions, the `mod_proxy_uwsgi`_ is compiled into the *normal* apache
|
||||||
package and you need to install only the :ref:`uWSGI <searx uwsgi>` package:
|
package and you need to install only the :ref:`uWSGI <searxng uwsgi>` package:
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
|
@ -334,15 +334,15 @@ The next example shows a configuration using the `uWSGI Apache support`_ via
|
||||||
unix sockets and `mod_proxy_uwsgi`_.
|
unix sockets and `mod_proxy_uwsgi`_.
|
||||||
|
|
||||||
For socket communication, you have to activate ``socket =
|
For socket communication, you have to activate ``socket =
|
||||||
/run/uwsgi/app/searx/socket`` and comment out the ``http = 127.0.0.1:8888``
|
/run/uwsgi/app/searxng/socket`` and comment out the ``http = 127.0.0.1:8888``
|
||||||
configuration in your :ref:`uwsgi ini file <uwsgi configuration>`. If not
|
configuration in your :ref:`uwsgi ini file <uwsgi configuration>`. If not
|
||||||
already exists, create a folder for the unix sockets, which can be used by the
|
already exists, create a folder for the unix sockets, which can be used by the
|
||||||
searx account (see :ref:`create searx user`):
|
searxng account (see :ref:`create searxng user`):
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
sudo -H mkdir -p /run/uwsgi/app/searx/
|
sudo -H mkdir -p /run/uwsgi/app/searxng/
|
||||||
sudo -H chown -R searx:searx /run/uwsgi/app/searx/
|
sudo -H chown -R searxng:searxng /run/uwsgi/app/searxng/
|
||||||
|
|
||||||
If the server is public; to limit access to your intranet replace ``Allow from
|
If the server is public; to limit access to your intranet replace ``Allow from
|
||||||
all`` directive and replace ``192.168.0.0/16`` with your subnet IP/class.
|
all`` directive and replace ``192.168.0.0/16`` with your subnet IP/class.
|
||||||
|
@ -357,10 +357,10 @@ all`` directive and replace ``192.168.0.0/16`` with your subnet IP/class.
|
||||||
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
|
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
|
||||||
LoadModule proxy_uwsgi_module /usr/lib/apache2/modules/mod_proxy_uwsgi.so
|
LoadModule proxy_uwsgi_module /usr/lib/apache2/modules/mod_proxy_uwsgi.so
|
||||||
|
|
||||||
# SetEnvIf Request_URI /searx dontlog
|
# SetEnvIf Request_URI /searxng dontlog
|
||||||
# CustomLog /dev/null combined env=dontlog
|
# CustomLog /dev/null combined env=dontlog
|
||||||
|
|
||||||
<Location /searx>
|
<Location /searxng>
|
||||||
|
|
||||||
Require all granted
|
Require all granted
|
||||||
Order deny,allow
|
Order deny,allow
|
||||||
|
@ -369,7 +369,7 @@ all`` directive and replace ``192.168.0.0/16`` with your subnet IP/class.
|
||||||
Allow from all
|
Allow from all
|
||||||
|
|
||||||
ProxyPreserveHost On
|
ProxyPreserveHost On
|
||||||
ProxyPass unix:/run/uwsgi/app/searx/socket|uwsgi://uwsgi-uds-searx/
|
ProxyPass unix:/run/uwsgi/app/searxng/socket|uwsgi://uwsgi-uds-searxng/
|
||||||
|
|
||||||
</Location>
|
</Location>
|
||||||
|
|
||||||
|
@ -382,10 +382,10 @@ all`` directive and replace ``192.168.0.0/16`` with your subnet IP/class.
|
||||||
LoadModule proxy_module modules/mod_proxy.so
|
LoadModule proxy_module modules/mod_proxy.so
|
||||||
LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
|
LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
|
||||||
|
|
||||||
# SetEnvIf Request_URI /searx dontlog
|
# SetEnvIf Request_URI /searxng dontlog
|
||||||
# CustomLog /dev/null combined env=dontlog
|
# CustomLog /dev/null combined env=dontlog
|
||||||
|
|
||||||
<Location /searx>
|
<Location /searxng>
|
||||||
|
|
||||||
Require all granted
|
Require all granted
|
||||||
Order deny,allow
|
Order deny,allow
|
||||||
|
@ -394,7 +394,7 @@ all`` directive and replace ``192.168.0.0/16`` with your subnet IP/class.
|
||||||
Allow from all
|
Allow from all
|
||||||
|
|
||||||
ProxyPreserveHost On
|
ProxyPreserveHost On
|
||||||
ProxyPass unix:/run/uwsgi/app/searx/socket|uwsgi://uwsgi-uds-searx/
|
ProxyPass unix:/run/uwsgi/app/searxng/socket|uwsgi://uwsgi-uds-searxng/
|
||||||
|
|
||||||
</Location>
|
</Location>
|
||||||
|
|
||||||
|
@ -408,10 +408,10 @@ all`` directive and replace ``192.168.0.0/16`` with your subnet IP/class.
|
||||||
LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
|
LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
|
||||||
<IfModule proxy_uwsgi_module>
|
<IfModule proxy_uwsgi_module>
|
||||||
|
|
||||||
# SetEnvIf Request_URI /searx dontlog
|
# SetEnvIf Request_URI /searxng dontlog
|
||||||
# CustomLog /dev/null combined env=dontlog
|
# CustomLog /dev/null combined env=dontlog
|
||||||
|
|
||||||
<Location /searx>
|
<Location /searxng>
|
||||||
|
|
||||||
Require all granted
|
Require all granted
|
||||||
Order deny,allow
|
Order deny,allow
|
||||||
|
@ -420,7 +420,7 @@ all`` directive and replace ``192.168.0.0/16`` with your subnet IP/class.
|
||||||
Allow from all
|
Allow from all
|
||||||
|
|
||||||
ProxyPreserveHost On
|
ProxyPreserveHost On
|
||||||
ProxyPass unix:/run/uwsgi/app/searx/socket|uwsgi://uwsgi-uds-searx/
|
ProxyPass unix:/run/uwsgi/app/searxng/socket|uwsgi://uwsgi-uds-searxng/
|
||||||
|
|
||||||
</Location>
|
</Location>
|
||||||
|
|
||||||
|
@ -436,16 +436,16 @@ all`` directive and replace ``192.168.0.0/16`` with your subnet IP/class.
|
||||||
|
|
||||||
<IfModule mod_uwsgi.c>
|
<IfModule mod_uwsgi.c>
|
||||||
|
|
||||||
# SetEnvIf Request_URI "/searx" dontlog
|
# SetEnvIf Request_URI "/searxng" dontlog
|
||||||
# CustomLog /dev/null combined env=dontlog
|
# CustomLog /dev/null combined env=dontlog
|
||||||
|
|
||||||
<Location /searx >
|
<Location /searxng >
|
||||||
|
|
||||||
Require all granted
|
Require all granted
|
||||||
|
|
||||||
Options FollowSymLinks Indexes
|
Options FollowSymLinks Indexes
|
||||||
SetHandler uwsgi-handler
|
SetHandler uwsgi-handler
|
||||||
uWSGISocket /run/uwsgi/app/searx/socket
|
uWSGISocket /run/uwsgi/app/searxng/socket
|
||||||
|
|
||||||
Order deny,allow
|
Order deny,allow
|
||||||
Deny from all
|
Deny from all
|
||||||
|
@ -468,21 +468,21 @@ Restart service
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
sudo -H systemctl restart apache2
|
sudo -H systemctl restart apache2
|
||||||
sudo -H service uwsgi restart searx
|
sudo -H service uwsgi restart searxng
|
||||||
|
|
||||||
.. group-tab:: Arch Linux
|
.. group-tab:: Arch Linux
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
sudo -H systemctl restart httpd
|
sudo -H systemctl restart httpd
|
||||||
sudo -H systemctl restart uwsgi@searx
|
sudo -H systemctl restart uwsgi@searxng
|
||||||
|
|
||||||
.. group-tab:: Fedora / RHEL
|
.. group-tab:: Fedora / RHEL
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
sudo -H systemctl restart httpd
|
sudo -H systemctl restart httpd
|
||||||
sudo -H touch /etc/uwsgi.d/searx.ini
|
sudo -H touch /etc/uwsgi.d/searxng.ini
|
||||||
|
|
||||||
|
|
||||||
disable logs
|
disable logs
|
||||||
|
@ -492,11 +492,11 @@ For better privacy you can disable Apache logs. In the examples above activate
|
||||||
one of the lines and `restart apache`_::
|
one of the lines and `restart apache`_::
|
||||||
|
|
||||||
|
|
||||||
# SetEnvIf Request_URI "/searx" dontlog
|
# SetEnvIf Request_URI "/searxng" dontlog
|
||||||
# CustomLog /dev/null combined env=dontlog
|
# CustomLog /dev/null combined env=dontlog
|
||||||
|
|
||||||
The ``CustomLog`` directive disable logs for the whole (virtual) server, use it
|
The ``CustomLog`` directive disable logs for the whole (virtual) server, use it
|
||||||
when the URL of the service does not have a path component (``/searx``) / is
|
when the URL of the service does not have a path component (``/searxng``) / is
|
||||||
located at root (``/``).
|
located at root (``/``).
|
||||||
|
|
||||||
.. _The Debian Layout:
|
.. _The Debian Layout:
|
||||||
|
|
|
@ -25,8 +25,8 @@ Docker installation
|
||||||
If you intend to create a public instance using Docker, use our well
|
If you intend to create a public instance using Docker, use our well
|
||||||
maintained searxng-docker_ image which includes
|
maintained searxng-docker_ image which includes
|
||||||
|
|
||||||
- :ref:`protection <searx filtron>` `[filtron]`_,
|
- :ref:`protection <searxng filtron>` `[filtron]`_,
|
||||||
- a :ref:`result proxy <searx morty>` `[morty]`_ and
|
- a :ref:`result proxy <searxng morty>` `[morty]`_ and
|
||||||
- a HTTPS reverse proxy `[caddy]`_.
|
- a HTTPS reverse proxy `[caddy]`_.
|
||||||
|
|
||||||
Make sure you have `installed Docker <https://docs.docker.com/get-docker/>`_ and
|
Make sure you have `installed Docker <https://docs.docker.com/get-docker/>`_ and
|
||||||
|
@ -63,7 +63,7 @@ instance using `docker run <https://docs.docker.com/engine/reference/run/>`_:
|
||||||
$ docker pull searxng/searxng
|
$ docker pull searxng/searxng
|
||||||
$ docker run --rm \
|
$ docker run --rm \
|
||||||
-d -p ${PORT}:8080 \
|
-d -p ${PORT}:8080 \
|
||||||
-v "${PWD}/searx:/etc/searx" \
|
-v "${PWD}/searxng:/etc/searxng" \
|
||||||
-e "BASE_URL=http://localhost:$PORT/" \
|
-e "BASE_URL=http://localhost:$PORT/" \
|
||||||
-e "INSTANCE_NAME=my-instance" \
|
-e "INSTANCE_NAME=my-instance" \
|
||||||
searxng/searxng
|
searxng/searxng
|
||||||
|
@ -75,7 +75,7 @@ Open your WEB browser and visit the URL:
|
||||||
|
|
||||||
$ xdg-open "http://localhost:$PORT"
|
$ xdg-open "http://localhost:$PORT"
|
||||||
|
|
||||||
Inside ``${PWD}/searx``, you will find ``settings.yml`` and ``uwsgi.ini``. You
|
Inside ``${PWD}/searxng``, you will find ``settings.yml`` and ``uwsgi.ini``. You
|
||||||
can modify these files according to your needs and restart the Docker image.
|
can modify these files according to your needs and restart the Docker image.
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
@ -139,7 +139,7 @@ Build the image
|
||||||
It's also possible to build SearXNG from the embedded :origin:`Dockerfile`::
|
It's also possible to build SearXNG from the embedded :origin:`Dockerfile`::
|
||||||
|
|
||||||
$ git clone https://github.com/searxng/searxng.git
|
$ git clone https://github.com/searxng/searxng.git
|
||||||
$ cd searx
|
$ cd searxng
|
||||||
$ make docker.build
|
$ make docker.build
|
||||||
...
|
...
|
||||||
Successfully built 49586c016434
|
Successfully built 49586c016434
|
||||||
|
|
|
@ -34,13 +34,13 @@ Install with nginx
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
**Install** :ref:`nginx searx site` using :ref:`filtron.sh <filtron.sh overview>`
|
**Install** :ref:`nginx searxng site` using :ref:`filtron.sh <filtron.sh overview>`
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ sudo -H ./utils/filtron.sh nginx install
|
$ sudo -H ./utils/filtron.sh nginx install
|
||||||
|
|
||||||
**Install** :ref:`nginx searx site` using :ref:`morty.sh <morty.sh overview>`
|
**Install** :ref:`nginx searxng site` using :ref:`morty.sh <morty.sh overview>`
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
|
@ -126,7 +126,7 @@ depends on the linux distribution:
|
||||||
|
|
||||||
include /etc/nginx/conf.d/*.conf;
|
include /etc/nginx/conf.d/*.conf;
|
||||||
|
|
||||||
.. _nginx searx site:
|
.. _nginx searxng site:
|
||||||
|
|
||||||
A nginx SearXNG site
|
A nginx SearXNG site
|
||||||
====================
|
====================
|
||||||
|
@ -146,12 +146,12 @@ Started wiki`_ is always a good resource *to keep in the pocket*.
|
||||||
|
|
||||||
.. group-tab:: Ubuntu / debian
|
.. group-tab:: Ubuntu / debian
|
||||||
|
|
||||||
Create configuration at ``/etc/nginx/sites-available/searx`` and place a
|
Create configuration at ``/etc/nginx/sites-available/searxng`` and place a
|
||||||
symlink to sites-enabled:
|
symlink to sites-enabled:
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
sudo -H ln -s /etc/nginx/sites-available/searx /etc/nginx/sites-enabled/searx
|
sudo -H ln -s /etc/nginx/sites-available/searxng /etc/nginx/sites-enabled/searxng
|
||||||
|
|
||||||
.. group-tab:: Arch Linux
|
.. group-tab:: Arch Linux
|
||||||
|
|
||||||
|
@ -160,10 +160,10 @@ Started wiki`_ is always a good resource *to keep in the pocket*.
|
||||||
|
|
||||||
.. group-tab:: Fedora / RHEL
|
.. group-tab:: Fedora / RHEL
|
||||||
|
|
||||||
Create configuration at ``/etc/nginx/conf.d/searx`` and place a
|
Create configuration at ``/etc/nginx/conf.d/searxng`` and place a
|
||||||
symlink to sites-enabled:
|
symlink to sites-enabled:
|
||||||
|
|
||||||
.. _nginx searx via filtron plus morty:
|
.. _nginx searxng via filtron plus morty:
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
|
@ -177,9 +177,9 @@ Started wiki`_ is always a good resource *to keep in the pocket*.
|
||||||
|
|
||||||
.. code:: nginx
|
.. code:: nginx
|
||||||
|
|
||||||
# https://example.org/searx
|
# https://example.org/searxng
|
||||||
|
|
||||||
location /searx {
|
location /searxng {
|
||||||
proxy_pass http://127.0.0.1:4004/;
|
proxy_pass http://127.0.0.1:4004/;
|
||||||
|
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
|
@ -187,15 +187,15 @@ Started wiki`_ is always a good resource *to keep in the pocket*.
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Scheme $scheme;
|
proxy_set_header X-Scheme $scheme;
|
||||||
proxy_set_header X-Script-Name /searx;
|
proxy_set_header X-Script-Name /searxng;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /searx/static/ {
|
location /searxng/static/ {
|
||||||
alias /usr/local/searx/searx-src/searx/static/;
|
alias /usr/local/searxng/searxng-src/searxng/static/;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
2. Configure reverse proxy for :ref:`morty <searx morty>`, listening on
|
2. Configure reverse proxy for :ref:`morty <searxng morty>`, listening on
|
||||||
*localhost 3000*:
|
*localhost 3000*:
|
||||||
|
|
||||||
.. code:: nginx
|
.. code:: nginx
|
||||||
|
@ -212,8 +212,8 @@ Started wiki`_ is always a good resource *to keep in the pocket*.
|
||||||
proxy_set_header X-Scheme $scheme;
|
proxy_set_header X-Scheme $scheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
For a fully result proxification add :ref:`morty's <searx morty>` **public
|
For a fully result proxification add :ref:`morty's <searxng morty>` **public
|
||||||
URL** to your :origin:`searx/settings.yml`:
|
URL** to your :origin:`searxng/settings.yml`:
|
||||||
|
|
||||||
.. code:: yaml
|
.. code:: yaml
|
||||||
|
|
||||||
|
@ -228,10 +228,10 @@ Started wiki`_ is always a good resource *to keep in the pocket*.
|
||||||
|
|
||||||
.. group-tab:: proxy or uWSGI
|
.. group-tab:: proxy or uWSGI
|
||||||
|
|
||||||
Be warned, with this setup, your instance isn't :ref:`protected <searx
|
Be warned, with this setup, your instance isn't :ref:`protected <searxng
|
||||||
filtron>`. Nevertheless it is good enough for intranet usage and it is a
|
filtron>`. Nevertheless it is good enough for intranet usage and it is a
|
||||||
excellent example of; *how different services can be set up*. The next
|
excellent example of; *how different services can be set up*. The next
|
||||||
example shows a reverse proxy configuration wrapping the :ref:`searx-uWSGI
|
example shows a reverse proxy configuration wrapping the :ref:`searxng-uWSGI
|
||||||
application <uwsgi configuration>`, listening on ``http =
|
application <uwsgi configuration>`, listening on ``http =
|
||||||
127.0.0.1:8888``.
|
127.0.0.1:8888``.
|
||||||
|
|
||||||
|
@ -251,7 +251,7 @@ Started wiki`_ is always a good resource *to keep in the pocket*.
|
||||||
|
|
||||||
Alternatively you can use the `uWSGI support from nginx`_ via unix
|
Alternatively you can use the `uWSGI support from nginx`_ via unix
|
||||||
sockets. For socket communication, you have to activate ``socket =
|
sockets. For socket communication, you have to activate ``socket =
|
||||||
/run/uwsgi/app/searx/socket`` and comment out the ``http =
|
/run/uwsgi/app/searxng/socket`` and comment out the ``http =
|
||||||
127.0.0.1:8888`` configuration in your :ref:`uwsgi ini file <uwsgi
|
127.0.0.1:8888`` configuration in your :ref:`uwsgi ini file <uwsgi
|
||||||
configuration>`.
|
configuration>`.
|
||||||
|
|
||||||
|
@ -259,8 +259,8 @@ Started wiki`_ is always a good resource *to keep in the pocket*.
|
||||||
port 80 (IPv4 and IPv6 http://[::]:80). The uWSGI app is configured at
|
port 80 (IPv4 and IPv6 http://[::]:80). The uWSGI app is configured at
|
||||||
location ``/`` by importing the `uwsgi_params`_ and passing requests to
|
location ``/`` by importing the `uwsgi_params`_ and passing requests to
|
||||||
the uWSGI socket (``uwsgi_pass``). The ``server``\'s root points to the
|
the uWSGI socket (``uwsgi_pass``). The ``server``\'s root points to the
|
||||||
:ref:`searx-src clone <searx-src>` and wraps directly the
|
:ref:`searxng-src clone <searxng-src>` and wraps directly the
|
||||||
:origin:`searx/static/` content at ``location /static``.
|
:origin:`searxng/static/` content at ``location /static``.
|
||||||
|
|
||||||
.. code:: nginx
|
.. code:: nginx
|
||||||
|
|
||||||
|
@ -273,73 +273,73 @@ Started wiki`_ is always a good resource *to keep in the pocket*.
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
include uwsgi_params;
|
include uwsgi_params;
|
||||||
uwsgi_pass unix:/run/uwsgi/app/searx/socket;
|
uwsgi_pass unix:/run/uwsgi/app/searxng/socket;
|
||||||
}
|
}
|
||||||
|
|
||||||
root /usr/local/searx/searx-src/searx;
|
root /usr/local/searxng/searxng-src/searxng;
|
||||||
location /static { }
|
location /static { }
|
||||||
}
|
}
|
||||||
|
|
||||||
If not already exists, create a folder for the unix sockets, which can be
|
If not already exists, create a folder for the unix sockets, which can be
|
||||||
used by the searx account:
|
used by the searxng account:
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
mkdir -p /run/uwsgi/app/searx/
|
mkdir -p /run/uwsgi/app/searxng/
|
||||||
sudo -H chown -R searx:searx /run/uwsgi/app/searx/
|
sudo -H chown -R searxng:searxng /run/uwsgi/app/searxng/
|
||||||
|
|
||||||
.. group-tab:: \.\. at subdir URL
|
.. group-tab:: \.\. at subdir URL
|
||||||
|
|
||||||
Be warned, with these setups, your instance isn't :ref:`protected <searx
|
Be warned, with these setups, your instance isn't :ref:`protected <searxng
|
||||||
filtron>`. The examples are just here to demonstrate how to export the
|
filtron>`. The examples are just here to demonstrate how to export the
|
||||||
SearXNG application from a subdirectory URL ``https://example.org/searx/``.
|
SearXNG application from a subdirectory URL ``https://example.org/searxng/``.
|
||||||
|
|
||||||
.. code:: nginx
|
.. code:: nginx
|
||||||
|
|
||||||
# https://hostname.local/searx
|
# https://hostname.local/searxng
|
||||||
|
|
||||||
location /searx {
|
location /searxng {
|
||||||
proxy_pass http://127.0.0.1:8888;
|
proxy_pass http://127.0.0.1:8888;
|
||||||
|
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
proxy_set_header Connection $http_connection;
|
proxy_set_header Connection $http_connection;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Scheme $scheme;
|
proxy_set_header X-Scheme $scheme;
|
||||||
proxy_set_header X-Script-Name /searx;
|
proxy_set_header X-Script-Name /searxng;
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /searx/static/ {
|
location /searxng/static/ {
|
||||||
alias /usr/local/searx/searx-src/searx/static/;
|
alias /usr/local/searxng/searxng-src/searxng/static/;
|
||||||
}
|
}
|
||||||
|
|
||||||
The ``X-Script-Name /searx`` is needed by the SearXNG implementation to
|
The ``X-Script-Name /searxng`` is needed by the SearXNG implementation to
|
||||||
calculate relative URLs correct. The next example shows a uWSGI
|
calculate relative URLs correct. The next example shows a uWSGI
|
||||||
configuration. Since there are no HTTP headers in a (u)WSGI protocol, the
|
configuration. Since there are no HTTP headers in a (u)WSGI protocol, the
|
||||||
value is shipped via the SCRIPT_NAME_ in the WSGI environment.
|
value is shipped via the SCRIPT_NAME_ in the WSGI environment.
|
||||||
|
|
||||||
.. code:: nginx
|
.. code:: nginx
|
||||||
|
|
||||||
# https://hostname.local/searx
|
# https://hostname.local/searxng
|
||||||
|
|
||||||
location /searx {
|
location /searxng {
|
||||||
uwsgi_param SCRIPT_NAME /searx;
|
uwsgi_param SCRIPT_NAME /searxng;
|
||||||
include uwsgi_params;
|
include uwsgi_params;
|
||||||
uwsgi_pass unix:/run/uwsgi/app/searx/socket;
|
uwsgi_pass unix:/run/uwsgi/app/searxng/socket;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /searx/static/ {
|
location /searxng/static/ {
|
||||||
alias /usr/local/searx/searx-src/searx/;
|
alias /usr/local/searxng/searxng-src/searxng/;
|
||||||
}
|
}
|
||||||
|
|
||||||
For SearXNG to work correctly the ``base_url`` must be set in the
|
For SearXNG to work correctly the ``base_url`` must be set in the
|
||||||
:origin:`searx/settings.yml`.
|
:origin:`searxng/settings.yml`.
|
||||||
|
|
||||||
.. code:: yaml
|
.. code:: yaml
|
||||||
|
|
||||||
server:
|
server:
|
||||||
# replace example.org with your server's public name
|
# replace example.org with your server's public name
|
||||||
base_url : https://example.org/searx/
|
base_url : https://example.org/searxng/
|
||||||
|
|
||||||
|
|
||||||
Restart service:
|
Restart service:
|
||||||
|
@ -351,21 +351,21 @@ Restart service:
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
sudo -H systemctl restart nginx
|
sudo -H systemctl restart nginx
|
||||||
sudo -H service uwsgi restart searx
|
sudo -H service uwsgi restart searxng
|
||||||
|
|
||||||
.. group-tab:: Arch Linux
|
.. group-tab:: Arch Linux
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
sudo -H systemctl restart nginx
|
sudo -H systemctl restart nginx
|
||||||
sudo -H systemctl restart uwsgi@searx
|
sudo -H systemctl restart uwsgi@searxng
|
||||||
|
|
||||||
.. group-tab:: Fedora
|
.. group-tab:: Fedora
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
sudo -H systemctl restart nginx
|
sudo -H systemctl restart nginx
|
||||||
sudo -H touch /etc/uwsgi.d/searx.ini
|
sudo -H touch /etc/uwsgi.d/searxng.ini
|
||||||
|
|
||||||
|
|
||||||
Disable logs
|
Disable logs
|
||||||
|
|
|
@ -17,51 +17,51 @@ universe repository.
|
||||||
Install packages
|
Install packages
|
||||||
================
|
================
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searxng.rst
|
||||||
:start-after: START distro-packages
|
:start-after: START distro-packages
|
||||||
:end-before: END distro-packages
|
:end-before: END distro-packages
|
||||||
|
|
||||||
.. hint::
|
.. hint::
|
||||||
|
|
||||||
This installs also the packages needed by :ref:`searx uwsgi`
|
This installs also the packages needed by :ref:`searxng uwsgi`
|
||||||
|
|
||||||
.. _create searx user:
|
.. _create searxng user:
|
||||||
|
|
||||||
Create user
|
Create user
|
||||||
===========
|
===========
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searxng.rst
|
||||||
:start-after: START create user
|
:start-after: START create user
|
||||||
:end-before: END create user
|
:end-before: END create user
|
||||||
|
|
||||||
.. _searx-src:
|
.. _searxng-src:
|
||||||
|
|
||||||
Install SearXNG & dependencies
|
Install SearXNG & dependencies
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
Start a interactive shell from new created user and clone searx:
|
Start a interactive shell from new created user and clone searxng:
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searxng.rst
|
||||||
:start-after: START clone searx
|
:start-after: START clone searxng
|
||||||
:end-before: END clone searx
|
:end-before: END clone searxng
|
||||||
|
|
||||||
In the same shell create *virtualenv*:
|
In the same shell create *virtualenv*:
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searxng.rst
|
||||||
:start-after: START create virtualenv
|
:start-after: START create virtualenv
|
||||||
:end-before: END create virtualenv
|
:end-before: END create virtualenv
|
||||||
|
|
||||||
To install searx's dependencies, exit the SearXNG *bash* session you opened above
|
To install searxng's dependencies, exit the SearXNG *bash* session you opened above
|
||||||
and restart a new. Before install, first check if your *virtualenv* was sourced
|
and restart a new. Before install, first check if your *virtualenv* was sourced
|
||||||
from the login (*~/.profile*):
|
from the login (*~/.profile*):
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searxng.rst
|
||||||
:start-after: START manage.sh update_packages
|
:start-after: START manage.sh update_packages
|
||||||
:end-before: END manage.sh update_packages
|
:end-before: END manage.sh update_packages
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
|
|
||||||
Open a second terminal for the configuration tasks and leave the ``(searx)$``
|
Open a second terminal for the configuration tasks and leave the ``(searxng)$``
|
||||||
terminal open for the tasks below.
|
terminal open for the tasks below.
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,31 +75,31 @@ Configuration
|
||||||
- :ref:`settings global`
|
- :ref:`settings global`
|
||||||
- :ref:`settings location`
|
- :ref:`settings location`
|
||||||
- :ref:`settings use_default_settings`
|
- :ref:`settings use_default_settings`
|
||||||
- :origin:`/etc/searx/settings.yml <utils/templates/etc/searx/use_default_settings.yml>`
|
- :origin:`/etc/searxng/settings.yml <utils/templates/etc/searxng/use_default_settings.yml>`
|
||||||
|
|
||||||
To create a initial ``/etc/searx/settings.yml`` you can start with a copy of the
|
To create a initial ``/etc/searxng/settings.yml`` you can start with a copy of the
|
||||||
file :origin:`utils/templates/etc/searx/use_default_settings.yml`. This setup
|
file :origin:`utils/templates/etc/searxng/use_default_settings.yml`. This setup
|
||||||
:ref:`use default settings <settings use_default_settings>` from
|
:ref:`use default settings <settings use_default_settings>` from
|
||||||
:origin:`searx/settings.yml` and is recommended since :pull-searx:`2291` is merged.
|
:origin:`searxng/settings.yml` and is recommended since :pull-searxng:`2291` is merged.
|
||||||
|
|
||||||
For a *minimal setup*, configure like shown below – replace ``searx@$(uname
|
For a *minimal setup*, configure like shown below – replace ``searxng@$(uname
|
||||||
-n)`` with a name of your choice, set ``ultrasecretkey`` -- *and/or* edit
|
-n)`` with a name of your choice, set ``ultrasecretkey`` -- *and/or* edit
|
||||||
``/etc/searx/settings.yml`` to your needs.
|
``/etc/searxng/settings.yml`` to your needs.
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searxng.rst
|
||||||
:start-after: START searx config
|
:start-after: START searxng config
|
||||||
:end-before: END searx config
|
:end-before: END searxng config
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
.. group-tab:: Use default settings
|
.. group-tab:: Use default settings
|
||||||
|
|
||||||
.. literalinclude:: ../../utils/templates/etc/searx/settings.yml
|
.. literalinclude:: ../../utils/templates/etc/searxng/settings.yml
|
||||||
:language: yaml
|
:language: yaml
|
||||||
|
|
||||||
.. group-tab:: searx/settings.yml
|
.. group-tab:: searxng/settings.yml
|
||||||
|
|
||||||
.. literalinclude:: ../../searx/settings.yml
|
.. literalinclude:: ../../searxng/settings.yml
|
||||||
:language: yaml
|
:language: yaml
|
||||||
|
|
||||||
|
|
||||||
|
@ -107,12 +107,12 @@ Check
|
||||||
=====
|
=====
|
||||||
|
|
||||||
To check your SearXNG setup, optional enable debugging and start the *webapp*.
|
To check your SearXNG setup, optional enable debugging and start the *webapp*.
|
||||||
SearXNG looks at the exported environment ``$SEARX_SETTINGS_PATH`` for a
|
SearXNG looks at the exported environment ``$SEARXNG_SETTINGS_PATH`` for a
|
||||||
configuration file.
|
configuration file.
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searxng.rst
|
||||||
:start-after: START check searx installation
|
:start-after: START check searxng installation
|
||||||
:end-before: END check searx installation
|
:end-before: END check searxng installation
|
||||||
|
|
||||||
If everything works fine, hit ``[CTRL-C]`` to stop the *webapp* and disable the
|
If everything works fine, hit ``[CTRL-C]`` to stop the *webapp* and disable the
|
||||||
debug option in ``settings.yml``. You can now exit SearXNG user bash (enter exit
|
debug option in ``settings.yml``. You can now exit SearXNG user bash (enter exit
|
|
@ -1,4 +1,4 @@
|
||||||
.. _searx uwsgi:
|
.. _searxng uwsgi:
|
||||||
|
|
||||||
=====
|
=====
|
||||||
uwsgi
|
uwsgi
|
||||||
|
@ -35,17 +35,17 @@ recommend two methods
|
||||||
`systemd.unit`_ template files as described here `One service per app in systemd`_.
|
`systemd.unit`_ template files as described here `One service per app in systemd`_.
|
||||||
|
|
||||||
There is one `systemd unit template`_ and one `uwsgi ini file`_ per uWSGI-app
|
There is one `systemd unit template`_ and one `uwsgi ini file`_ per uWSGI-app
|
||||||
placed at dedicated locations. Take archlinux and a searx.ini as example::
|
placed at dedicated locations. Take archlinux and a searxng.ini as example::
|
||||||
|
|
||||||
unit template --> /usr/lib/systemd/system/uwsgi@.service
|
unit template --> /usr/lib/systemd/system/uwsgi@.service
|
||||||
uwsgi ini files --> /etc/uwsgi/searx.ini
|
uwsgi ini files --> /etc/uwsgi/searxng.ini
|
||||||
|
|
||||||
The SearXNG app can be maintained as know from common systemd units::
|
The SearXNG app can be maintained as know from common systemd units::
|
||||||
|
|
||||||
systemctl enable uwsgi@searx
|
systemctl enable uwsgi@searxng
|
||||||
systemctl start uwsgi@searx
|
systemctl start uwsgi@searxng
|
||||||
systemctl restart uwsgi@searx
|
systemctl restart uwsgi@searxng
|
||||||
systemctl stop uwsgi@searx
|
systemctl stop uwsgi@searxng
|
||||||
|
|
||||||
The `uWSGI Emperor`_ mode which fits for maintaining a large range of uwsgi apps.
|
The `uWSGI Emperor`_ mode which fits for maintaining a large range of uwsgi apps.
|
||||||
|
|
||||||
|
@ -54,12 +54,12 @@ The `uWSGI Emperor`_ mode which fits for maintaining a large range of uwsgi apps
|
||||||
systemd unit. The Emperor service will scan specific directories for `uwsgi
|
systemd unit. The Emperor service will scan specific directories for `uwsgi
|
||||||
ini file`_\s (also know as *vassals*). If a *vassal* is added, removed or the
|
ini file`_\s (also know as *vassals*). If a *vassal* is added, removed or the
|
||||||
timestamp is modified, a corresponding action takes place: a new uWSGI
|
timestamp is modified, a corresponding action takes place: a new uWSGI
|
||||||
instance is started, reload or stopped. Take Fedora and a searx.ini as
|
instance is started, reload or stopped. Take Fedora and a searxng.ini as
|
||||||
example::
|
example::
|
||||||
|
|
||||||
to start a new SearXNG instance create --> /etc/uwsgi.d/searx.ini
|
to start a new SearXNG instance create --> /etc/uwsgi.d/searxng.ini
|
||||||
to reload the instance edit timestamp --> touch /etc/uwsgi.d/searx.ini
|
to reload the instance edit timestamp --> touch /etc/uwsgi.d/searxng.ini
|
||||||
to stop instance remove ini --> rm /etc/uwsgi.d/searx.ini
|
to stop instance remove ini --> rm /etc/uwsgi.d/searxng.ini
|
||||||
|
|
||||||
Distributors
|
Distributors
|
||||||
============
|
============
|
||||||
|
@ -80,15 +80,15 @@ do similar for the uWSGI infrastructure (with less comfort), the folders are::
|
||||||
|
|
||||||
The `uwsgi ini file`_ is enabled by a symbolic link::
|
The `uwsgi ini file`_ is enabled by a symbolic link::
|
||||||
|
|
||||||
ln -s /etc/uwsgi/apps-available/searx.ini /etc/uwsgi/apps-enabled/
|
ln -s /etc/uwsgi/apps-available/searxng.ini /etc/uwsgi/apps-enabled/
|
||||||
|
|
||||||
From debian's documentation (``/usr/share/doc/uwsgi/README.Debian.gz``): You
|
From debian's documentation (``/usr/share/doc/uwsgi/README.Debian.gz``): You
|
||||||
could control specific instance(s) by issuing::
|
could control specific instance(s) by issuing::
|
||||||
|
|
||||||
service uwsgi <command> <confname> <confname> ...
|
service uwsgi <command> <confname> <confname> ...
|
||||||
|
|
||||||
sudo -H service uwsgi start searx
|
sudo -H service uwsgi start searxng
|
||||||
sudo -H service uwsgi stop searx
|
sudo -H service uwsgi stop searxng
|
||||||
|
|
||||||
My experience is, that this command is a bit buggy.
|
My experience is, that this command is a bit buggy.
|
||||||
|
|
||||||
|
@ -104,47 +104,47 @@ restart the uwsgi application.
|
||||||
|
|
||||||
.. group-tab:: Ubuntu / debian
|
.. group-tab:: Ubuntu / debian
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searxng.rst
|
||||||
:start-after: START searx uwsgi-description ubuntu-20.04
|
:start-after: START searxng uwsgi-description ubuntu-20.04
|
||||||
:end-before: END searx uwsgi-description ubuntu-20.04
|
:end-before: END searxng uwsgi-description ubuntu-20.04
|
||||||
|
|
||||||
.. hotfix: a bug group-tab need this comment
|
.. hotfix: a bug group-tab need this comment
|
||||||
|
|
||||||
.. group-tab:: Arch Linux
|
.. group-tab:: Arch Linux
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searxng.rst
|
||||||
:start-after: START searx uwsgi-description arch
|
:start-after: START searxng uwsgi-description arch
|
||||||
:end-before: END searx uwsgi-description arch
|
:end-before: END searxng uwsgi-description arch
|
||||||
|
|
||||||
.. hotfix: a bug group-tab need this comment
|
.. hotfix: a bug group-tab need this comment
|
||||||
|
|
||||||
.. group-tab:: Fedora / RHEL
|
.. group-tab:: Fedora / RHEL
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searxng.rst
|
||||||
:start-after: START searx uwsgi-description fedora
|
:start-after: START searxng uwsgi-description fedora
|
||||||
:end-before: END searx uwsgi-description fedora
|
:end-before: END searxng uwsgi-description fedora
|
||||||
|
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
.. group-tab:: Ubuntu / debian
|
.. group-tab:: Ubuntu / debian
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searxng.rst
|
||||||
:start-after: START searx uwsgi-appini ubuntu-20.04
|
:start-after: START searxng uwsgi-appini ubuntu-20.04
|
||||||
:end-before: END searx uwsgi-appini ubuntu-20.04
|
:end-before: END searxng uwsgi-appini ubuntu-20.04
|
||||||
|
|
||||||
.. hotfix: a bug group-tab need this comment
|
.. hotfix: a bug group-tab need this comment
|
||||||
|
|
||||||
.. group-tab:: Arch Linux
|
.. group-tab:: Arch Linux
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searxng.rst
|
||||||
:start-after: START searx uwsgi-appini arch
|
:start-after: START searxng uwsgi-appini arch
|
||||||
:end-before: END searx uwsgi-appini arch
|
:end-before: END searxng uwsgi-appini arch
|
||||||
|
|
||||||
.. hotfix: a bug group-tab need this comment
|
.. hotfix: a bug group-tab need this comment
|
||||||
|
|
||||||
.. group-tab:: Fedora / RHEL
|
.. group-tab:: Fedora / RHEL
|
||||||
|
|
||||||
.. kernel-include:: $DOCS_BUILD/includes/searx.rst
|
.. kernel-include:: $DOCS_BUILD/includes/searxng.rst
|
||||||
:start-after: START searx uwsgi-appini fedora
|
:start-after: START searxng uwsgi-appini fedora
|
||||||
:end-before: END searx uwsgi-appini fedora
|
:end-before: END searxng uwsgi-appini fedora
|
||||||
|
|
|
@ -27,7 +27,7 @@ Installation scripts
|
||||||
|
|
||||||
.. sidebar:: Update OS first!
|
.. sidebar:: Update OS first!
|
||||||
|
|
||||||
To avoid unwanted side effects, update your OS before installing searx.
|
To avoid unwanted side effects, update your OS before installing searxng.
|
||||||
|
|
||||||
The following will install a setup as shown in :ref:`architecture`. First you
|
The following will install a setup as shown in :ref:`architecture`. First you
|
||||||
need to get a clone. The clone is only needed for the installation procedure
|
need to get a clone. The clone is only needed for the installation procedure
|
||||||
|
@ -35,29 +35,29 @@ and some maintenance tasks (alternatively you can create your own fork).
|
||||||
|
|
||||||
For the installation procedure, use a *sudoer* login to run the scripts. If you
|
For the installation procedure, use a *sudoer* login to run the scripts. If you
|
||||||
install from ``root``, take into account that the scripts are creating a
|
install from ``root``, take into account that the scripts are creating a
|
||||||
``searx``, a ``filtron`` and a ``morty`` user. In the installation procedure
|
``searxng``, a ``filtron`` and a ``morty`` user. In the installation procedure
|
||||||
these new created users do need read access to the clone of searx, which is not
|
these new created users do need read access to the clone of searxng, which is not
|
||||||
the case if you clone into a folder below ``/root``.
|
the case if you clone into a folder below ``/root``.
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ cd ~/Downloads
|
$ cd ~/Downloads
|
||||||
$ git clone https://github.com/searxng/searxng.git searx
|
$ git clone https://github.com/searxng/searxng.git searxng
|
||||||
$ cd searx
|
$ cd searxng
|
||||||
|
|
||||||
.. sidebar:: further read
|
.. sidebar:: further read
|
||||||
|
|
||||||
- :ref:`toolboxing`
|
- :ref:`toolboxing`
|
||||||
- :ref:`update searx`
|
- :ref:`update searxng`
|
||||||
- :ref:`inspect searx`
|
- :ref:`inspect searxng`
|
||||||
|
|
||||||
**Install** :ref:`SearXNG service <searx.sh>`
|
**Install** :ref:`SearXNG service <searxng.sh>`
|
||||||
|
|
||||||
This installs SearXNG as described in :ref:`installation basic`.
|
This installs SearXNG as described in :ref:`installation basic`.
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ sudo -H ./utils/searx.sh install all
|
$ sudo -H ./utils/searxng.sh install all
|
||||||
|
|
||||||
**Install** :ref:`filtron reverse proxy <filtron.sh>`
|
**Install** :ref:`filtron reverse proxy <filtron.sh>`
|
||||||
|
|
||||||
|
@ -86,12 +86,12 @@ install the SearXNG plugins from **The Green Web Foundation** `[ref]
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ sudo -H ./utils/searx.sh shell
|
$ sudo -H ./utils/searxng.sh shell
|
||||||
// exit with [CTRL-D]
|
// exit with [CTRL-D]
|
||||||
(searx-pyenv) searx@ryzen:~$ pip install git+https://github.com/return42/tgwf-searx-plugins
|
(searxng-pyenv) searxng@ryzen:~$ pip install git+https://github.com/return42/tgwf-searx-plugins
|
||||||
|
|
||||||
In the :ref:`settings.yml` activate the ``plugins:`` section and add module
|
In the :ref:`settings.yml` activate the ``plugins:`` section and add module
|
||||||
``only_show_green_results`` from tgwf-searx-plugins.
|
``only_show_green_results`` from tgwf-searxng-plugins.
|
||||||
|
|
||||||
.. code:: yaml
|
.. code:: yaml
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
.. _searx morty:
|
.. _searxng morty:
|
||||||
|
|
||||||
=========================
|
=========================
|
||||||
How to setup result proxy
|
How to setup result proxy
|
||||||
|
@ -15,9 +15,9 @@ How to setup result proxy
|
||||||
By default SearXNG can only act as an image proxy for result images, but it is
|
By default SearXNG can only act as an image proxy for result images, but it is
|
||||||
possible to proxify all the result URLs with an external service, morty_.
|
possible to proxify all the result URLs with an external service, morty_.
|
||||||
|
|
||||||
To use this feature, morty has to be installed and activated in searx's
|
To use this feature, morty has to be installed and activated in searxng's
|
||||||
``settings.yml``. Add the following snippet to your ``settings.yml`` and
|
``settings.yml``. Add the following snippet to your ``settings.yml`` and
|
||||||
restart searx:
|
restart searxng:
|
||||||
|
|
||||||
.. code:: yaml
|
.. code:: yaml
|
||||||
|
|
||||||
|
@ -30,8 +30,8 @@ instances without a HTTP proxy. If your morty service is public, the url is the
|
||||||
address of the reverse proxy (e.g ``https://example.org/morty``).
|
address of the reverse proxy (e.g ``https://example.org/morty``).
|
||||||
|
|
||||||
For more information about *result proxy* have a look at *"SearXNG via filtron
|
For more information about *result proxy* have a look at *"SearXNG via filtron
|
||||||
plus morty"* in the :ref:`nginx <nginx searx via filtron plus morty>` and
|
plus morty"* in the :ref:`nginx <nginx searxng via filtron plus morty>` and
|
||||||
:ref:`apache <apache searx via filtron plus morty>` sections.
|
:ref:`apache <apache searxng via filtron plus morty>` sections.
|
||||||
|
|
||||||
``url``
|
``url``
|
||||||
Is the address of the running morty service.
|
Is the address of the running morty service.
|
||||||
|
|
|
@ -14,7 +14,7 @@ Configuration defaults (at built time):
|
||||||
|
|
||||||
.. _configured plugins:
|
.. _configured plugins:
|
||||||
|
|
||||||
.. jinja:: searx
|
.. jinja:: searxng
|
||||||
|
|
||||||
.. flat-table:: Plugins configured at built time (defaults)
|
.. flat-table:: Plugins configured at built time (defaults)
|
||||||
:header-rows: 1
|
:header-rows: 1
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.. _update searx:
|
.. _update searxng:
|
||||||
|
|
||||||
=============
|
=============
|
||||||
How to update
|
How to update
|
||||||
|
@ -7,11 +7,11 @@ How to update
|
||||||
How to update depends on the :ref:`installation` method. If you have used the
|
How to update depends on the :ref:`installation` method. If you have used the
|
||||||
:ref:`installation scripts`, use ``update`` command from the scripts.
|
:ref:`installation scripts`, use ``update`` command from the scripts.
|
||||||
|
|
||||||
**Update** :ref:`SearXNG service <searx.sh>`
|
**Update** :ref:`SearXNG service <searxng.sh>`
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
sudo -H ./utils/searx.sh update searx
|
sudo -H ./utils/searxng.sh update searxng
|
||||||
|
|
||||||
**Update** :ref:`filtron reverse proxy <filtron.sh>`
|
**Update** :ref:`filtron reverse proxy <filtron.sh>`
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ How to update depends on the :ref:`installation` method. If you have used the
|
||||||
|
|
||||||
$ sudo -H ./utils/morty.sh update morty
|
$ sudo -H ./utils/morty.sh update morty
|
||||||
|
|
||||||
.. _inspect searx:
|
.. _inspect searxng:
|
||||||
|
|
||||||
======================
|
======================
|
||||||
How to inspect & debug
|
How to inspect & debug
|
||||||
|
@ -39,11 +39,11 @@ How to inspect & debug
|
||||||
How to debug depends on the :ref:`installation` method. If you have used the
|
How to debug depends on the :ref:`installation` method. If you have used the
|
||||||
:ref:`installation scripts`, use ``inspect`` command from the scripts.
|
:ref:`installation scripts`, use ``inspect`` command from the scripts.
|
||||||
|
|
||||||
**Inspect** :ref:`SearXNG service <searx.sh>`
|
**Inspect** :ref:`SearXNG service <searxng.sh>`
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
sudo -H ./utils/searx.sh inspect service
|
sudo -H ./utils/searxng.sh inspect service
|
||||||
|
|
||||||
**Inspect** :ref:`filtron reverse proxy <filtron.sh>`
|
**Inspect** :ref:`filtron reverse proxy <filtron.sh>`
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.. template evaluated by: ./utils/searx.sh docs
|
.. template evaluated by: ./utils/searxng.sh docs
|
||||||
.. hint: all dollar-names are variables, dollar sign itself is quoted by: \\$
|
.. hint: all dollar-names are variables, dollar sign itself is quoted by: \\$
|
||||||
|
|
||||||
.. START distro-packages
|
.. START distro-packages
|
||||||
|
@ -72,7 +72,7 @@ ${fedora_build}
|
||||||
|
|
||||||
.. END create user
|
.. END create user
|
||||||
|
|
||||||
.. START clone searx
|
.. START clone searxng
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
|
@ -81,9 +81,9 @@ ${fedora_build}
|
||||||
.. code-block:: sh
|
.. code-block:: sh
|
||||||
|
|
||||||
$ sudo -H -u ${SERVICE_USER} -i
|
$ sudo -H -u ${SERVICE_USER} -i
|
||||||
(${SERVICE_USER})$ git clone \"$GIT_URL\" \"$SEARX_SRC\"
|
(${SERVICE_USER})$ git clone \"$GIT_URL\" \"$SEARXNG_SRC\"
|
||||||
|
|
||||||
.. END clone searx
|
.. END clone searxng
|
||||||
|
|
||||||
.. START create virtualenv
|
.. START create virtualenv
|
||||||
|
|
||||||
|
@ -93,8 +93,8 @@ ${fedora_build}
|
||||||
|
|
||||||
.. code-block:: sh
|
.. code-block:: sh
|
||||||
|
|
||||||
(${SERVICE_USER})$ python3 -m venv \"${SEARX_PYENV}\"
|
(${SERVICE_USER})$ python3 -m venv \"${SEARXNG_PYENV}\"
|
||||||
(${SERVICE_USER})$ echo \". ${SEARX_PYENV}/bin/activate\" >> \"$SERVICE_HOME/.profile\"
|
(${SERVICE_USER})$ echo \". ${SEARXNG_PYENV}/bin/activate\" >> \"$SERVICE_HOME/.profile\"
|
||||||
|
|
||||||
.. END create virtualenv
|
.. END create virtualenv
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ ${fedora_build}
|
||||||
$ sudo -H -u ${SERVICE_USER} -i
|
$ sudo -H -u ${SERVICE_USER} -i
|
||||||
|
|
||||||
(${SERVICE_USER})$ command -v python && python --version
|
(${SERVICE_USER})$ command -v python && python --version
|
||||||
$SEARX_PYENV/bin/python
|
$SEARXNG_PYENV/bin/python
|
||||||
Python 3.8.1
|
Python 3.8.1
|
||||||
|
|
||||||
# update pip's boilerplate ..
|
# update pip's boilerplate ..
|
||||||
|
@ -118,14 +118,14 @@ ${fedora_build}
|
||||||
pip install -U wheel
|
pip install -U wheel
|
||||||
pip install -U pyyaml
|
pip install -U pyyaml
|
||||||
|
|
||||||
# jump to searx's working tree and install SearXNG into virtualenv
|
# jump to searxng's working tree and install SearXNG into virtualenv
|
||||||
(${SERVICE_USER})$ cd \"$SEARX_SRC\"
|
(${SERVICE_USER})$ cd \"$SEARXNG_SRC\"
|
||||||
(${SERVICE_USER})$ pip install -e .
|
(${SERVICE_USER})$ pip install -e .
|
||||||
|
|
||||||
|
|
||||||
.. END manage.sh update_packages
|
.. END manage.sh update_packages
|
||||||
|
|
||||||
.. START searx config
|
.. START searxng config
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
|
@ -133,17 +133,17 @@ ${fedora_build}
|
||||||
|
|
||||||
.. code-block:: sh
|
.. code-block:: sh
|
||||||
|
|
||||||
$ sudo -H mkdir -p \"$(dirname ${SEARX_SETTINGS_PATH})\"
|
$ sudo -H mkdir -p \"$(dirname ${SEARXNG_SETTINGS_PATH})\"
|
||||||
$ sudo -H cp \"$SEARX_SRC/utils/templates/etc/searx/settings.yml\" \\
|
$ sudo -H cp \"$SEARXNG_SRC/utils/templates/etc/searxng/settings.yml\" \\
|
||||||
\"${SEARX_SETTINGS_PATH}\"
|
\"${SEARXNG_SETTINGS_PATH}\"
|
||||||
|
|
||||||
.. group-tab:: searx/settings.yml
|
.. group-tab:: searxng/settings.yml
|
||||||
|
|
||||||
.. code-block:: sh
|
.. code-block:: sh
|
||||||
|
|
||||||
$ sudo -H mkdir -p \"$(dirname ${SEARX_SETTINGS_PATH})\"
|
$ sudo -H mkdir -p \"$(dirname ${SEARXNG_SETTINGS_PATH})\"
|
||||||
$ sudo -H cp \"$SEARX_SRC/searx/settings.yml\" \\
|
$ sudo -H cp \"$SEARXNG_SRC/searxng/settings.yml\" \\
|
||||||
\"${SEARX_SETTINGS_PATH}\"
|
\"${SEARXNG_SETTINGS_PATH}\"
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
|
@ -151,11 +151,11 @@ ${fedora_build}
|
||||||
|
|
||||||
.. code-block:: sh
|
.. code-block:: sh
|
||||||
|
|
||||||
$ sudo -H sed -i -e \"s/ultrasecretkey/\$(openssl rand -hex 16)/g\" \"$SEARX_SETTINGS_PATH\"
|
$ sudo -H sed -i -e \"s/ultrasecretkey/\$(openssl rand -hex 16)/g\" \"$SEARXNG_SETTINGS_PATH\"
|
||||||
|
|
||||||
.. END searx config
|
.. END searxng config
|
||||||
|
|
||||||
.. START check searx installation
|
.. START check searxng installation
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
|
@ -164,18 +164,18 @@ ${fedora_build}
|
||||||
.. code-block:: sh
|
.. code-block:: sh
|
||||||
|
|
||||||
# enable debug ..
|
# enable debug ..
|
||||||
$ sudo -H sed -i -e \"s/debug : False/debug : True/g\" \"$SEARX_SETTINGS_PATH\"
|
$ sudo -H sed -i -e \"s/debug : False/debug : True/g\" \"$SEARXNG_SETTINGS_PATH\"
|
||||||
|
|
||||||
# start webapp
|
# start webapp
|
||||||
$ sudo -H -u ${SERVICE_USER} -i
|
$ sudo -H -u ${SERVICE_USER} -i
|
||||||
(${SERVICE_USER})$ cd ${SEARX_SRC}
|
(${SERVICE_USER})$ cd ${SEARXNG_SRC}
|
||||||
(${SERVICE_USER})$ export SEARX_SETTINGS_PATH=\"${SEARX_SETTINGS_PATH}\"
|
(${SERVICE_USER})$ export SEARXNG_SETTINGS_PATH=\"${SEARXNG_SETTINGS_PATH}\"
|
||||||
(${SERVICE_USER})$ python searx/webapp.py
|
(${SERVICE_USER})$ python searxng/webapp.py
|
||||||
|
|
||||||
# disable debug
|
# disable debug
|
||||||
$ sudo -H sed -i -e \"s/debug : True/debug : False/g\" \"$SEARX_SETTINGS_PATH\"
|
$ sudo -H sed -i -e \"s/debug : True/debug : False/g\" \"$SEARXNG_SETTINGS_PATH\"
|
||||||
|
|
||||||
Open WEB browser and visit http://$SEARX_INTERNAL_HTTP . If you are inside a
|
Open WEB browser and visit http://$SEARXNG_INTERNAL_HTTP . If you are inside a
|
||||||
container or in a script, test with curl:
|
container or in a script, test with curl:
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
@ -184,13 +184,13 @@ container or in a script, test with curl:
|
||||||
|
|
||||||
.. code-block:: sh
|
.. code-block:: sh
|
||||||
|
|
||||||
$ xdg-open http://$SEARX_INTERNAL_HTTP
|
$ xdg-open http://$SEARXNG_INTERNAL_HTTP
|
||||||
|
|
||||||
.. group-tab:: curl
|
.. group-tab:: curl
|
||||||
|
|
||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
|
|
||||||
$ curl --location --verbose --head --insecure $SEARX_INTERNAL_HTTP
|
$ curl --location --verbose --head --insecure $SEARXNG_INTERNAL_HTTP
|
||||||
|
|
||||||
* Trying 127.0.0.1:8888...
|
* Trying 127.0.0.1:8888...
|
||||||
* TCP_NODELAY set
|
* TCP_NODELAY set
|
||||||
|
@ -206,4 +206,4 @@ container or in a script, test with curl:
|
||||||
HTTP/1.0 200 OK
|
HTTP/1.0 200 OK
|
||||||
...
|
...
|
||||||
|
|
||||||
.. END check searx installation
|
.. END check searxng installation
|
26
docs/conf.py
26
docs/conf.py
|
@ -4,8 +4,8 @@
|
||||||
import sys, os
|
import sys, os
|
||||||
from pallets_sphinx_themes import ProjectLink
|
from pallets_sphinx_themes import ProjectLink
|
||||||
|
|
||||||
from searx import get_setting
|
from searxng import get_setting
|
||||||
from searx.version import VERSION_STRING, GIT_URL, GIT_BRANCH
|
from searxng.version import VERSION_STRING, GIT_URL, GIT_BRANCH
|
||||||
|
|
||||||
# Project --------------------------------------------------------------
|
# Project --------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ copyright = '2021 SearXNG team, 2015-2021 Adam Tauber, Noémi Ványi'
|
||||||
author = '2021 SearXNG team, 2015-2021 Adam Tauber'
|
author = '2021 SearXNG team, 2015-2021 Adam Tauber'
|
||||||
release, version = VERSION_STRING, VERSION_STRING
|
release, version = VERSION_STRING, VERSION_STRING
|
||||||
|
|
||||||
SEARX_URL = get_setting('server.base_url') or 'https://example.org/searxng'
|
SEARXNG_URL = get_setting('server.base_url') or 'https://example.org/searxng'
|
||||||
ISSUE_URL = get_setting('brand.issue_url')
|
ISSUE_URL = get_setting('brand.issue_url')
|
||||||
DOCS_URL = get_setting('brand.docs_url')
|
DOCS_URL = get_setting('brand.docs_url')
|
||||||
PUBLIC_INSTANCES = get_setting('brand.public_instances')
|
PUBLIC_INSTANCES = get_setting('brand.public_instances')
|
||||||
|
@ -37,13 +37,13 @@ numfig = True
|
||||||
|
|
||||||
exclude_patterns = ['build-templates/*.rst']
|
exclude_patterns = ['build-templates/*.rst']
|
||||||
|
|
||||||
import searx.engines
|
import searxng.engines
|
||||||
import searx.plugins
|
import searxng.plugins
|
||||||
searx.engines.load_engines(searx.settings['engines'])
|
searxng.engines.load_engines(searxng.settings['engines'])
|
||||||
jinja_contexts = {
|
jinja_contexts = {
|
||||||
'searx': {
|
'searxng': {
|
||||||
'engines': searx.engines.engines,
|
'engines': searxng.engines.engines,
|
||||||
'plugins': searx.plugins.plugins
|
'plugins': searxng.plugins.plugins
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,12 +53,12 @@ extlinks = {}
|
||||||
# upstream links
|
# upstream links
|
||||||
extlinks['wiki'] = ('https://github.com/searxng/searxng/wiki/%s', ' ')
|
extlinks['wiki'] = ('https://github.com/searxng/searxng/wiki/%s', ' ')
|
||||||
extlinks['pull'] = ('https://github.com/searxng/searxng/pull/%s', 'PR ')
|
extlinks['pull'] = ('https://github.com/searxng/searxng/pull/%s', 'PR ')
|
||||||
extlinks['pull-searx'] = ('https://github.com/searx/searx/pull/%s', 'PR ')
|
extlinks['pull-searxng'] = ('https://github.com/searxng/searxng/pull/%s', 'PR ')
|
||||||
|
|
||||||
# links to custom brand
|
# links to custom brand
|
||||||
extlinks['origin'] = (GIT_URL + '/blob/' + GIT_BRANCH + '/%s', 'git://')
|
extlinks['origin'] = (GIT_URL + '/blob/' + GIT_BRANCH + '/%s', 'git://')
|
||||||
extlinks['patch'] = (GIT_URL + '/commit/%s', '#')
|
extlinks['patch'] = (GIT_URL + '/commit/%s', '#')
|
||||||
extlinks['search'] = (SEARX_URL + '/%s', '#')
|
extlinks['search'] = (SEARXNG_URL + '/%s', '#')
|
||||||
extlinks['docs'] = (DOCS_URL + '/%s', 'docs: ')
|
extlinks['docs'] = (DOCS_URL + '/%s', 'docs: ')
|
||||||
extlinks['pypi'] = ('https://pypi.org/project/%s', 'PyPi: ')
|
extlinks['pypi'] = ('https://pypi.org/project/%s', 'PyPi: ')
|
||||||
extlinks['man'] = ('https://manpages.debian.org/jump?q=%s', '')
|
extlinks['man'] = ('https://manpages.debian.org/jump?q=%s', '')
|
||||||
|
@ -105,7 +105,7 @@ issues_github_path = "searxng/searxng"
|
||||||
sys.path.append(os.path.abspath('_themes'))
|
sys.path.append(os.path.abspath('_themes'))
|
||||||
sys.path.insert(0, os.path.abspath("../utils/"))
|
sys.path.insert(0, os.path.abspath("../utils/"))
|
||||||
html_theme_path = ['_themes']
|
html_theme_path = ['_themes']
|
||||||
html_theme = "searx"
|
html_theme = "searxng"
|
||||||
|
|
||||||
# sphinx.ext.imgmath setup
|
# sphinx.ext.imgmath setup
|
||||||
html_math_renderer = 'imgmath'
|
html_math_renderer = 'imgmath'
|
||||||
|
@ -138,5 +138,5 @@ html_show_sourcelink = False
|
||||||
# LaTeX ----------------------------------------------------------------
|
# LaTeX ----------------------------------------------------------------
|
||||||
|
|
||||||
latex_documents = [
|
latex_documents = [
|
||||||
(master_doc, "searx-{}.tex".format(VERSION_STRING), html_title, author, "manual")
|
(master_doc, "searxng-{}.tex".format(VERSION_STRING), html_title, author, "manual")
|
||||||
]
|
]
|
||||||
|
|
|
@ -33,14 +33,14 @@ capabilities.
|
||||||
A few widely used features work differently or turned off by default or not
|
A few widely used features work differently or turned off by default or not
|
||||||
implemented at all **as a consequence of privacy-by-design**.
|
implemented at all **as a consequence of privacy-by-design**.
|
||||||
|
|
||||||
If a feature reduces the privacy preserving aspects of searx, it should be
|
If a feature reduces the privacy preserving aspects of searxng, it should be
|
||||||
switched off by default or should not implemented at all. There are plenty of
|
switched off by default or should not implemented at all. There are plenty of
|
||||||
search engines already providing such features. If a feature reduces the
|
search engines already providing such features. If a feature reduces the
|
||||||
protection of searx, users must be informed about the effect of choosing to
|
protection of searxng, users must be informed about the effect of choosing to
|
||||||
enable it. Features that protect privacy but differ from the expectations of
|
enable it. Features that protect privacy but differ from the expectations of
|
||||||
the user should also be explained.
|
the user should also be explained.
|
||||||
|
|
||||||
Also, if you think that something works weird with searx, it's might be because
|
Also, if you think that something works weird with searxng, it's might be because
|
||||||
of the tool you use is designed in a way to interfere with the privacy respect.
|
of the tool you use is designed in a way to interfere with the privacy respect.
|
||||||
Submitting a bugreport to the vendor of the tool that misbehaves might be a good
|
Submitting a bugreport to the vendor of the tool that misbehaves might be a good
|
||||||
feedback to reconsider the disrespect to its customers (e.g. ``GET`` vs ``POST``
|
feedback to reconsider the disrespect to its customers (e.g. ``GET`` vs ``POST``
|
||||||
|
|
|
@ -20,7 +20,7 @@ better results.
|
||||||
|
|
||||||
Because there is no general search API which could be used for every search
|
Because there is no general search API which could be used for every search
|
||||||
engine, an adapter has to be built between SearXNG and the external search
|
engine, an adapter has to be built between SearXNG and the external search
|
||||||
engines. Adapters are stored under the folder :origin:`searx/engines`.
|
engines. Adapters are stored under the folder :origin:`searxng/engines`.
|
||||||
|
|
||||||
.. _general engine configuration:
|
.. _general engine configuration:
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ For a more detailed description, see :ref:`settings engine` in the :ref:`settin
|
||||||
argument type information
|
argument type information
|
||||||
======================= =========== ===============================================
|
======================= =========== ===============================================
|
||||||
name string name of search-engine
|
name string name of search-engine
|
||||||
engine string name of searx-engine (filename without ``.py``)
|
engine string name of searxng-engine (filename without ``.py``)
|
||||||
enable_http bool enable HTTP (by default only HTTPS is enabled).
|
enable_http bool enable HTTP (by default only HTTPS is enabled).
|
||||||
shortcut string shortcut of search-engine
|
shortcut string shortcut of search-engine
|
||||||
timeout string specific timeout for search-engine
|
timeout string specific timeout for search-engine
|
||||||
|
@ -184,7 +184,7 @@ Specify Request
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
The function :py:func:`def request(query, params):
|
The function :py:func:`def request(query, params):
|
||||||
<searx.engines.demo_online.request>` always returns the ``params`` variable, the
|
<searxng.engines.demo_online.request>` always returns the ``params`` variable, the
|
||||||
following parameters can be used to specify a search request:
|
following parameters can be used to specify a search request:
|
||||||
|
|
||||||
.. table::
|
.. table::
|
||||||
|
|
|
@ -42,10 +42,10 @@ be set on a *production* system.
|
||||||
prerequisites from various projects on developer's desktop is always a good
|
prerequisites from various projects on developer's desktop is always a good
|
||||||
choice.**
|
choice.**
|
||||||
|
|
||||||
The scripts from :ref:`searx_utils` can divide in those to install and maintain
|
The scripts from :ref:`searxng_utils` can divide in those to install and maintain
|
||||||
software:
|
software:
|
||||||
|
|
||||||
- :ref:`searx.sh`
|
- :ref:`searxng.sh`
|
||||||
- :ref:`filtron.sh`
|
- :ref:`filtron.sh`
|
||||||
- :ref:`morty.sh`
|
- :ref:`morty.sh`
|
||||||
|
|
||||||
|
@ -88,13 +88,13 @@ fork:
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ cd ~/Downloads
|
$ cd ~/Downloads
|
||||||
$ git clone https://github.com/searxng/searxng.git searx
|
$ git clone https://github.com/searxng/searxng.git searxng
|
||||||
$ cd searx
|
$ cd searxng
|
||||||
|
|
||||||
The :ref:`lxc-searx.env` consists of several images, see ``export
|
The :ref:`lxc-searxng.env` consists of several images, see ``export
|
||||||
LXC_SUITE=(...`` near by :origin:`utils/lxc-searx.env#L19`. For this blog post
|
LXC_SUITE=(...`` near by :origin:`utils/lxc-searxng.env#L19`. For this blog post
|
||||||
we exercise on a archlinux_ image. The container of this image is named
|
we exercise on a archlinux_ image. The container of this image is named
|
||||||
``searx-archlinux``. Lets build the container, but be sure that this container
|
``searxng-archlinux``. Lets build the container, but be sure that this container
|
||||||
does not already exists, so first lets remove possible old one:
|
does not already exists, so first lets remove possible old one:
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
@ -103,14 +103,14 @@ does not already exists, so first lets remove possible old one:
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh remove searx-archlinux
|
$ sudo -H ./utils/lxc.sh remove searxng-archlinux
|
||||||
$ sudo -H ./utils/lxc.sh build searx-archlinux
|
$ sudo -H ./utils/lxc.sh build searxng-archlinux
|
||||||
|
|
||||||
.. sidebar:: The ``searx-archlinux`` container
|
.. sidebar:: The ``searxng-archlinux`` container
|
||||||
|
|
||||||
is the base of all our exercises here.
|
is the base of all our exercises here.
|
||||||
|
|
||||||
In this container we install all services :ref:`including searx, morty & filtron
|
In this container we install all services :ref:`including searxng, morty & filtron
|
||||||
<lxc.sh install suite>` in once:
|
<lxc.sh install suite>` in once:
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
@ -119,7 +119,7 @@ In this container we install all services :ref:`including searx, morty & filtron
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh install suite searx-archlinux
|
$ sudo -H ./utils/lxc.sh install suite searxng-archlinux
|
||||||
|
|
||||||
To proxy HTTP from filtron and morty in the container to the outside of the
|
To proxy HTTP from filtron and morty in the container to the outside of the
|
||||||
container, install nginx into the container. Once for the bot blocker filtron:
|
container, install nginx into the container. Once for the bot blocker filtron:
|
||||||
|
@ -130,10 +130,10 @@ container, install nginx into the container. Once for the bot blocker filtron:
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh cmd searx-archlinux \
|
$ sudo -H ./utils/lxc.sh cmd searxng-archlinux \
|
||||||
./utils/filtron.sh nginx install
|
./utils/filtron.sh nginx install
|
||||||
...
|
...
|
||||||
INFO: got 429 from http://10.174.184.156/searx
|
INFO: got 429 from http://10.174.184.156/searxng
|
||||||
|
|
||||||
and once for the content sanitizer (content proxy morty):
|
and once for the content sanitizer (content proxy morty):
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ and once for the content sanitizer (content proxy morty):
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh cmd searx-archlinux \
|
$ sudo -H ./utils/lxc.sh cmd searxng-archlinux \
|
||||||
./utils/morty.sh nginx install
|
./utils/morty.sh nginx install
|
||||||
...
|
...
|
||||||
INFO: got 200 from http://10.174.184.156/morty/
|
INFO: got 200 from http://10.174.184.156/morty/
|
||||||
|
@ -154,8 +154,8 @@ and once for the content sanitizer (content proxy morty):
|
||||||
blocker (filtron) and WEB content sanitizer (content proxy morty), both are
|
blocker (filtron) and WEB content sanitizer (content proxy morty), both are
|
||||||
needed for a *privacy protecting* search engine.
|
needed for a *privacy protecting* search engine.
|
||||||
|
|
||||||
On your system, the IP of your ``searx-archlinux`` container differs from
|
On your system, the IP of your ``searxng-archlinux`` container differs from
|
||||||
http://10.174.184.156/searx, just open the URL reported in your installation
|
http://10.174.184.156/searxng, just open the URL reported in your installation
|
||||||
protocol in your WEB browser from the desktop to test the instance from outside
|
protocol in your WEB browser from the desktop to test the instance from outside
|
||||||
of the container.
|
of the container.
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ In containers, work as usual
|
||||||
|
|
||||||
Usually you open a root-bash using ``sudo -H bash``. In case of LXC containers
|
Usually you open a root-bash using ``sudo -H bash``. In case of LXC containers
|
||||||
open the root-bash in the container using ``./utils/lxc.sh cmd
|
open the root-bash in the container using ``./utils/lxc.sh cmd
|
||||||
searx-archlinux``:
|
searxng-archlinux``:
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
|
@ -177,26 +177,26 @@ searx-archlinux``:
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh cmd searx-archlinux bash
|
$ sudo -H ./utils/lxc.sh cmd searxng-archlinux bash
|
||||||
INFO: [searx-archlinux] bash
|
INFO: [searxng-archlinux] bash
|
||||||
[root@searx-archlinux searx]# pwd
|
[root@searxng-archlinux searxng]# pwd
|
||||||
/share/searx
|
/share/searxng
|
||||||
|
|
||||||
The prompt ``[root@searx-archlinux ...]`` signals, that you are the root user in
|
The prompt ``[root@searxng-archlinux ...]`` signals, that you are the root user in
|
||||||
the searx-container. To debug the running SearXNG instance use:
|
the searxng-container. To debug the running SearXNG instance use:
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
.. group-tab:: root@searx-archlinux
|
.. group-tab:: root@searxng-archlinux
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ ./utils/searx.sh inspect service
|
$ ./utils/searxng.sh inspect service
|
||||||
...
|
...
|
||||||
use [CTRL-C] to stop monitoring the log
|
use [CTRL-C] to stop monitoring the log
|
||||||
...
|
...
|
||||||
|
|
||||||
Back in the browser on your desktop open the service http://10.174.184.156/searx
|
Back in the browser on your desktop open the service http://10.174.184.156/searxng
|
||||||
and run your application tests while the debug log is shown in the terminal from
|
and run your application tests while the debug log is shown in the terminal from
|
||||||
above. You can stop monitoring using ``CTRL-C``, this also disables the *"debug
|
above. You can stop monitoring using ``CTRL-C``, this also disables the *"debug
|
||||||
option"* in SearXNG's settings file and restarts the SearXNG uwsgi application.
|
option"* in SearXNG's settings file and restarts the SearXNG uwsgi application.
|
||||||
|
@ -204,29 +204,29 @@ To debug services from filtron and morty analogous use:
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
.. group-tab:: root@searx-archlinux
|
.. group-tab:: root@searxng-archlinux
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ ./utils/filtron.sh inspect service
|
$ ./utils/filtron.sh inspect service
|
||||||
$ ./utils/morty.sh inspect service
|
$ ./utils/morty.sh inspect service
|
||||||
|
|
||||||
Another point we have to notice is that each service (:ref:`SearXNG <searx.sh>`,
|
Another point we have to notice is that each service (:ref:`SearXNG <searxng.sh>`,
|
||||||
:ref:`filtron <filtron.sh>` and :ref:`morty <morty.sh>`) runs under dedicated
|
:ref:`filtron <filtron.sh>` and :ref:`morty <morty.sh>`) runs under dedicated
|
||||||
system user account with the same name (compare :ref:`create searx user`). To
|
system user account with the same name (compare :ref:`create searxng user`). To
|
||||||
get a shell from theses accounts, simply call one of the scripts:
|
get a shell from theses accounts, simply call one of the scripts:
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
.. group-tab:: root@searx-archlinux
|
.. group-tab:: root@searxng-archlinux
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ ./utils/searx.sh shell
|
$ ./utils/searxng.sh shell
|
||||||
$ ./utils/filtron.sh shell
|
$ ./utils/filtron.sh shell
|
||||||
$ ./utils/morty.sh shell
|
$ ./utils/morty.sh shell
|
||||||
|
|
||||||
To get in touch, open a shell from the service user (searx@searx-archlinux):
|
To get in touch, open a shell from the service user (searxng@searxng-archlinux):
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
|
@ -234,23 +234,23 @@ To get in touch, open a shell from the service user (searx@searx-archlinux):
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh cmd searx-archlinux \
|
$ sudo -H ./utils/lxc.sh cmd searxng-archlinux \
|
||||||
./utils/searx.sh shell
|
./utils/searxng.sh shell
|
||||||
// exit with [CTRL-D]
|
// exit with [CTRL-D]
|
||||||
(searx-pyenv) [searx@searx-archlinux ~]$ ...
|
(searxng-pyenv) [searxng@searxng-archlinux ~]$ ...
|
||||||
|
|
||||||
The prompt ``[searx@searx-archlinux]`` signals that you are logged in as system
|
The prompt ``[searxng@searxng-archlinux]`` signals that you are logged in as system
|
||||||
user ``searx`` in the ``searx-archlinux`` container and the python *virtualenv*
|
user ``searxng`` in the ``searxng-archlinux`` container and the python *virtualenv*
|
||||||
``(searx-pyenv)`` environment is activated.
|
``(searxng-pyenv)`` environment is activated.
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
.. group-tab:: searx@searx-archlinux
|
.. group-tab:: searxng@searxng-archlinux
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
(searx-pyenv) [searx@searx-archlinux ~]$ pwd
|
(searxng-pyenv) [searxng@searxng-archlinux ~]$ pwd
|
||||||
/usr/local/searx
|
/usr/local/searxng
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -261,13 +261,13 @@ In this section we will see how to change the *"Fully functional SearXNG suite"*
|
||||||
from a LXC container (which is quite ready for production) into a developer
|
from a LXC container (which is quite ready for production) into a developer
|
||||||
suite. For this, we have to keep an eye on the :ref:`installation basic`:
|
suite. For this, we have to keep an eye on the :ref:`installation basic`:
|
||||||
|
|
||||||
- SearXNG setup in: ``/etc/searx/settings.yml``
|
- SearXNG setup in: ``/etc/searxng/settings.yml``
|
||||||
- SearXNG user's home: ``/usr/local/searx``
|
- SearXNG user's home: ``/usr/local/searxng``
|
||||||
- virtualenv in: ``/usr/local/searx/searx-pyenv``
|
- virtualenv in: ``/usr/local/searxng/searxng-pyenv``
|
||||||
- SearXNG software in: ``/usr/local/searx/searx-src``
|
- SearXNG software in: ``/usr/local/searxng/searxng-src``
|
||||||
|
|
||||||
With the use of the :ref:`searx.sh` the SearXNG service was installed as
|
With the use of the :ref:`searxng.sh` the SearXNG service was installed as
|
||||||
:ref:`uWSGI application <searx uwsgi>`. To maintain this service, we can use
|
:ref:`uWSGI application <searxng uwsgi>`. To maintain this service, we can use
|
||||||
``systemctl`` (compare :ref:`service architectures on distributions <uwsgi
|
``systemctl`` (compare :ref:`service architectures on distributions <uwsgi
|
||||||
configuration>`).
|
configuration>`).
|
||||||
|
|
||||||
|
@ -277,30 +277,30 @@ configuration>`).
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh cmd searx-archlinux \
|
$ sudo -H ./utils/lxc.sh cmd searxng-archlinux \
|
||||||
systemctl stop uwsgi@searx
|
systemctl stop uwsgi@searxng
|
||||||
|
|
||||||
With the command above, we stopped the SearXNG uWSGI-App in the archlinux
|
With the command above, we stopped the SearXNG uWSGI-App in the archlinux
|
||||||
container.
|
container.
|
||||||
|
|
||||||
The uWSGI-App for the archlinux dsitros is configured in
|
The uWSGI-App for the archlinux dsitros is configured in
|
||||||
:origin:`utils/templates/etc/uwsgi/apps-archlinux/searx.ini`, from where at
|
:origin:`utils/templates/etc/uwsgi/apps-archlinux/searxng.ini`, from where at
|
||||||
least you should attend the settings of ``uid``, ``chdir``, ``env`` and
|
least you should attend the settings of ``uid``, ``chdir``, ``env`` and
|
||||||
``http``::
|
``http``::
|
||||||
|
|
||||||
env = SEARX_SETTINGS_PATH=/etc/searx/settings.yml
|
env = SEARXNG_SETTINGS_PATH=/etc/searxng/settings.yml
|
||||||
http = 127.0.0.1:8888
|
http = 127.0.0.1:8888
|
||||||
|
|
||||||
chdir = /usr/local/searx/searx-src/searx
|
chdir = /usr/local/searxng/searxng-src/searxng
|
||||||
virtualenv = /usr/local/searx/searx-pyenv
|
virtualenv = /usr/local/searxng/searxng-pyenv
|
||||||
pythonpath = /usr/local/searx/searx-src
|
pythonpath = /usr/local/searxng/searxng-src
|
||||||
|
|
||||||
If you have read the :ref:`"Good to know section" <lxc.sh>` you remember, that
|
If you have read the :ref:`"Good to know section" <lxc.sh>` you remember, that
|
||||||
each container shares the root folder of the repository and the command
|
each container shares the root folder of the repository and the command
|
||||||
``utils/lxc.sh cmd`` handles relative path names **transparent**. To wrap the
|
``utils/lxc.sh cmd`` handles relative path names **transparent**. To wrap the
|
||||||
SearXNG installation into a developer one, we simple have to create a smylink to
|
SearXNG installation into a developer one, we simple have to create a smylink to
|
||||||
the **transparent** reposetory from the desktop. Now lets replace the
|
the **transparent** reposetory from the desktop. Now lets replace the
|
||||||
repository at ``searx-src`` in the container with the working tree from outside
|
repository at ``searxng-src`` in the container with the working tree from outside
|
||||||
of the container:
|
of the container:
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
@ -309,11 +309,11 @@ of the container:
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh cmd searx-archlinux \
|
$ sudo -H ./utils/lxc.sh cmd searxng-archlinux \
|
||||||
mv /usr/local/searx/searx-src /usr/local/searx/searx-src.old
|
mv /usr/local/searxng/searxng-src /usr/local/searxng/searxng-src.old
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh cmd searx-archlinux \
|
$ sudo -H ./utils/lxc.sh cmd searxng-archlinux \
|
||||||
ln -s /share/searx/ /usr/local/searx/searx-src
|
ln -s /share/searxng/ /usr/local/searxng/searxng-src
|
||||||
|
|
||||||
Now we can develop as usual in the working tree of our desktop system. Every
|
Now we can develop as usual in the working tree of our desktop system. Every
|
||||||
time the software was changed, you have to restart the SearXNG service (in the
|
time the software was changed, you have to restart the SearXNG service (in the
|
||||||
|
@ -325,8 +325,8 @@ conatiner):
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh cmd searx-archlinux \
|
$ sudo -H ./utils/lxc.sh cmd searxng-archlinux \
|
||||||
systemctl restart uwsgi@searx
|
systemctl restart uwsgi@searxng
|
||||||
|
|
||||||
|
|
||||||
Remember: :ref:`working in containers` .. here are just some examples from my
|
Remember: :ref:`working in containers` .. here are just some examples from my
|
||||||
|
@ -340,28 +340,28 @@ daily usage:
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh cmd searx-archlinux \
|
$ sudo -H ./utils/lxc.sh cmd searxng-archlinux \
|
||||||
./utils/searx.sh inspect service
|
./utils/searxng.sh inspect service
|
||||||
|
|
||||||
Run :ref:`makefile`, e.g. to test inside the container:
|
Run :ref:`makefile`, e.g. to test inside the container:
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh cmd searx-archlinux \
|
$ sudo -H ./utils/lxc.sh cmd searxng-archlinux \
|
||||||
make test
|
make test
|
||||||
|
|
||||||
To install all prerequisites needed for a :ref:`buildhosts`:
|
To install all prerequisites needed for a :ref:`buildhosts`:
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh cmd searx-archlinux \
|
$ sudo -H ./utils/lxc.sh cmd searxng-archlinux \
|
||||||
./utils/searx.sh install buildhost
|
./utils/searxng.sh install buildhost
|
||||||
|
|
||||||
To build the docs on a buildhost :ref:`buildhosts`:
|
To build the docs on a buildhost :ref:`buildhosts`:
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh cmd searx-archlinux \
|
$ sudo -H ./utils/lxc.sh cmd searxng-archlinux \
|
||||||
make docs.html
|
make docs.html
|
||||||
|
|
||||||
.. _lxcdev summary:
|
.. _lxcdev summary:
|
||||||
|
@ -373,14 +373,14 @@ We build up a fully functional SearXNG suite in a archlinux container:
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh install suite searx-archlinux
|
$ sudo -H ./utils/lxc.sh install suite searxng-archlinux
|
||||||
|
|
||||||
To access HTTP from the desktop we installed nginx for the services inside the
|
To access HTTP from the desktop we installed nginx for the services inside the
|
||||||
conatiner:
|
conatiner:
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
.. group-tab:: [root@searx-archlinux]
|
.. group-tab:: [root@searxng-archlinux]
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
|
@ -393,13 +393,13 @@ the container :
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
.. group-tab:: [root@searx-archlinux]
|
.. group-tab:: [root@searxng-archlinux]
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ mv /usr/local/searx/searx-src /usr/local/searx/searx-src.old
|
$ mv /usr/local/searxng/searxng-src /usr/local/searxng/searxng-src.old
|
||||||
$ ln -s /share/searx/ /usr/local/searx/searx-src
|
$ ln -s /share/searxng/ /usr/local/searxng/searxng-src
|
||||||
$ systemctl restart uwsgi@searx
|
$ systemctl restart uwsgi@searxng
|
||||||
|
|
||||||
To get information about the searxNG suite in the archlinux container we can
|
To get information about the searxNG suite in the archlinux container we can
|
||||||
use:
|
use:
|
||||||
|
@ -410,11 +410,11 @@ use:
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh show suite searx-archlinux
|
$ sudo -H ./utils/lxc.sh show suite searxng-archlinux
|
||||||
...
|
...
|
||||||
[searx-archlinux] INFO: (eth0) filtron: http://10.174.184.156:4004/ http://10.174.184.156/searx
|
[searxng-archlinux] INFO: (eth0) filtron: http://10.174.184.156:4004/ http://10.174.184.156/searxng
|
||||||
[searx-archlinux] INFO: (eth0) morty: http://10.174.184.156:3000/
|
[searxng-archlinux] INFO: (eth0) morty: http://10.174.184.156:3000/
|
||||||
[searx-archlinux] INFO: (eth0) docs.live: http://10.174.184.156:8080/
|
[searxng-archlinux] INFO: (eth0) docs.live: http://10.174.184.156:8080/
|
||||||
[searx-archlinux] INFO: (eth0) IPv6: http://[fd42:573b:e0b3:e97e:216:3eff:fea5:9b65]
|
[searxng-archlinux] INFO: (eth0) IPv6: http://[fd42:573b:e0b3:e97e:216:3eff:fea5:9b65]
|
||||||
...
|
...
|
||||||
|
|
||||||
|
|
|
@ -40,16 +40,16 @@ We do no longer need to build up the virtualenv manually. Jump into your git
|
||||||
working tree and release a ``make install`` to get a virtualenv with a
|
working tree and release a ``make install`` to get a virtualenv with a
|
||||||
*developer install* of SearXNG (:origin:`setup.py`). ::
|
*developer install* of SearXNG (:origin:`setup.py`). ::
|
||||||
|
|
||||||
$ cd ~/searx-clone
|
$ cd ~/searxng-clone
|
||||||
$ make install
|
$ make install
|
||||||
PYENV [virtualenv] installing ./requirements*.txt into local/py3
|
PYENV [virtualenv] installing ./requirements*.txt into local/py3
|
||||||
...
|
...
|
||||||
PYENV OK
|
PYENV OK
|
||||||
PYENV [install] pip install -e 'searx[test]'
|
PYENV [install] pip install -e 'searxng[test]'
|
||||||
...
|
...
|
||||||
Successfully installed argparse-1.4.0 searx
|
Successfully installed argparse-1.4.0 searxng
|
||||||
BUILDENV INFO:searx:load the default settings from ./searx/settings.yml
|
BUILDENV INFO:searxng:load the default settings from ./searxng/settings.yml
|
||||||
BUILDENV INFO:searx:Initialisation done
|
BUILDENV INFO:searxng:Initialisation done
|
||||||
BUILDENV build utils/brand.env
|
BUILDENV build utils/brand.env
|
||||||
|
|
||||||
If you release ``make install`` multiple times the installation will only
|
If you release ``make install`` multiple times the installation will only
|
||||||
|
@ -66,11 +66,11 @@ the check fails if you edit the requirements listed in
|
||||||
PYENV [virtualenv] installing ./requirements*.txt into local/py3
|
PYENV [virtualenv] installing ./requirements*.txt into local/py3
|
||||||
...
|
...
|
||||||
PYENV OK
|
PYENV OK
|
||||||
PYENV [install] pip install -e 'searx[test]'
|
PYENV [install] pip install -e 'searxng[test]'
|
||||||
...
|
...
|
||||||
Successfully installed argparse-1.4.0 searx
|
Successfully installed argparse-1.4.0 searxng
|
||||||
BUILDENV INFO:searx:load the default settings from ./searx/settings.yml
|
BUILDENV INFO:searxng:load the default settings from ./searxng/settings.yml
|
||||||
BUILDENV INFO:searx:Initialisation done
|
BUILDENV INFO:searxng:Initialisation done
|
||||||
BUILDENV build utils/brand.env
|
BUILDENV build utils/brand.env
|
||||||
|
|
||||||
.. sidebar:: drop environment
|
.. sidebar:: drop environment
|
||||||
|
@ -107,10 +107,10 @@ The ``make buildenv`` target will update the *build environment* in:
|
||||||
Tasks running outside of an *installed instance*, need the following settings
|
Tasks running outside of an *installed instance*, need the following settings
|
||||||
from the YAML configuration:
|
from the YAML configuration:
|
||||||
|
|
||||||
- ``SEARX_URL`` from :ref:`server.base_url <settings global server>` (aka
|
- ``SEARXNG_URL`` from :ref:`server.base_url <settings global server>` (aka
|
||||||
``PUBLIC_URL``)
|
``PUBLIC_URL``)
|
||||||
- ``SEARX_BIND_ADDRESS`` from :ref:`server.bind_address <settings global server>`
|
- ``SEARXNG_BIND_ADDRESS`` from :ref:`server.bind_address <settings global server>`
|
||||||
- ``SEARX_PORT`` from :ref:`server.port <settings global server>`
|
- ``SEARXNG_PORT`` from :ref:`server.port <settings global server>`
|
||||||
|
|
||||||
.. _make run:
|
.. _make run:
|
||||||
|
|
||||||
|
@ -118,13 +118,13 @@ from the YAML configuration:
|
||||||
============
|
============
|
||||||
|
|
||||||
To get up a running a developer instance simply call ``make run``. This enables
|
To get up a running a developer instance simply call ``make run``. This enables
|
||||||
*debug* option in :origin:`searx/settings.yml`, starts a ``./searx/webapp.py``
|
*debug* option in :origin:`searxng/settings.yml`, starts a ``./searxng/webapp.py``
|
||||||
instance, disables *debug* option again and opens the URL in your favorite WEB
|
instance, disables *debug* option again and opens the URL in your favorite WEB
|
||||||
browser (:man:`xdg-open`)::
|
browser (:man:`xdg-open`)::
|
||||||
|
|
||||||
$ make run
|
$ make run
|
||||||
PYENV OK
|
PYENV OK
|
||||||
SEARX_DEBUG=1 ./manage.sh pyenv.cmd python ./searx/webapp.py
|
SEARXNG_DEBUG=1 ./manage.sh pyenv.cmd python ./searxng/webapp.py
|
||||||
...
|
...
|
||||||
INFO:werkzeug: * Running on http://127.0.0.1:8888/ (Press CTRL+C to quit)
|
INFO:werkzeug: * Running on http://127.0.0.1:8888/ (Press CTRL+C to quit)
|
||||||
|
|
||||||
|
@ -210,15 +210,15 @@ by underline::
|
||||||
|
|
||||||
make search.checker.google_news
|
make search.checker.google_news
|
||||||
|
|
||||||
To see HTTP requests and more use SEARX_DEBUG::
|
To see HTTP requests and more use SEARXNG_DEBUG::
|
||||||
|
|
||||||
make SEARX_DEBUG=1 search.checker.google_news
|
make SEARXNG_DEBUG=1 search.checker.google_news
|
||||||
|
|
||||||
.. _3xx: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_redirection
|
.. _3xx: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_redirection
|
||||||
|
|
||||||
To filter out HTTP redirects (3xx_)::
|
To filter out HTTP redirects (3xx_)::
|
||||||
|
|
||||||
make SEARX_DEBUG=1 search.checker.google_news | grep -A1 "HTTP/1.1\" 3[0-9][0-9]"
|
make SEARXNG_DEBUG=1 search.checker.google_news | grep -A1 "HTTP/1.1\" 3[0-9][0-9]"
|
||||||
...
|
...
|
||||||
Engine google news Checking
|
Engine google news Checking
|
||||||
https://news.google.com:443 "GET /search?q=life&hl=en&lr=lang_en&ie=utf8&oe=utf8&ceid=US%3Aen&gl=US HTTP/1.1" 302 0
|
https://news.google.com:443 "GET /search?q=life&hl=en&lr=lang_en&ie=utf8&oe=utf8&ceid=US%3Aen&gl=US HTTP/1.1" 302 0
|
||||||
|
@ -246,8 +246,8 @@ Build Python packages in ``./dist/py``::
|
||||||
running bdist_wheel
|
running bdist_wheel
|
||||||
|
|
||||||
$ ls ./dist
|
$ ls ./dist
|
||||||
searx-0.18.0-py3-none-any.whl searx-0.18.0.tar.gz
|
searxng-0.18.0-py3-none-any.whl searxng-0.18.0.tar.gz
|
||||||
|
|
||||||
To upload packages to PyPi_, there is also a ``pypi.upload`` target (to test use
|
To upload packages to PyPi_, there is also a ``pypi.upload`` target (to test use
|
||||||
``pypi.upload.test``). Since you are not the owner of :pypi:`searx` you will
|
``pypi.upload.test``). Since you are not the owner of :pypi:`searxng` you will
|
||||||
never need to upload.
|
never need to upload.
|
||||||
|
|
|
@ -9,28 +9,28 @@ Offline Engines
|
||||||
- :ref:`demo offline engine`
|
- :ref:`demo offline engine`
|
||||||
- :ref:`sql engines`
|
- :ref:`sql engines`
|
||||||
- :ref:`engine command`
|
- :ref:`engine command`
|
||||||
- :origin:`Redis <searx/engines/redis_server.py>`
|
- :origin:`Redis <searxng/engines/redis_server.py>`
|
||||||
|
|
||||||
To extend the functionality of SearXNG, offline engines are going to be
|
To extend the functionality of SearXNG, offline engines are going to be
|
||||||
introduced. An offline engine is an engine which does not need Internet
|
introduced. An offline engine is an engine which does not need Internet
|
||||||
connection to perform a search and does not use HTTP to communicate.
|
connection to perform a search and does not use HTTP to communicate.
|
||||||
|
|
||||||
Offline engines can be configured, by adding those to the `engines` list of
|
Offline engines can be configured, by adding those to the `engines` list of
|
||||||
:origin:`settings.yml <searx/settings.yml>`. An example skeleton for offline
|
:origin:`settings.yml <searxng/settings.yml>`. An example skeleton for offline
|
||||||
engines can be found in :ref:`demo offline engine` (:origin:`demo_offline.py
|
engines can be found in :ref:`demo offline engine` (:origin:`demo_offline.py
|
||||||
<searx/engines/demo_offline.py>`).
|
<searxng/engines/demo_offline.py>`).
|
||||||
|
|
||||||
|
|
||||||
Programming Interface
|
Programming Interface
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
:py:func:`init(engine_settings=None) <searx.engines.demo_offline.init>`
|
:py:func:`init(engine_settings=None) <searxng.engines.demo_offline.init>`
|
||||||
All offline engines can have their own init function to setup the engine before
|
All offline engines can have their own init function to setup the engine before
|
||||||
accepting requests. The function gets the settings from settings.yml as a
|
accepting requests. The function gets the settings from settings.yml as a
|
||||||
parameter. This function can be omitted, if there is no need to setup anything
|
parameter. This function can be omitted, if there is no need to setup anything
|
||||||
in advance.
|
in advance.
|
||||||
|
|
||||||
:py:func:`search(query, params) <searx.engines.demo_offline.searc>`
|
:py:func:`search(query, params) <searxng.engines.demo_offline.searc>`
|
||||||
|
|
||||||
Each offline engine has a function named ``search``. This function is
|
Each offline engine has a function named ``search``. This function is
|
||||||
responsible to perform a search and return the results in a presentable
|
responsible to perform a search and return the results in a presentable
|
||||||
|
@ -55,10 +55,10 @@ admins can install packages in advance.
|
||||||
|
|
||||||
If there is a need to install additional packages in *Python's Virtual
|
If there is a need to install additional packages in *Python's Virtual
|
||||||
Environment* of your SearXNG instance you need to switch into the environment
|
Environment* of your SearXNG instance you need to switch into the environment
|
||||||
(:ref:`searx-src`) first, for this you can use :ref:`searx.sh`::
|
(:ref:`searxng-src`) first, for this you can use :ref:`searxng.sh`::
|
||||||
|
|
||||||
$ sudo utils/searx.sh shell
|
$ sudo utils/searxng.sh shell
|
||||||
(searx-pyenv)$ pip install ...
|
(searxng-pyenv)$ pip install ...
|
||||||
|
|
||||||
|
|
||||||
Private engines (Security)
|
Private engines (Security)
|
||||||
|
|
|
@ -8,7 +8,7 @@ Plugins
|
||||||
|
|
||||||
- :ref:`plugins generic`
|
- :ref:`plugins generic`
|
||||||
|
|
||||||
Plugins can extend or replace functionality of various components of searx.
|
Plugins can extend or replace functionality of various components of searxng.
|
||||||
|
|
||||||
Example plugin
|
Example plugin
|
||||||
==============
|
==============
|
||||||
|
@ -41,7 +41,7 @@ Register your plugin
|
||||||
====================
|
====================
|
||||||
|
|
||||||
To enable your plugin register your plugin in
|
To enable your plugin register your plugin in
|
||||||
searx > plugin > __init__.py.
|
searxng > plugin > __init__.py.
|
||||||
And at the bottom of the file add your plugin like.
|
And at the bottom of the file add your plugin like.
|
||||||
``plugins.register(name_of_python_file)``
|
``plugins.register(name_of_python_file)``
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ plugin. A plugin doesn't need to implement all the hooks.
|
||||||
* False to stop the search
|
* False to stop the search
|
||||||
|
|
||||||
:param flask.request request:
|
:param flask.request request:
|
||||||
:param searx.search.SearchWithPlugins search:
|
:param searxng.search.SearchWithPlugins search:
|
||||||
:return: False to stop the search
|
:return: False to stop the search
|
||||||
:rtype: bool
|
:rtype: bool
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ plugin. A plugin doesn't need to implement all the hooks.
|
||||||
Runs AFTER the search request.
|
Runs AFTER the search request.
|
||||||
|
|
||||||
:param flask.request request: Flask request.
|
:param flask.request request: Flask request.
|
||||||
:param searx.search.SearchWithPlugins search: Context.
|
:param searxng.search.SearchWithPlugins search: Context.
|
||||||
|
|
||||||
|
|
||||||
.. py:function:: on_result(request, search, result) -> bool
|
.. py:function:: on_result(request, search, result) -> bool
|
||||||
|
@ -95,7 +95,7 @@ plugin. A plugin doesn't need to implement all the hooks.
|
||||||
* False to remove the result
|
* False to remove the result
|
||||||
|
|
||||||
:param flask.request request:
|
:param flask.request request:
|
||||||
:param searx.search.SearchWithPlugins search:
|
:param searxng.search.SearchWithPlugins search:
|
||||||
:param typing.Dict result: Result, see - :ref:`engine results`
|
:param typing.Dict result: Result, see - :ref:`engine results`
|
||||||
:return: True to keep the result
|
:return: True to keep the result
|
||||||
:rtype: bool
|
:rtype: bool
|
||||||
|
|
|
@ -11,7 +11,7 @@ you simply by using :ref:`make <makefile>`.
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
git clone https://github.com/searxng/searxng.git searx
|
git clone https://github.com/searxng/searxng.git searxng
|
||||||
|
|
||||||
Here is how a minimal workflow looks like:
|
Here is how a minimal workflow looks like:
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ documentation, with the builders from the Sphinx_ project a HTML output is
|
||||||
generated and deployed at :docs:`github.io <.>`. For build prerequisites read
|
generated and deployed at :docs:`github.io <.>`. For build prerequisites read
|
||||||
:ref:`docs build`.
|
:ref:`docs build`.
|
||||||
|
|
||||||
The source files of Searx's documentation are located at :origin:`docs`. Sphinx
|
The source files of Searxng's documentation are located at :origin:`docs`. Sphinx
|
||||||
assumes source files to be encoded in UTF-8 by defaul. Run :ref:`make docs.live
|
assumes source files to be encoded in UTF-8 by defaul. Run :ref:`make docs.live
|
||||||
<make docs.live>` to build HTML while editing.
|
<make docs.live>` to build HTML while editing.
|
||||||
|
|
||||||
|
@ -290,7 +290,7 @@ content becomes smart.
|
||||||
files & folders origin :origin:`docs/dev/reST.rst` ``:origin:`docs/dev/reST.rst```
|
files & folders origin :origin:`docs/dev/reST.rst` ``:origin:`docs/dev/reST.rst```
|
||||||
pull request :pull:`4` ``:pull:`4```
|
pull request :pull:`4` ``:pull:`4```
|
||||||
patch :patch:`af2cae6` ``:patch:`af2cae6```
|
patch :patch:`af2cae6` ``:patch:`af2cae6```
|
||||||
PyPi package :pypi:`searx` ``:pypi:`searx```
|
PyPi package :pypi:`searxng` ``:pypi:`searxng```
|
||||||
manual page man :man:`bash` ``:man:`bash```
|
manual page man :man:`bash` ``:man:`bash```
|
||||||
intersphinx_
|
intersphinx_
|
||||||
--------------------------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------------------------
|
||||||
|
@ -494,7 +494,7 @@ Figures & Images
|
||||||
is flexible. To get best results in the generated output format, install
|
is flexible. To get best results in the generated output format, install
|
||||||
ImageMagick_ and Graphviz_.
|
ImageMagick_ and Graphviz_.
|
||||||
|
|
||||||
Searx's sphinx setup includes: :ref:`linuxdoc:kfigure`. Scaleable here means;
|
Searxng's sphinx setup includes: :ref:`linuxdoc:kfigure`. Scaleable here means;
|
||||||
scaleable in sense of the build process. Normally in absence of a converter
|
scaleable in sense of the build process. Normally in absence of a converter
|
||||||
tool, the build process will break. From the authors POV it’s annoying to care
|
tool, the build process will break. From the authors POV it’s annoying to care
|
||||||
about the build process when handling with images, especially since he has no
|
about the build process when handling with images, especially since he has no
|
||||||
|
@ -1288,20 +1288,20 @@ install` (with SearXNG modules installed). We use this e.g. to build chapter:
|
||||||
:language: reST
|
:language: reST
|
||||||
:start-after: .. _configured engines:
|
:start-after: .. _configured engines:
|
||||||
|
|
||||||
The context for the template is selected in the line ``.. jinja:: searx``. In
|
The context for the template is selected in the line ``.. jinja:: searxng``. In
|
||||||
sphinx's build configuration (:origin:`docs/conf.py`) the ``searx`` context
|
sphinx's build configuration (:origin:`docs/conf.py`) the ``searxng`` context
|
||||||
contains the ``engines`` and ``plugins``.
|
contains the ``engines`` and ``plugins``.
|
||||||
|
|
||||||
.. code:: py
|
.. code:: py
|
||||||
|
|
||||||
import searx.search
|
import searxng.search
|
||||||
import searx.engines
|
import searxng.engines
|
||||||
import searx.plugins
|
import searxng.plugins
|
||||||
searx.search.initialize()
|
searxng.search.initialize()
|
||||||
jinja_contexts = {
|
jinja_contexts = {
|
||||||
'searx': {
|
'searxng': {
|
||||||
'engines': searx.engines.engines,
|
'engines': searxng.engines.engines,
|
||||||
'plugins': searx.plugins.plugins
|
'plugins': searxng.plugins.plugins
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ Parameters
|
||||||
``q`` : required
|
``q`` : required
|
||||||
The search query. This string is passed to external search services. Thus,
|
The search query. This string is passed to external search services. Thus,
|
||||||
SearXNG supports syntax of each search service. For example, ``site:github.com
|
SearXNG supports syntax of each search service. For example, ``site:github.com
|
||||||
searx`` is a valid query for Google. However, if simply the query above is
|
searxng`` is a valid query for Google. However, if simply the query above is
|
||||||
passed to any search engine which does not filter its results based on this
|
passed to any search engine which does not filter its results based on this
|
||||||
syntax, you might not get the results you wanted.
|
syntax, you might not get the results you wanted.
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ Parameters
|
||||||
``image_proxy`` : default ``False``
|
``image_proxy`` : default ``False``
|
||||||
[ ``True``, ``False`` ]
|
[ ``True``, ``False`` ]
|
||||||
|
|
||||||
Proxy image results through searx.
|
Proxy image results through searxng.
|
||||||
|
|
||||||
``autocomplete`` : default *empty*
|
``autocomplete`` : default *empty*
|
||||||
[ ``google``, ``dbpedia``, ``duckduckgo``, ``startpage``, ``wikipedia`` ]
|
[ ``google``, ``dbpedia``, ``duckduckgo``, ``startpage``, ``wikipedia`` ]
|
||||||
|
@ -112,9 +112,9 @@ Parameters
|
||||||
``Vim-like_hotkeys``, ``Self_Informations``, ``Tracker_URL_remover``,
|
``Vim-like_hotkeys``, ``Self_Informations``, ``Tracker_URL_remover``,
|
||||||
``Search_on_category_select``, ``Hostname_replace``
|
``Search_on_category_select``, ``Hostname_replace``
|
||||||
|
|
||||||
``enabled_engines`` : optional : *all* :origin:`engines <searx/engines>`
|
``enabled_engines`` : optional : *all* :origin:`engines <searxng/engines>`
|
||||||
List of enabled engines.
|
List of enabled engines.
|
||||||
|
|
||||||
``disabled_engines`` : optional : *all* :origin:`engines <searx/engines>`
|
``disabled_engines`` : optional : *all* :origin:`engines <searxng/engines>`
|
||||||
List of disabled engines.
|
List of disabled engines.
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
@ -6,7 +6,7 @@ Welcome to SearXNG
|
||||||
|
|
||||||
.. hint::
|
.. hint::
|
||||||
|
|
||||||
This is not searx, but searxng.
|
This is not searxng, but searxng.
|
||||||
|
|
||||||
SearXNG is a free internet metasearch engine which aggregates results from more
|
SearXNG is a free internet metasearch engine which aggregates results from more
|
||||||
than 70 search services. Users are neither tracked nor profiled. Additionally,
|
than 70 search services. Users are neither tracked nor profiled. Additionally,
|
||||||
|
@ -32,7 +32,7 @@ If you don't trust anyone, you can set up your own, see :ref:`installation`.
|
||||||
user/index
|
user/index
|
||||||
admin/index
|
admin/index
|
||||||
dev/index
|
dev/index
|
||||||
searx_extra/index
|
searxng_extra/index
|
||||||
utils/index
|
utils/index
|
||||||
src/index
|
src/index
|
||||||
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
|
|
||||||
.. _standalone_searx.py:
|
|
||||||
|
|
||||||
===================================
|
|
||||||
``searx_extra/standalone_searx.py``
|
|
||||||
===================================
|
|
||||||
|
|
||||||
.. automodule:: searx_extra.standalone_searx
|
|
||||||
:members:
|
|
|
@ -1,14 +1,14 @@
|
||||||
.. _searx_extra:
|
.. _searxng_extra:
|
||||||
|
|
||||||
======================================================
|
======================================================
|
||||||
Tooling box ``searx_extra`` for developers and users
|
Tooling box ``searxng_extra`` for developers and users
|
||||||
======================================================
|
======================================================
|
||||||
|
|
||||||
In the folder :origin:`searx_extra/` we maintain some tools useful for
|
In the folder :origin:`searxng_extra/` we maintain some tools useful for
|
||||||
developers and users.
|
developers and users.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
:caption: Contents
|
:caption: Contents
|
||||||
|
|
||||||
standalone_searx.py
|
standalone_searxng.py
|
9
docs/searxng_extra/standalone_searxng.py.rst
Normal file
9
docs/searxng_extra/standalone_searxng.py.rst
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
|
||||||
|
.. _standalone_searxng.py:
|
||||||
|
|
||||||
|
===================================
|
||||||
|
``searxng_extra/standalone_searxng.py``
|
||||||
|
===================================
|
||||||
|
|
||||||
|
.. automodule:: searxng_extra.standalone_searx
|
||||||
|
:members:
|
|
@ -11,4 +11,4 @@ every item from the source code, but we will add documentation when requested.
|
||||||
:caption: Contents
|
:caption: Contents
|
||||||
:glob:
|
:glob:
|
||||||
|
|
||||||
searx.*
|
searxng.*
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
.. _searx.locales:
|
|
||||||
|
|
||||||
=======
|
|
||||||
Locales
|
|
||||||
=======
|
|
||||||
|
|
||||||
.. automodule:: searx.locales
|
|
||||||
:members:
|
|
|
@ -1,38 +0,0 @@
|
||||||
.. _searx.search:
|
|
||||||
|
|
||||||
======
|
|
||||||
Search
|
|
||||||
======
|
|
||||||
|
|
||||||
.. autoclass:: searx.search.EngineRef
|
|
||||||
:members:
|
|
||||||
|
|
||||||
.. autoclass:: searx.search.SearchQuery
|
|
||||||
:members:
|
|
||||||
|
|
||||||
.. autoclass:: searx.search.Search
|
|
||||||
|
|
||||||
.. attribute:: search_query
|
|
||||||
:type: searx.search.SearchQuery
|
|
||||||
|
|
||||||
.. attribute:: result_container
|
|
||||||
:type: searx.results.ResultContainer
|
|
||||||
|
|
||||||
.. automethod:: search() -> searx.results.ResultContainer
|
|
||||||
|
|
||||||
.. autoclass:: searx.search.SearchWithPlugins
|
|
||||||
:members:
|
|
||||||
|
|
||||||
.. attribute:: search_query
|
|
||||||
:type: searx.search.SearchQuery
|
|
||||||
|
|
||||||
.. attribute:: result_container
|
|
||||||
:type: searx.results.ResultContainer
|
|
||||||
|
|
||||||
.. attribute:: ordered_plugin_list
|
|
||||||
:type: typing.List
|
|
||||||
|
|
||||||
.. attribute:: request
|
|
||||||
:type: flask.request
|
|
||||||
|
|
||||||
.. automethod:: search() -> searx.results.ResultContainer
|
|
|
@ -4,6 +4,6 @@
|
||||||
Demo Offline Engine
|
Demo Offline Engine
|
||||||
===================
|
===================
|
||||||
|
|
||||||
.. automodule:: searx.engines.demo_offline
|
.. automodule:: searxng.engines.demo_offline
|
||||||
:members:
|
:members:
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
Demo Online Engine
|
Demo Online Engine
|
||||||
==================
|
==================
|
||||||
|
|
||||||
.. automodule:: searx.engines.demo_online
|
.. automodule:: searxng.engines.demo_online
|
||||||
:members:
|
:members:
|
||||||
|
|
|
@ -27,7 +27,7 @@ Definitions`_. Not all parameters can be appied and some engines are *special*
|
||||||
Google WEB
|
Google WEB
|
||||||
==========
|
==========
|
||||||
|
|
||||||
.. automodule:: searx.engines.google
|
.. automodule:: searxng.engines.google
|
||||||
:members:
|
:members:
|
||||||
|
|
||||||
.. _google images engine:
|
.. _google images engine:
|
||||||
|
@ -35,7 +35,7 @@ Google WEB
|
||||||
Google Images
|
Google Images
|
||||||
=============
|
=============
|
||||||
|
|
||||||
.. automodule:: searx.engines.google_images
|
.. automodule:: searxng.engines.google_images
|
||||||
:members:
|
:members:
|
||||||
|
|
||||||
.. _google videos engine:
|
.. _google videos engine:
|
||||||
|
@ -43,7 +43,7 @@ Google Images
|
||||||
Google Videos
|
Google Videos
|
||||||
=============
|
=============
|
||||||
|
|
||||||
.. automodule:: searx.engines.google_videos
|
.. automodule:: searxng.engines.google_videos
|
||||||
:members:
|
:members:
|
||||||
|
|
||||||
.. _google news engine:
|
.. _google news engine:
|
||||||
|
@ -51,5 +51,5 @@ Google Videos
|
||||||
Google News
|
Google News
|
||||||
===========
|
===========
|
||||||
|
|
||||||
.. automodule:: searx.engines.google_news
|
.. automodule:: searxng.engines.google_news
|
||||||
:members:
|
:members:
|
|
@ -4,5 +4,5 @@
|
||||||
Load Engines
|
Load Engines
|
||||||
============
|
============
|
||||||
|
|
||||||
.. automodule:: searx.engines
|
.. automodule:: searxng.engines
|
||||||
:members:
|
:members:
|
8
docs/src/searxng.locales.rst
Normal file
8
docs/src/searxng.locales.rst
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
.. _searxng.locales:
|
||||||
|
|
||||||
|
=======
|
||||||
|
Locales
|
||||||
|
=======
|
||||||
|
|
||||||
|
.. automodule:: searxng.locales
|
||||||
|
:members:
|
38
docs/src/searxng.search.rst
Normal file
38
docs/src/searxng.search.rst
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
.. _searxng.search:
|
||||||
|
|
||||||
|
======
|
||||||
|
Search
|
||||||
|
======
|
||||||
|
|
||||||
|
.. autoclass:: searxng.search.EngineRef
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. autoclass:: searxng.search.SearchQuery
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. autoclass:: searxng.search.Search
|
||||||
|
|
||||||
|
.. attribute:: search_query
|
||||||
|
:type: searxng.search.SearchQuery
|
||||||
|
|
||||||
|
.. attribute:: result_container
|
||||||
|
:type: searxng.results.ResultContainer
|
||||||
|
|
||||||
|
.. automethod:: search() -> searxng.results.ResultContainer
|
||||||
|
|
||||||
|
.. autoclass:: searxng.search.SearchWithPlugins
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. attribute:: search_query
|
||||||
|
:type: searxng.search.SearchQuery
|
||||||
|
|
||||||
|
.. attribute:: result_container
|
||||||
|
:type: searxng.results.ResultContainer
|
||||||
|
|
||||||
|
.. attribute:: ordered_plugin_list
|
||||||
|
:type: typing.List
|
||||||
|
|
||||||
|
.. attribute:: request
|
||||||
|
:type: flask.request
|
||||||
|
|
||||||
|
.. automethod:: search() -> searxng.results.ResultContainer
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
.. sidebar:: further reading
|
.. sidebar:: further reading
|
||||||
|
|
||||||
- :ref:`searx filtron`
|
- :ref:`searxng filtron`
|
||||||
- :ref:`architecture`
|
- :ref:`architecture`
|
||||||
- :ref:`installation` (:ref:`nginx <installation nginx>` & :ref:`apache
|
- :ref:`installation` (:ref:`nginx <installation nginx>` & :ref:`apache
|
||||||
<installation apache>`)
|
<installation apache>`)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.. _searx_utils:
|
.. _searxng_utils:
|
||||||
.. _toolboxing:
|
.. _toolboxing:
|
||||||
|
|
||||||
===================
|
===================
|
||||||
|
@ -11,7 +11,7 @@ In the folder :origin:`utils/` we maintain some tools useful for administrators.
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
:caption: Contents
|
:caption: Contents
|
||||||
|
|
||||||
searx.sh
|
searxng.sh
|
||||||
filtron.sh
|
filtron.sh
|
||||||
morty.sh
|
morty.sh
|
||||||
lxc.sh
|
lxc.sh
|
||||||
|
@ -36,7 +36,7 @@ Scripts to maintain services often dispose of common commands and environments.
|
||||||
Sets timeout for interactive prompts. If you want to run a script in batch
|
Sets timeout for interactive prompts. If you want to run a script in batch
|
||||||
job, with defaults choices, set ``FORCE_TIMEOUT=0``. By example; to install a
|
job, with defaults choices, set ``FORCE_TIMEOUT=0``. By example; to install a
|
||||||
reverse proxy for filtron on all containers of the :ref:`SearXNG suite
|
reverse proxy for filtron on all containers of the :ref:`SearXNG suite
|
||||||
<lxc-searx.env>` use ::
|
<lxc-searxng.env>` use ::
|
||||||
|
|
||||||
sudo -H ./utils/lxc.sh cmd -- FORCE_TIMEOUT=0 ./utils/filtron.sh apache install
|
sudo -H ./utils/lxc.sh cmd -- FORCE_TIMEOUT=0 ./utils/filtron.sh apache install
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
With the use of *Linux Containers* (LXC_) we can scale our tasks over a stack of
|
With the use of *Linux Containers* (LXC_) we can scale our tasks over a stack of
|
||||||
containers, what we call the: *lxc suite*. The *SearXNG suite*
|
containers, what we call the: *lxc suite*. The *SearXNG suite*
|
||||||
(:origin:`lxc-searx.env <utils/lxc-searx.env>`) is loaded by default, every time
|
(:origin:`lxc-searxng.env <utils/lxc-searxng.env>`) is loaded by default, every time
|
||||||
you start the ``lxc.sh`` script (*you do not need to care about*).
|
you start the ``lxc.sh`` script (*you do not need to care about*).
|
||||||
|
|
||||||
Before you can start with containers, you need to install and initiate LXD_
|
Before you can start with containers, you need to install and initiate LXD_
|
||||||
|
@ -49,7 +49,7 @@ help>`.
|
||||||
|
|
||||||
If you do not want to build all containers, **you can build just one**::
|
If you do not want to build all containers, **you can build just one**::
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh build searx-ubu1804
|
$ sudo -H ./utils/lxc.sh build searxng-ubu1804
|
||||||
|
|
||||||
*Good to know ...*
|
*Good to know ...*
|
||||||
|
|
||||||
|
@ -62,9 +62,9 @@ of::
|
||||||
|
|
||||||
In the containers, you can run what ever you want, e.g. to start a bash use::
|
In the containers, you can run what ever you want, e.g. to start a bash use::
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh cmd searx-ubu1804 bash
|
$ sudo -H ./utils/lxc.sh cmd searxng-ubu1804 bash
|
||||||
INFO: [searx-ubu1804] bash
|
INFO: [searxng-ubu1804] bash
|
||||||
root@searx-ubu1804:/share/searx#
|
root@searxng-ubu1804:/share/searxng#
|
||||||
|
|
||||||
If there comes the time you want to **get rid off all** the containers and
|
If there comes the time you want to **get rid off all** the containers and
|
||||||
**clean up local images** just type::
|
**clean up local images** just type::
|
||||||
|
@ -120,8 +120,8 @@ Reboot your system and check the iptables rules::
|
||||||
Install suite
|
Install suite
|
||||||
=============
|
=============
|
||||||
|
|
||||||
To install the complete :ref:`SearXNG suite (includes searx, morty & filtron)
|
To install the complete :ref:`SearXNG suite (includes searxng, morty & filtron)
|
||||||
<lxc-searx.env>` into all LXC_ use::
|
<lxc-searxng.env>` into all LXC_ use::
|
||||||
|
|
||||||
$ sudo -H ./utils/lxc.sh install suite
|
$ sudo -H ./utils/lxc.sh install suite
|
||||||
|
|
||||||
|
@ -131,12 +131,12 @@ command. To test instances from containers just open the URLs in your
|
||||||
WEB-Browser::
|
WEB-Browser::
|
||||||
|
|
||||||
$ sudo ./utils/lxc.sh show suite | grep filtron
|
$ sudo ./utils/lxc.sh show suite | grep filtron
|
||||||
[searx-ubu1604] INFO: (eth0) filtron: http://n.n.n.246:4004/ http://n.n.n.246/searx
|
[searxng-ubu1604] INFO: (eth0) filtron: http://n.n.n.246:4004/ http://n.n.n.246/searxng
|
||||||
[searx-ubu1804] INFO: (eth0) filtron: http://n.n.n.147:4004/ http://n.n.n.147/searx
|
[searxng-ubu1804] INFO: (eth0) filtron: http://n.n.n.147:4004/ http://n.n.n.147/searxng
|
||||||
[searx-ubu1910] INFO: (eth0) filtron: http://n.n.n.140:4004/ http://n.n.n.140/searx
|
[searxng-ubu1910] INFO: (eth0) filtron: http://n.n.n.140:4004/ http://n.n.n.140/searxng
|
||||||
[searx-ubu2004] INFO: (eth0) filtron: http://n.n.n.18:4004/ http://n.n.n.18/searx
|
[searxng-ubu2004] INFO: (eth0) filtron: http://n.n.n.18:4004/ http://n.n.n.18/searxng
|
||||||
[searx-fedora31] INFO: (eth0) filtron: http://n.n.n.46:4004/ http://n.n.n.46/searx
|
[searxng-fedora31] INFO: (eth0) filtron: http://n.n.n.46:4004/ http://n.n.n.46/searxng
|
||||||
[searx-archlinux] INFO: (eth0) filtron: http://n.n.n.32:4004/ http://n.n.n.32/searx
|
[searxng-archlinux] INFO: (eth0) filtron: http://n.n.n.32:4004/ http://n.n.n.32/searxng
|
||||||
|
|
||||||
To :ref:`install a nginx <installation nginx>` reverse proxy for filtron and
|
To :ref:`install a nginx <installation nginx>` reverse proxy for filtron and
|
||||||
morty use (or alternatively use :ref:`apache <installation apache>`)::
|
morty use (or alternatively use :ref:`apache <installation apache>`)::
|
||||||
|
@ -152,8 +152,8 @@ Running commands
|
||||||
:ref:`toolboxing`. By example: to setup a :ref:`buildhosts` and run the
|
:ref:`toolboxing`. By example: to setup a :ref:`buildhosts` and run the
|
||||||
Makefile target ``test`` in the archlinux_ container::
|
Makefile target ``test`` in the archlinux_ container::
|
||||||
|
|
||||||
sudo -H ./utils/lxc.sh cmd searx-archlinux ./utils/searx.sh install buildhost
|
sudo -H ./utils/lxc.sh cmd searxng-archlinux ./utils/searxng.sh install buildhost
|
||||||
sudo -H ./utils/lxc.sh cmd searx-archlinux make test
|
sudo -H ./utils/lxc.sh cmd searxng-archlinux make test
|
||||||
|
|
||||||
|
|
||||||
Setup SearXNG buildhost
|
Setup SearXNG buildhost
|
||||||
|
@ -164,11 +164,11 @@ The installation procedure to set up a :ref:`build host<buildhosts>` takes its
|
||||||
time. Installation in all containers will take more time (time for another cup
|
time. Installation in all containers will take more time (time for another cup
|
||||||
of coffee).::
|
of coffee).::
|
||||||
|
|
||||||
sudo -H ./utils/lxc.sh cmd -- ./utils/searx.sh install buildhost
|
sudo -H ./utils/lxc.sh cmd -- ./utils/searxng.sh install buildhost
|
||||||
|
|
||||||
To build (live) documentation inside a archlinux_ container::
|
To build (live) documentation inside a archlinux_ container::
|
||||||
|
|
||||||
sudo -H ./utils/lxc.sh cmd searx-archlinux make docs.clean docs.live
|
sudo -H ./utils/lxc.sh cmd searxng-archlinux make docs.clean docs.live
|
||||||
...
|
...
|
||||||
[I 200331 15:00:42 server:296] Serving on http://0.0.0.0:8080
|
[I 200331 15:00:42 server:296] Serving on http://0.0.0.0:8080
|
||||||
|
|
||||||
|
@ -176,7 +176,7 @@ To get IP of the container and the port number *live docs* is listening::
|
||||||
|
|
||||||
$ sudo ./utils/lxc.sh show suite | grep docs.live
|
$ sudo ./utils/lxc.sh show suite | grep docs.live
|
||||||
...
|
...
|
||||||
[searx-archlinux] INFO: (eth0) docs.live: http://n.n.n.12:8080/
|
[searxng-archlinux] INFO: (eth0) docs.live: http://n.n.n.12:8080/
|
||||||
|
|
||||||
|
|
||||||
.. _lxc.sh help:
|
.. _lxc.sh help:
|
||||||
|
@ -189,10 +189,10 @@ The ``--help`` output of the script is largely self-explanatory:
|
||||||
.. program-output:: ../utils/lxc.sh --help
|
.. program-output:: ../utils/lxc.sh --help
|
||||||
|
|
||||||
|
|
||||||
.. _lxc-searx.env:
|
.. _lxc-searxng.env:
|
||||||
|
|
||||||
SearXNG suite
|
SearXNG suite
|
||||||
=============
|
=============
|
||||||
|
|
||||||
.. literalinclude:: ../../utils/lxc-searx.env
|
.. literalinclude:: ../../utils/lxc-searxng.env
|
||||||
:language: bash
|
:language: bash
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
- :ref:`architecture`
|
- :ref:`architecture`
|
||||||
- :ref:`installation` (:ref:`nginx <installation nginx>` & :ref:`apache
|
- :ref:`installation` (:ref:`nginx <installation nginx>` & :ref:`apache
|
||||||
<installation apache>`)
|
<installation apache>`)
|
||||||
- :ref:`searx morty`
|
- :ref:`searxng morty`
|
||||||
|
|
||||||
To simplify installation and maintenance of a morty_ instance you can use the
|
To simplify installation and maintenance of a morty_ instance you can use the
|
||||||
script :origin:`utils/morty.sh`. In most cases you will install morty_ simply by
|
script :origin:`utils/morty.sh`. In most cases you will install morty_ simply by
|
||||||
|
@ -37,7 +37,7 @@ into this user account:
|
||||||
|
|
||||||
.. hint::
|
.. hint::
|
||||||
|
|
||||||
To add morty to your SearXNG instance read chapter :ref:`searx morty`.
|
To add morty to your SearXNG instance read chapter :ref:`searxng morty`.
|
||||||
|
|
||||||
Create user
|
Create user
|
||||||
===========
|
===========
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
|
||||||
.. _searx.sh:
|
.. _searxng.sh:
|
||||||
|
|
||||||
==================
|
==================
|
||||||
``utils/searx.sh``
|
``utils/searxng.sh``
|
||||||
==================
|
==================
|
||||||
|
|
||||||
.. sidebar:: further reading
|
.. sidebar:: further reading
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
- :ref:`installation apache`
|
- :ref:`installation apache`
|
||||||
|
|
||||||
To simplify installation and maintenance of a SearXNG instance you can use the
|
To simplify installation and maintenance of a SearXNG instance you can use the
|
||||||
script :origin:`utils/searx.sh`.
|
script :origin:`utils/searxng.sh`.
|
||||||
|
|
||||||
Install
|
Install
|
||||||
=======
|
=======
|
||||||
|
@ -22,9 +22,9 @@ In most cases you will install SearXNG simply by running the command:
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
sudo -H ./utils/searx.sh install all
|
sudo -H ./utils/searxng.sh install all
|
||||||
|
|
||||||
The script adds a ``${SERVICE_USER}`` (default:``searx``) and installs searx
|
The script adds a ``${SERVICE_USER}`` (default:``searxng``) and installs searxng
|
||||||
into this user account. The installation is described in chapter
|
into this user account. The installation is described in chapter
|
||||||
:ref:`installation basic`.
|
:ref:`installation basic`.
|
||||||
|
|
||||||
|
@ -36,4 +36,4 @@ Overview
|
||||||
The ``--help`` output of the script is largely self-explanatory
|
The ``--help`` output of the script is largely self-explanatory
|
||||||
(:ref:`toolboxing common`):
|
(:ref:`toolboxing common`):
|
||||||
|
|
||||||
.. program-output:: ../utils/searx.sh --help
|
.. program-output:: ../utils/searxng.sh --help
|
144
manage
144
manage
|
@ -11,7 +11,7 @@ source "$(dirname "${BASH_SOURCE[0]}")/utils/lib_static.sh"
|
||||||
|
|
||||||
# config
|
# config
|
||||||
|
|
||||||
PYOBJECTS="searx"
|
PYOBJECTS="searxng"
|
||||||
PY_SETUP_EXTRAS='[test]'
|
PY_SETUP_EXTRAS='[test]'
|
||||||
GECKODRIVER_VERSION="v0.28.0"
|
GECKODRIVER_VERSION="v0.28.0"
|
||||||
# SPHINXOPTS=
|
# SPHINXOPTS=
|
||||||
|
@ -25,15 +25,15 @@ pylint.FILES() {
|
||||||
# These py files are linted by test.pylint(), all other files are linted by
|
# These py files are linted by test.pylint(), all other files are linted by
|
||||||
# test.pep8()
|
# test.pep8()
|
||||||
|
|
||||||
grep -l -r --include \*.py '^#[[:blank:]]*lint:[[:blank:]]*pylint' searx searx_extra tests
|
grep -l -r --include \*.py '^#[[:blank:]]*lint:[[:blank:]]*pylint' searxng searxng_extra tests
|
||||||
}
|
}
|
||||||
|
|
||||||
YAMLLINT_FILES=()
|
YAMLLINT_FILES=()
|
||||||
while IFS= read -r line; do
|
while IFS= read -r line; do
|
||||||
YAMLLINT_FILES+=("$line")
|
YAMLLINT_FILES+=("$line")
|
||||||
done <<< "$(git ls-files './tests/*.yml' './searx/*.yml' './utils/templates/etc/searx/*.yml')"
|
done <<< "$(git ls-files './tests/*.yml' './searxng/*.yml' './utils/templates/etc/searxng/*.yml')"
|
||||||
|
|
||||||
PYLINT_SEARX_DISABLE_OPTION="\
|
PYLINT_SEARXNG_DISABLE_OPTION="\
|
||||||
I,C,R,\
|
I,C,R,\
|
||||||
W0105,W0212,W0511,W0603,W0613,W0621,W0702,W0703,W1401,\
|
W0105,W0212,W0511,W0603,W0613,W0621,W0702,W0703,W1401,\
|
||||||
E1136"
|
E1136"
|
||||||
|
@ -48,9 +48,9 @@ weblate.:
|
||||||
push.translations: push translation changes from SearXNG to Weblate's counterpart
|
push.translations: push translation changes from SearXNG to Weblate's counterpart
|
||||||
to.translations: Update 'translations' branch with last additions from Weblate.
|
to.translations: Update 'translations' branch with last additions from Weblate.
|
||||||
data.:
|
data.:
|
||||||
all : update searx/languages.py and ./data/*
|
all : update searxng/languages.py and ./data/*
|
||||||
languages : update searx/data/engines_languages.json & searx/languages.py
|
languages : update searxng/data/engines_languages.json & searxng/languages.py
|
||||||
useragents: update searx/data/useragents.json with the most recent versions of Firefox.
|
useragents: update searxng/data/useragents.json with the most recent versions of Firefox.
|
||||||
docs.:
|
docs.:
|
||||||
html : build HTML documentation
|
html : build HTML documentation
|
||||||
live : autobuild HTML documentation while editing
|
live : autobuild HTML documentation while editing
|
||||||
|
@ -70,14 +70,14 @@ py.:
|
||||||
build : Build python packages at ./${PYDIST}
|
build : Build python packages at ./${PYDIST}
|
||||||
clean : delete virtualenv and intermediate py files
|
clean : delete virtualenv and intermediate py files
|
||||||
pyenv.:
|
pyenv.:
|
||||||
install : developer install of searx into virtualenv
|
install : developer install of searxng into virtualenv
|
||||||
uninstall : uninstall developer installation
|
uninstall : uninstall developer installation
|
||||||
cmd ... : run command ... in virtualenv
|
cmd ... : run command ... in virtualenv
|
||||||
OK : test if virtualenv is OK
|
OK : test if virtualenv is OK
|
||||||
pypi.upload:
|
pypi.upload:
|
||||||
Upload python packages to PyPi (to test use pypi.upload.test)
|
Upload python packages to PyPi (to test use pypi.upload.test)
|
||||||
test.:
|
test.:
|
||||||
pylint : lint PYLINT_FILES, searx/engines, searx & tests
|
pylint : lint PYLINT_FILES, searxng/engines, searxng & tests
|
||||||
pep8 : pycodestyle (pep8) for all files except PYLINT_FILES
|
pep8 : pycodestyle (pep8) for all files except PYLINT_FILES
|
||||||
unit : run unit tests
|
unit : run unit tests
|
||||||
coverage : run unit tests with coverage
|
coverage : run unit tests with coverage
|
||||||
|
@ -105,17 +105,17 @@ export DOCS_BUILD
|
||||||
buildenv() {
|
buildenv() {
|
||||||
|
|
||||||
# settings file from repository's working tree are used by default
|
# settings file from repository's working tree are used by default
|
||||||
SEARX_SETTINGS_PATH="${REPO_ROOT}/searx/settings.yml"
|
SEARXNG_SETTINGS_PATH="${REPO_ROOT}/searxng/settings.yml"
|
||||||
|
|
||||||
if [ -r '/etc/searx/settings.yml' ]; then
|
if [ -r '/etc/searxng/settings.yml' ]; then
|
||||||
if ask_yn "should settings read from: /etc/searx/settings.yml"; then
|
if ask_yn "should settings read from: /etc/searxng/settings.yml"; then
|
||||||
SEARX_SETTINGS_PATH='/etc/searx/settings.yml'
|
SEARXNG_SETTINGS_PATH='/etc/searxng/settings.yml'
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
export SEARX_SETTINGS_PATH
|
export SEARXNG_SETTINGS_PATH
|
||||||
(
|
(
|
||||||
set -e
|
set -e
|
||||||
SEARX_DEBUG=1 pyenv.cmd python utils/build_env.py 2>&1 \
|
SEARXNG_DEBUG=1 pyenv.cmd python utils/build_env.py 2>&1 \
|
||||||
| prefix_stdout "${_Blue}BUILDENV${_creset} "
|
| prefix_stdout "${_Blue}BUILDENV${_creset} "
|
||||||
)
|
)
|
||||||
return "${PIPESTATUS[0]}"
|
return "${PIPESTATUS[0]}"
|
||||||
|
@ -202,16 +202,16 @@ weblate.translations.commit() {
|
||||||
weblate.to.translations
|
weblate.to.translations
|
||||||
|
|
||||||
# copy the changes to the master branch
|
# copy the changes to the master branch
|
||||||
cp -rv --preserve=mode,timestamps "${TRANSLATIONS_WORKTREE}/searx/translations" "searx"
|
cp -rv --preserve=mode,timestamps "${TRANSLATIONS_WORKTREE}/searxng/translations" "searxng"
|
||||||
|
|
||||||
# compile translations
|
# compile translations
|
||||||
build_msg BABEL 'compile translation catalogs into binary MO files'
|
build_msg BABEL 'compile translation catalogs into binary MO files'
|
||||||
pybabel compile --statistics \
|
pybabel compile --statistics \
|
||||||
-d "searx/translations"
|
-d "searxng/translations"
|
||||||
# git add/commit (no push)
|
# git add/commit (no push)
|
||||||
commit_body=$(cd "${TRANSLATIONS_WORKTREE}"; git log --pretty=format:'%h - %as - %aN <%ae>' "${existing_commit_hash}..HEAD")
|
commit_body=$(cd "${TRANSLATIONS_WORKTREE}"; git log --pretty=format:'%h - %as - %aN <%ae>' "${existing_commit_hash}..HEAD")
|
||||||
commit_message=$(echo -e "[translations] update\n${commit_body}")
|
commit_message=$(echo -e "[translations] update\n${commit_body}")
|
||||||
git add searx/translations
|
git add searxng/translations
|
||||||
git commit -m "${commit_message}"
|
git commit -m "${commit_message}"
|
||||||
)
|
)
|
||||||
exitcode=$?
|
exitcode=$?
|
||||||
|
@ -228,7 +228,7 @@ weblate.push.translations() {
|
||||||
# (weblate).
|
# (weblate).
|
||||||
|
|
||||||
# In branch master of SearXNG (origin) check for meaningful changes in
|
# In branch master of SearXNG (origin) check for meaningful changes in
|
||||||
# folder 'searx/translations', commit changes on branch 'translations' and
|
# folder 'searxng/translations', commit changes on branch 'translations' and
|
||||||
# at least, pull updated branches on Weblate's counterpart (weblate).
|
# at least, pull updated branches on Weblate's counterpart (weblate).
|
||||||
|
|
||||||
# 1. Create git worktree ${TRANSLATIONS_WORKTREE} and checkout branch
|
# 1. Create git worktree ${TRANSLATIONS_WORKTREE} and checkout branch
|
||||||
|
@ -241,7 +241,7 @@ weblate.push.translations() {
|
||||||
|
|
||||||
local messages_pot diff_messages_pot last_commit_hash last_commit_detail \
|
local messages_pot diff_messages_pot last_commit_hash last_commit_detail \
|
||||||
last_commit_message exitcode
|
last_commit_message exitcode
|
||||||
messages_pot="${TRANSLATIONS_WORKTREE}/searx/translations/messages.pot"
|
messages_pot="${TRANSLATIONS_WORKTREE}/searxng/translations/messages.pot"
|
||||||
( set -e
|
( set -e
|
||||||
pyenv.activate
|
pyenv.activate
|
||||||
# get translations branch in git worktree (TRANSLATIONS_WORKTREE)
|
# get translations branch in git worktree (TRANSLATIONS_WORKTREE)
|
||||||
|
@ -251,11 +251,11 @@ weblate.push.translations() {
|
||||||
build_msg BABEL 'extract messages from source files and generate POT file'
|
build_msg BABEL 'extract messages from source files and generate POT file'
|
||||||
pybabel extract -F babel.cfg \
|
pybabel extract -F babel.cfg \
|
||||||
-o "${messages_pot}" \
|
-o "${messages_pot}" \
|
||||||
"searx/"
|
"searxng/"
|
||||||
|
|
||||||
# stop if there is no meaningful change in the master branch
|
# stop if there is no meaningful change in the master branch
|
||||||
diff_messages_pot=$(cd "${TRANSLATIONS_WORKTREE}";\
|
diff_messages_pot=$(cd "${TRANSLATIONS_WORKTREE}";\
|
||||||
git diff -- "searx/translations/messages.pot")
|
git diff -- "searxng/translations/messages.pot")
|
||||||
if ! echo "$diff_messages_pot" | grep -qE "[\+\-](msgid|msgstr)"; then
|
if ! echo "$diff_messages_pot" | grep -qE "[\+\-](msgid|msgstr)"; then
|
||||||
build_msg BABEL 'no changes detected, exiting'
|
build_msg BABEL 'no changes detected, exiting'
|
||||||
return 42
|
return 42
|
||||||
|
@ -296,7 +296,7 @@ weblate.push.translations() {
|
||||||
build_msg BABEL 'update existing message catalogs from POT file'
|
build_msg BABEL 'update existing message catalogs from POT file'
|
||||||
pybabel update -N \
|
pybabel update -N \
|
||||||
-i "${messages_pot}" \
|
-i "${messages_pot}" \
|
||||||
-d "${TRANSLATIONS_WORKTREE}/searx/translations"
|
-d "${TRANSLATIONS_WORKTREE}/searxng/translations"
|
||||||
|
|
||||||
# git add/commit/push
|
# git add/commit/push
|
||||||
last_commit_hash=$(git log -n1 --pretty=format:'%h')
|
last_commit_hash=$(git log -n1 --pretty=format:'%h')
|
||||||
|
@ -304,7 +304,7 @@ weblate.push.translations() {
|
||||||
last_commit_message="[translations] update messages.pot and messages.po files\nFrom ${last_commit_detail}"
|
last_commit_message="[translations] update messages.pot and messages.po files\nFrom ${last_commit_detail}"
|
||||||
|
|
||||||
pushd "${TRANSLATIONS_WORKTREE}"
|
pushd "${TRANSLATIONS_WORKTREE}"
|
||||||
git add searx/translations
|
git add searxng/translations
|
||||||
git commit -m "${last_commit_message}"
|
git commit -m "${last_commit_message}"
|
||||||
git push
|
git push
|
||||||
popd
|
popd
|
||||||
|
@ -327,12 +327,12 @@ data.all() {
|
||||||
data.languages
|
data.languages
|
||||||
data.useragents
|
data.useragents
|
||||||
data.osm_keys_tags
|
data.osm_keys_tags
|
||||||
build_msg DATA "update searx/data/ahmia_blacklist.txt"
|
build_msg DATA "update searxng/data/ahmia_blacklist.txt"
|
||||||
python searx_extra/update/update_ahmia_blacklist.py
|
python searxng_extra/update/update_ahmia_blacklist.py
|
||||||
build_msg DATA "update searx/data/wikidata_units.json"
|
build_msg DATA "update searxng/data/wikidata_units.json"
|
||||||
python searx_extra/update/update_wikidata_units.py
|
python searxng_extra/update/update_wikidata_units.py
|
||||||
build_msg DATA "update searx/data/currencies.json"
|
build_msg DATA "update searxng/data/currencies.json"
|
||||||
python searx_extra/update/update_currencies.py
|
python searxng_extra/update/update_currencies.py
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -341,22 +341,22 @@ data.languages() {
|
||||||
( set -e
|
( set -e
|
||||||
pyenv.activate
|
pyenv.activate
|
||||||
build_msg ENGINES "fetch languages .."
|
build_msg ENGINES "fetch languages .."
|
||||||
python searx_extra/update/update_languages.py
|
python searxng_extra/update/update_languages.py
|
||||||
build_msg ENGINES "update update searx/languages.py"
|
build_msg ENGINES "update update searxng/languages.py"
|
||||||
build_msg DATA "update searx/data/engines_languages.json"
|
build_msg DATA "update searxng/data/engines_languages.json"
|
||||||
)
|
)
|
||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
data.useragents() {
|
data.useragents() {
|
||||||
build_msg DATA "update searx/data/useragents.json"
|
build_msg DATA "update searxng/data/useragents.json"
|
||||||
pyenv.cmd python searx_extra/update/update_firefox_version.py
|
pyenv.cmd python searxng_extra/update/update_firefox_version.py
|
||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
data.osm_keys_tags() {
|
data.osm_keys_tags() {
|
||||||
build_msg DATA "update searx/data/osm_keys_tags.json"
|
build_msg DATA "update searxng/data/osm_keys_tags.json"
|
||||||
pyenv.cmd python searx_extra/update/update_osm_keys_tags.py
|
pyenv.cmd python searxng_extra/update/update_osm_keys_tags.py
|
||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -366,7 +366,7 @@ docs.prebuild() {
|
||||||
set -e
|
set -e
|
||||||
[ "$VERBOSE" = "1" ] && set -x
|
[ "$VERBOSE" = "1" ] && set -x
|
||||||
mkdir -p "${DOCS_BUILD}/includes"
|
mkdir -p "${DOCS_BUILD}/includes"
|
||||||
./utils/searx.sh doc | cat > "${DOCS_BUILD}/includes/searx.rst"
|
./utils/searxng.sh doc | cat > "${DOCS_BUILD}/includes/searxng.rst"
|
||||||
./utils/filtron.sh doc | cat > "${DOCS_BUILD}/includes/filtron.rst"
|
./utils/filtron.sh doc | cat > "${DOCS_BUILD}/includes/filtron.rst"
|
||||||
./utils/morty.sh doc | cat > "${DOCS_BUILD}/includes/morty.rst"
|
./utils/morty.sh doc | cat > "${DOCS_BUILD}/includes/morty.rst"
|
||||||
)
|
)
|
||||||
|
@ -385,10 +385,10 @@ docker.buildx() {
|
||||||
docker.build() {
|
docker.build() {
|
||||||
pyenv.install
|
pyenv.install
|
||||||
|
|
||||||
local SEARX_GIT_VERSION
|
local SEARXNG_GIT_VERSION
|
||||||
local VERSION_GITCOMMIT
|
local VERSION_GITCOMMIT
|
||||||
local GITHUB_USER
|
local GITHUB_USER
|
||||||
local SEARX_IMAGE_NAME
|
local SEARXNG_IMAGE_NAME
|
||||||
local BUILD
|
local BUILD
|
||||||
|
|
||||||
build_msg DOCKER build
|
build_msg DOCKER build
|
||||||
|
@ -413,8 +413,8 @@ docker.build() {
|
||||||
|
|
||||||
# This is a git repository
|
# This is a git repository
|
||||||
git update-index -q --refresh
|
git update-index -q --refresh
|
||||||
python -m searx.version freeze
|
python -m searxng.version freeze
|
||||||
eval "$(python -m searx.version)"
|
eval "$(python -m searxng.version)"
|
||||||
|
|
||||||
# Get the last git commit id
|
# Get the last git commit id
|
||||||
VERSION_GITCOMMIT=$(echo "$VERSION_STRING" | cut -d- -f3)
|
VERSION_GITCOMMIT=$(echo "$VERSION_STRING" | cut -d- -f3)
|
||||||
|
@ -422,35 +422,35 @@ docker.build() {
|
||||||
|
|
||||||
# define the docker image name
|
# define the docker image name
|
||||||
GITHUB_USER=$(echo "${GIT_URL}" | sed 's/.*github\.com\/\([^\/]*\).*/\1/')
|
GITHUB_USER=$(echo "${GIT_URL}" | sed 's/.*github\.com\/\([^\/]*\).*/\1/')
|
||||||
SEARX_IMAGE_NAME="${SEARX_IMAGE_NAME:-${GITHUB_USER:-searxng}/searxng}"
|
SEARXNG_IMAGE_NAME="${SEARXNG_IMAGE_NAME:-${GITHUB_USER:-searxng}/searxng}"
|
||||||
|
|
||||||
BUILD="build"
|
BUILD="build"
|
||||||
if [ "$1" = "buildx" ]; then
|
if [ "$1" = "buildx" ]; then
|
||||||
# buildx includes the push option
|
# buildx includes the push option
|
||||||
CACHE_TAG="${SEARX_IMAGE_NAME}:latest-build-cache"
|
CACHE_TAG="${SEARXNG_IMAGE_NAME}:latest-build-cache"
|
||||||
BUILD="buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --push --cache-from=type=registry,ref=$CACHE_TAG --cache-to=type=registry,ref=$CACHE_TAG,mode=max"
|
BUILD="buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --push --cache-from=type=registry,ref=$CACHE_TAG --cache-to=type=registry,ref=$CACHE_TAG,mode=max"
|
||||||
shift
|
shift
|
||||||
fi
|
fi
|
||||||
build_msg DOCKER "Build command: ${BUILD}"
|
build_msg DOCKER "Build command: ${BUILD}"
|
||||||
|
|
||||||
# build Docker image
|
# build Docker image
|
||||||
build_msg DOCKER "Building image ${SEARX_IMAGE_NAME}:${SEARX_GIT_VERSION}"
|
build_msg DOCKER "Building image ${SEARXNG_IMAGE_NAME}:${SEARXNG_GIT_VERSION}"
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
docker $BUILD \
|
docker $BUILD \
|
||||||
--build-arg BASE_IMAGE="${DEPENDENCIES_IMAGE_NAME}" \
|
--build-arg BASE_IMAGE="${DEPENDENCIES_IMAGE_NAME}" \
|
||||||
--build-arg GIT_URL="${GIT_URL}" \
|
--build-arg GIT_URL="${GIT_URL}" \
|
||||||
--build-arg SEARX_GIT_VERSION="${VERSION_STRING}" \
|
--build-arg SEARXNG_GIT_VERSION="${VERSION_STRING}" \
|
||||||
--build-arg VERSION_GITCOMMIT="${VERSION_GITCOMMIT}" \
|
--build-arg VERSION_GITCOMMIT="${VERSION_GITCOMMIT}" \
|
||||||
--build-arg LABEL_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \
|
--build-arg LABEL_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \
|
||||||
--build-arg LABEL_VCS_REF="$(git rev-parse HEAD)" \
|
--build-arg LABEL_VCS_REF="$(git rev-parse HEAD)" \
|
||||||
--build-arg LABEL_VCS_URL="${GIT_URL}" \
|
--build-arg LABEL_VCS_URL="${GIT_URL}" \
|
||||||
--build-arg TIMESTAMP_SETTINGS="$(git log -1 --format="%cd" --date=unix -- searx/settings.yml)" \
|
--build-arg TIMESTAMP_SETTINGS="$(git log -1 --format="%cd" --date=unix -- searxng/settings.yml)" \
|
||||||
--build-arg TIMESTAMP_UWSGI="$(git log -1 --format="%cd" --date=unix -- dockerfiles/uwsgi.ini)" \
|
--build-arg TIMESTAMP_UWSGI="$(git log -1 --format="%cd" --date=unix -- dockerfiles/uwsgi.ini)" \
|
||||||
-t "${SEARX_IMAGE_NAME}:latest" -t "${SEARX_IMAGE_NAME}:${VERSION_STRING}" .
|
-t "${SEARXNG_IMAGE_NAME}:latest" -t "${SEARXNG_IMAGE_NAME}:${VERSION_STRING}" .
|
||||||
|
|
||||||
if [ "$1" = "push" ]; then
|
if [ "$1" = "push" ]; then
|
||||||
docker push "${SEARX_IMAGE_NAME}:latest"
|
docker push "${SEARXNG_IMAGE_NAME}:latest"
|
||||||
docker push "${SEARX_IMAGE_NAME}:${SEARX_GIT_VERSION}"
|
docker push "${SEARXNG_IMAGE_NAME}:${SEARXNG_GIT_VERSION}"
|
||||||
fi
|
fi
|
||||||
)
|
)
|
||||||
dump_return $?
|
dump_return $?
|
||||||
|
@ -495,17 +495,17 @@ gecko.driver() {
|
||||||
node.env() {
|
node.env() {
|
||||||
if ! required_commands npm; then
|
if ! required_commands npm; then
|
||||||
info_msg "to install build tools use::"
|
info_msg "to install build tools use::"
|
||||||
info_msg " sudo -H ./utils/searx.sh install buildhost"
|
info_msg " sudo -H ./utils/searxng.sh install buildhost"
|
||||||
die 1 "install needed build tools first"
|
die 1 "install needed build tools first"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
( set -e
|
( set -e
|
||||||
|
|
||||||
build_msg INSTALL "searx/static/themes/oscar/package.json"
|
build_msg INSTALL "searxng/static/themes/oscar/package.json"
|
||||||
npm --prefix searx/static/themes/oscar install
|
npm --prefix searxng/static/themes/oscar install
|
||||||
|
|
||||||
build_msg INSTALL "searx/static/themes/simple/package.json"
|
build_msg INSTALL "searxng/static/themes/simple/package.json"
|
||||||
npm --prefix searx/static/themes/simple install
|
npm --prefix searxng/static/themes/simple install
|
||||||
)
|
)
|
||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
|
@ -517,15 +517,15 @@ node.clean() {
|
||||||
fi
|
fi
|
||||||
build_msg CLEAN "locally installed npm dependencies"
|
build_msg CLEAN "locally installed npm dependencies"
|
||||||
( set -e
|
( set -e
|
||||||
npm --prefix searx/static/themes/oscar run clean
|
npm --prefix searxng/static/themes/oscar run clean
|
||||||
npm --prefix searx/static/themes/simple run clean
|
npm --prefix searxng/static/themes/simple run clean
|
||||||
)
|
)
|
||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
pygments.less() {
|
pygments.less() {
|
||||||
build_msg PYGMENTS "searx_extra/update/update_pygments.py"
|
build_msg PYGMENTS "searxng_extra/update/update_pygments.py"
|
||||||
if ! pyenv.cmd python searx_extra/update/update_pygments.py; then
|
if ! pyenv.cmd python searxng_extra/update/update_pygments.py; then
|
||||||
build_msg PYGMENTS "building LESS files for pygments failed"
|
build_msg PYGMENTS "building LESS files for pygments failed"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
@ -569,7 +569,7 @@ pyenv.install() {
|
||||||
|
|
||||||
( set -e
|
( set -e
|
||||||
pyenv
|
pyenv
|
||||||
build_msg PYENV "[install] pip install -e 'searx${PY_SETUP_EXTRAS}'"
|
build_msg PYENV "[install] pip install -e 'searxng${PY_SETUP_EXTRAS}'"
|
||||||
"${PY_ENV_BIN}/python" -m pip install -e ".${PY_SETUP_EXTRAS}"
|
"${PY_ENV_BIN}/python" -m pip install -e ".${PY_SETUP_EXTRAS}"
|
||||||
buildenv
|
buildenv
|
||||||
)
|
)
|
||||||
|
@ -613,17 +613,17 @@ test.pylint() {
|
||||||
--additional-builtins="${PYLINT_ADDITIONAL_BUILTINS_FOR_ENGINES}" \
|
--additional-builtins="${PYLINT_ADDITIONAL_BUILTINS_FOR_ENGINES}" \
|
||||||
"${PYLINT_FILES[@]}"
|
"${PYLINT_FILES[@]}"
|
||||||
|
|
||||||
build_msg TEST "[pylint] searx/engines"
|
build_msg TEST "[pylint] searxng/engines"
|
||||||
python ${PYLINT_OPTIONS} ${PYLINT_VERBOSE} \
|
python ${PYLINT_OPTIONS} ${PYLINT_VERBOSE} \
|
||||||
--disable="${PYLINT_SEARX_DISABLE_OPTION}" \
|
--disable="${PYLINT_SEARXNG_DISABLE_OPTION}" \
|
||||||
--additional-builtins="${PYLINT_ADDITIONAL_BUILTINS_FOR_ENGINES}" \
|
--additional-builtins="${PYLINT_ADDITIONAL_BUILTINS_FOR_ENGINES}" \
|
||||||
searx/engines
|
searxng/engines
|
||||||
|
|
||||||
build_msg TEST "[pylint] searx tests"
|
build_msg TEST "[pylint] searxng tests"
|
||||||
python ${PYLINT_OPTIONS} ${PYLINT_VERBOSE} \
|
python ${PYLINT_OPTIONS} ${PYLINT_VERBOSE} \
|
||||||
--disable="${PYLINT_SEARX_DISABLE_OPTION}" \
|
--disable="${PYLINT_SEARXNG_DISABLE_OPTION}" \
|
||||||
--ignore=searx/engines \
|
--ignore=searxng/engines \
|
||||||
searx tests
|
searxng tests
|
||||||
)
|
)
|
||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
|
@ -633,10 +633,10 @@ test.pep8() {
|
||||||
local _exclude=""
|
local _exclude=""
|
||||||
printf -v _exclude '%s, ' "${PYLINT_FILES[@]}"
|
printf -v _exclude '%s, ' "${PYLINT_FILES[@]}"
|
||||||
pyenv.cmd pycodestyle \
|
pyenv.cmd pycodestyle \
|
||||||
--exclude="searx/static, searx/languages.py, $_exclude " \
|
--exclude="searxng/static, searxng/languages.py, $_exclude " \
|
||||||
--max-line-length=120 \
|
--max-line-length=120 \
|
||||||
--ignore "E117,E252,E402,E722,E741,W503,W504,W605" \
|
--ignore "E117,E252,E402,E722,E741,W503,W504,W605" \
|
||||||
searx tests
|
searxng tests
|
||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -650,7 +650,7 @@ test.coverage() {
|
||||||
build_msg TEST 'unit test coverage'
|
build_msg TEST 'unit test coverage'
|
||||||
( set -e
|
( set -e
|
||||||
pyenv.activate
|
pyenv.activate
|
||||||
python -m nose2 -C --log-capture --with-coverage --coverage searx -s tests/unit
|
python -m nose2 -C --log-capture --with-coverage --coverage searxng -s tests/unit
|
||||||
coverage report
|
coverage report
|
||||||
coverage html
|
coverage html
|
||||||
)
|
)
|
||||||
|
@ -682,13 +682,13 @@ themes.all() {
|
||||||
|
|
||||||
themes.oscar() {
|
themes.oscar() {
|
||||||
build_msg GRUNT "theme: oscar"
|
build_msg GRUNT "theme: oscar"
|
||||||
npm --prefix searx/static/themes/oscar run build
|
npm --prefix searxng/static/themes/oscar run build
|
||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
themes.simple() {
|
themes.simple() {
|
||||||
build_msg GRUNT "theme: simple"
|
build_msg GRUNT "theme: simple"
|
||||||
npm --prefix searx/static/themes/simple run build
|
npm --prefix searxng/static/themes/simple run build
|
||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
2
searx/static/themes/oscar/js/searx.min.js
vendored
2
searx/static/themes/oscar/js/searx.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
||||||
js/searx_src/autocomplete.js
|
|
|
@ -1,2 +0,0 @@
|
||||||
(function(t,e){"use strict";var a=e.currentScript||function(){var t=e.getElementsByTagName("script");return t[t.length-1]}();t.searx={touch:"ontouchstart"in t||t.DocumentTouch&&document instanceof DocumentTouch||false,method:a.getAttribute("data-method"),autocompleter:a.getAttribute("data-autocompleter")==="true",search_on_category_select:a.getAttribute("data-search-on-category-select")==="true",infinite_scroll:a.getAttribute("data-infinite-scroll")==="true",static_path:a.getAttribute("data-static-path"),translations:JSON.parse(a.getAttribute("data-translations"))};e.getElementsByTagName("html")[0].className=t.searx.touch?"js touch":"js"})(window,document);
|
|
||||||
//# sourceMappingURL=searx.head.min.js.map
|
|
|
@ -1 +0,0 @@
|
||||||
{"version":3,"file":"searx.head.min.js","sources":["searx.head.js"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searx","touch","DocumentTouch","document","method","getAttribute","autocompleter","search_on_category_select","infinite_scroll","static_path","translations","JSON","parse","className","window"],"mappings":"CAkBA,SAAUA,EAAGC,gBAIT,IAAIC,EAASD,EAAEE,eAAkB,WAC7B,IAAIC,EAAUH,EAAEI,qBAAqB,UACrC,OAAOD,EAAQA,EAAQE,OAAS,GAFH,GAMjCN,EAAEO,MAAQ,CACNC,MAAS,iBAAkBR,GAAMA,EAAES,eAAiBC,oBAAoBD,eAAkB,MAC1FE,OAAQT,EAAOU,aAAa,eAC5BC,cAAeX,EAAOU,aAAa,wBAA0B,OAC7DE,0BAA2BZ,EAAOU,aAAa,oCAAsC,OACrFG,gBAAiBb,EAAOU,aAAa,0BAA4B,OACjEI,YAAad,EAAOU,aAAa,oBACjCK,aAAcC,KAAKC,MAAMjB,EAAOU,aAAa,uBAIjDX,EAAEI,qBAAqB,QAAQ,GAAGe,UAAapB,EAAEO,MAAW,MAAE,WAAW,MArB7E,CAsBGc,OAAQX"}
|
|
24
searx/static/themes/simple/js/searx.min.js
vendored
24
searx/static/themes/simple/js/searx.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue