Compare commits

...

6 Commits

Author SHA1 Message Date
Markus Heiser b1f4a153e6
Merge e28a69515c into dfaf5868e2 2024-11-12 07:36:38 +01:00
Leo Liu dfaf5868e2 [fix] settings.yml - enabled_plugins: document to reflect default settings
Remove 'Autodetect search language', which is no longer valid, from settings,
and add 'Unit converter plugin', which is now default enabled, to settings.
2024-11-10 16:09:41 +01:00
Leo Liu b173f3a8b9 Fix scheduler.lua 2024-11-10 15:53:58 +01:00
dependabot[bot] 2fbf15eccb [upd] pypi: Bump typer-slim from 0.12.5 to 0.13.0
Bumps [typer-slim](https://github.com/fastapi/typer) from 0.12.5 to 0.13.0.
- [Release notes](https://github.com/fastapi/typer/releases)
- [Changelog](https://github.com/fastapi/typer/blob/master/docs/release-notes.md)
- [Commits](https://github.com/fastapi/typer/compare/0.12.5...0.13.0)

---
updated-dependencies:
- dependency-name: typer-slim
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-08 08:51:43 +01:00
searxng-bot 08c5f258d8 [l10n] update translations from Weblate
8d90a7e6d - 2024-11-06 - sahussawud <sahussawud@users.noreply.translate.codeberg.org>
41ee8bb0d - 2024-11-02 - laaknor <laaknor@users.noreply.translate.codeberg.org>
c1a30afab - 2024-11-02 - return42 <return42@users.noreply.translate.codeberg.org>
627ab7a8e - 2024-11-01 - zarlin <zarlin@users.noreply.translate.codeberg.org>
2024-11-08 08:45:07 +01:00
Markus Heiser e28a69515c [mod] uWSGI config: configuring uwsgi for production
As stated in .. and other posts, the defaults of uWSGI not suitable for a
productive environment.  To give just one example, the workers run indefinitely
and the memory leaks aggregate.

- "Configuring uWSGI for Production: The defaults are all wrong" EuroPython 2019 [1]
- "Configuring uWSGI for Production Deployment" [2]
- "When Paul has tested some PR on his instance, we could clearly see a memory
  leak over a week: the memory never dropped to the initial value. Same for my
  instance using Docker." [3]

[1] https://av.tib.eu/media/44810
[2] https://www.bloomberg.com/company/stories/configuring-uwsgi-production-deployment/
[3] https://github.com/searxng/searxng/pull/3443#issuecomment-2094347004

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2024-06-23 12:05:15 +02:00
16 changed files with 99 additions and 41 deletions

View File

@ -1,3 +1,4 @@
# -*- mode: conf-unix; coding: utf-8 -*-
[uwsgi]
# Who will run the code
uid = searxng
@ -6,6 +7,13 @@ gid = searxng
# Number of workers (usually CPU count)
# default value: %k (= number of CPU core, see Dockerfile)
workers = $(UWSGI_WORKERS)
harakiri = 60
# max-requests = 1000 # Restart workers after this many requests
# max-worker-lifetime = 3600 # Restart workers after this many seconds
reload-on-rss = 4096 # Restart workers after this much resident memory
worker-reload-mercy = 60 # How long to wait before forcefully killing workers
die-on-term = true # Shutdown when receiving SIGTERM (default is respawn)
py-callos-afterfork = true # allow workers to trap signals
# Number of threads per worker
# default value: 4 (see Dockerfile)
@ -17,6 +25,9 @@ chmod-socket = 666
# Plugin to use and interpreter config
single-interpreter = true
master = true
strict = true
vacuum = true # Delete sockets during shutdown
need-app = true
plugin = python3
lazy-apps = true
enable-threads = true
@ -33,7 +44,8 @@ auto-procname = true
# Disable request logging for privacy
disable-logging = true
log-5xx = true
log-4xx = true # but log 4xx's anyway
log-5xx = true # and 5xx's
# Set the max size of a request (request-body excluded)
buffer-size = 8192

View File

@ -18,4 +18,4 @@ fasttext-predict==0.9.2.2
tomli==2.0.2; python_version < '3.11'
msgspec==0.18.6
eval_type_backport; python_version < '3.9'
typer-slim==0.12.5
typer-slim==0.13.0

View File

@ -20,7 +20,7 @@ if (next_call_ts == false or next_call_ts == nil) then
-- 2/ the next call is a random time between start_after_from and start_after_to
local initial_delay = math.random(start_after_from, start_after_to)
redis.call('SET', redis_key, now + initial_delay)
return { false, delay }
return { false, initial_delay }
end
-- next_call_ts is defined

View File

@ -226,15 +226,12 @@ outgoing:
# - 'Hash plugin'
# - 'Self Information'
# - 'Tracker URL remover'
# - 'Unit converter plugin'
# - 'Ahmia blacklist' # activation depends on outgoing.using_tor_proxy
# # these plugins are disabled if nothing is configured ..
# - 'Hostnames plugin' # see 'hostnames' configuration below
# - 'Open Access DOI rewrite'
# - 'Tor check plugin'
# # Read the docs before activate: auto-detection of the language could be
# # detrimental to users expectations / users can activate the plugin in the
# # preferences if they want.
# - 'Autodetect search language'
# Configuration of the "Hostnames plugin":
#

View File

@ -39,9 +39,8 @@ msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-10-05 06:24+0000\n"
"PO-Revision-Date: 2024-10-26 21:13+0000\n"
"Last-Translator: Atul_Eterno <Atul_Eterno@users.noreply.translate.codeberg."
"org>\n"
"PO-Revision-Date: 2024-11-03 09:08+0000\n"
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>\n"
"Language-Team: Spanish <https://translate.codeberg.org/projects/searxng/"
"searxng/es/>\n"
"Language: es\n"
@ -1246,7 +1245,7 @@ msgstr "Tiempo máximo"
#: searx/templates/simple/preferences/favicon.html:2
msgid "Favicon Resolver"
msgstr ""
msgstr "Buscador de favicon"
#: searx/templates/simple/preferences/favicon.html:15
msgid "Display favicons near search results"

View File

@ -10,21 +10,22 @@
# return42 <return42@users.noreply.translate.codeberg.org>, 2024.
# omfj <omfj@users.noreply.translate.codeberg.org>, 2024.
# combwizard <combwizard@users.noreply.translate.codeberg.org>, 2024.
# laaknor <laaknor@users.noreply.translate.codeberg.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-10-05 06:24+0000\n"
"PO-Revision-Date: 2024-10-04 21:35+0000\n"
"Last-Translator: combwizard "
"<combwizard@users.noreply.translate.codeberg.org>\n"
"PO-Revision-Date: 2024-11-03 09:08+0000\n"
"Last-Translator: laaknor <laaknor@users.noreply.translate.codeberg.org>\n"
"Language-Team: Norwegian Bokmål <https://translate.codeberg.org/projects/"
"searxng/searxng/nb_NO/>\n"
"Language: nb_NO\n"
"Language-Team: Norwegian Bokmål "
"<https://translate.codeberg.org/projects/searxng/searxng/nb_NO/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.8.1\n"
"Generated-By: Babel 2.16.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@ -1051,7 +1052,7 @@ msgstr "Det er ingen flere resultater. Du kan prøve å:"
#: searx/templates/simple/messages/no_results.html:19
msgid "Refresh the page."
msgstr "oppfrisk siden"
msgstr "oppfrisk siden."
#: searx/templates/simple/messages/no_results.html:20
msgid "Search for another query or select another category (above)."
@ -1882,4 +1883,3 @@ msgstr "skjul video"
#~ msgid "Engines cannot retrieve results"
#~ msgstr "Søkemotorer kan ikke motta resultater"

View File

@ -23,13 +23,14 @@
# notlmutsaers <notlmutsaers@users.noreply.translate.codeberg.org>, 2024.
# return42 <return42@users.noreply.translate.codeberg.org>, 2024.
# ljansen <ljansen@users.noreply.translate.codeberg.org>, 2024.
# zarlin <zarlin@users.noreply.translate.codeberg.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-10-05 06:24+0000\n"
"PO-Revision-Date: 2024-10-28 21:07+0000\n"
"Last-Translator: ljansen <ljansen@users.noreply.translate.codeberg.org>\n"
"PO-Revision-Date: 2024-11-02 04:00+0000\n"
"Last-Translator: zarlin <zarlin@users.noreply.translate.codeberg.org>\n"
"Language-Team: Dutch <https://translate.codeberg.org/projects/searxng/"
"searxng/nl/>\n"
"Language: nl\n"
@ -493,7 +494,7 @@ msgstr "stemmen"
#: searx/engines/radio_browser.py:107
msgid "clicks"
msgstr "clicks"
msgstr "klikken"
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
#: searx/engines/zlibrary.py:137
@ -662,7 +663,7 @@ msgstr "Voorkeuren"
#: searx/templates/simple/base.html:68
msgid "Powered by"
msgstr "Zoekmachine"
msgstr "Verzorgd door"
#: searx/templates/simple/base.html:68
msgid "a privacy-respecting, open metasearch engine"
@ -1069,7 +1070,7 @@ msgstr "Er zijn geen resultaten meer. U kunt proberen om:"
#: searx/templates/simple/messages/no_results.html:19
msgid "Refresh the page."
msgstr "Ververs de pagina"
msgstr "Ververs de pagina."
#: searx/templates/simple/messages/no_results.html:20
msgid "Search for another query or select another category (above)."
@ -1235,9 +1236,8 @@ msgid "Max time"
msgstr "Max. duur"
#: searx/templates/simple/preferences/favicon.html:2
#, fuzzy
msgid "Favicon Resolver"
msgstr "favicon-resolver"
msgstr "Favicon Oplosser"
#: searx/templates/simple/preferences/favicon.html:15
msgid "Display favicons near search results"

View File

@ -8,21 +8,23 @@
# return42 <return42@users.noreply.translate.codeberg.org>, 2024.
# abhabongse <abhabongse@users.noreply.translate.codeberg.org>, 2024.
# tutakrab <tutakrab@users.noreply.translate.codeberg.org>, 2024.
# sahussawud <sahussawud@users.noreply.translate.codeberg.org>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-10-05 06:24+0000\n"
"PO-Revision-Date: 2024-10-02 16:10+0000\n"
"Last-Translator: tutakrab <tutakrab@users.noreply.translate.codeberg.org>"
"PO-Revision-Date: 2024-11-06 07:26+0000\n"
"Last-Translator: sahussawud <sahussawud@users.noreply.translate.codeberg.org>"
"\n"
"Language-Team: Thai <https://translate.codeberg.org/projects/searxng/searxng/"
"th/>\n"
"Language: th\n"
"Language-Team: Thai "
"<https://translate.codeberg.org/projects/searxng/searxng/th/>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.8.1\n"
"Generated-By: Babel 2.16.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@ -163,7 +165,7 @@ msgstr "มืด"
#. STYLE_NAMES['BLACK']
#: searx/searxng.msg
msgid "black"
msgstr ""
msgstr "สีดำ"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
@ -331,12 +333,12 @@ msgstr "ผู้เขียน"
#. SOCIAL_MEDIA_TERMS['THREAD OPEN']
#: searx/engines/discourse.py:149 searx/searxng.msg
msgid "open"
msgstr ""
msgstr "สร้าง"
#. SOCIAL_MEDIA_TERMS['THREAD CLOSED']
#: searx/engines/discourse.py:149 searx/searxng.msg
msgid "closed"
msgstr ""
msgstr "ลบ"
#. SOCIAL_MEDIA_TERMS['THREAD ANSWERED']
#: searx/engines/discourse.py:160 searx/searxng.msg
@ -450,7 +452,7 @@ msgstr "คำนวณ {functions} จากอาร์กิวเมนต
#: searx/engines/mozhi.py:57
msgid "Synonyms"
msgstr ""
msgstr "คำเหมือน"
#: searx/engines/openstreetmap.py:159
msgid "Get directions"
@ -538,8 +540,9 @@ msgid "hash digest"
msgstr "แฮชย่อย"
#: searx/plugins/hostnames.py:103
#, fuzzy
msgid "Hostnames plugin"
msgstr ""
msgstr "ชื่อโฮส ปลั๊กอิน"
#: searx/plugins/hostnames.py:104
msgid "Rewrite hostnames, remove results or prioritize them based on the hostname"
@ -1698,4 +1701,3 @@ msgstr "ซ่อนวิดีโอ"
#~ msgid "Engines cannot retrieve results"
#~ msgstr "เครื่องมือไม่สามารถดึงผลลัพธ์ได้"

View File

@ -1,4 +1,4 @@
# -*- mode: conf; coding: utf-8 -*-
# -*- mode: conf-unix; coding: utf-8 -*-
[uwsgi]
# uWSGI core
@ -24,6 +24,8 @@ env = SEARXNG_SETTINGS_PATH=${SEARXNG_SETTINGS_PATH}
# disable logging for privacy
logger = systemd
disable-logging = true
log-4xx = true # but log 4xx's anyway
log-5xx = true # and 5xx's
# The right granted on the created socket
chmod-socket = 666
@ -33,6 +35,9 @@ single-interpreter = true
# enable master process
master = true
strict = true
vacuum = true # Delete sockets during shutdown
need-app = true
# load apps in each worker instead of the master
lazy-apps = true
@ -50,6 +55,13 @@ enable-threads = true
# Number of workers (usually CPU count)
workers = ${UWSGI_WORKERS:-%k}
threads = ${UWSGI_THREADS:-4}
harakiri = 60
# max-requests = 1000 # Restart workers after this many requests
# max-worker-lifetime = 3600 # Restart workers after this many seconds
reload-on-rss = 4096 # Restart workers after this much resident memory
worker-reload-mercy = 60 # How long to wait before forcefully killing workers
die-on-term = true # Shutdown when receiving SIGTERM (default is respawn)
py-callos-afterfork = true # allow workers to trap signals
# plugin: python
# --------------

View File

@ -1,4 +1,4 @@
# -*- mode: conf; coding: utf-8 -*-
# -*- mode: conf-unix; coding: utf-8 -*-
[uwsgi]
# uWSGI core
@ -24,6 +24,8 @@ env = SEARXNG_SETTINGS_PATH=${SEARXNG_SETTINGS_PATH}
# disable logging for privacy
logger = systemd
disable-logging = true
log-4xx = true # but log 4xx's anyway
log-5xx = true # and 5xx's
# The right granted on the created socket
chmod-socket = 666
@ -33,6 +35,9 @@ single-interpreter = true
# enable master process
master = true
strict = true
vacuum = true # Delete sockets during shutdown
need-app = true
# load apps in each worker instead of the master
lazy-apps = true
@ -50,6 +55,13 @@ enable-threads = true
# Number of workers (usually CPU count)
workers = ${UWSGI_WORKERS:-%k}
threads = ${UWSGI_THREADS:-4}
harakiri = 60
# max-requests = 1000 # Restart workers after this many requests
# max-worker-lifetime = 3600 # Restart workers after this many seconds
reload-on-rss = 4096 # Restart workers after this much resident memory
worker-reload-mercy = 60 # How long to wait before forcefully killing workers
die-on-term = true # Shutdown when receiving SIGTERM (default is respawn)
py-callos-afterfork = true # allow workers to trap signals
# plugin: python
# --------------

View File

@ -1,4 +1,4 @@
# -*- mode: conf; coding: utf-8 -*-
# -*- mode: conf-unix; coding: utf-8 -*-
[uwsgi]
# uWSGI core
@ -27,6 +27,8 @@ env = SEARXNG_SETTINGS_PATH=${SEARXNG_SETTINGS_PATH}
# disable logging for privacy
disable-logging = true
log-4xx = true # but log 4xx's anyway
log-5xx = true # and 5xx's
# The right granted on the created socket
chmod-socket = 666
@ -36,6 +38,9 @@ single-interpreter = true
# enable master process
master = true
strict = true
vacuum = true # Delete sockets during shutdown
need-app = true
# load apps in each worker instead of the master
lazy-apps = true
@ -53,6 +58,13 @@ enable-threads = true
# Number of workers (usually CPU count)
workers = ${UWSGI_WORKERS:-%k}
threads = ${UWSGI_THREADS:-4}
harakiri = 60
# max-requests = 1000 # Restart workers after this many requests
# max-worker-lifetime = 3600 # Restart workers after this many seconds
reload-on-rss = 4096 # Restart workers after this much resident memory
worker-reload-mercy = 60 # How long to wait before forcefully killing workers
die-on-term = true # Shutdown when receiving SIGTERM (default is respawn)
py-callos-afterfork = true # allow workers to trap signals
# plugin: python
# --------------

View File

@ -1,4 +1,4 @@
# -*- mode: conf; coding: utf-8 -*-
# -*- mode: conf-unix; coding: utf-8 -*-
[uwsgi]
# uWSGI core
@ -27,6 +27,8 @@ env = SEARXNG_SETTINGS_PATH=${SEARXNG_SETTINGS_PATH}
# disable logging for privacy
disable-logging = true
log-4xx = true # but log 4xx's anyway
log-5xx = true # and 5xx's
# The right granted on the created socket
chmod-socket = 666
@ -36,6 +38,9 @@ single-interpreter = true
# enable master process
master = true
strict = true
vacuum = true # Delete sockets during shutdown
need-app = true
# load apps in each worker instead of the master
lazy-apps = true
@ -53,6 +58,13 @@ enable-threads = true
# Number of workers (usually CPU count)
workers = ${UWSGI_WORKERS:-%k}
threads = ${UWSGI_THREADS:-4}
harakiri = 60
# max-requests = 1000 # Restart workers after this many requests
# max-worker-lifetime = 3600 # Restart workers after this many seconds
reload-on-rss = 4096 # Restart workers after this much resident memory
worker-reload-mercy = 60 # How long to wait before forcefully killing workers
die-on-term = true # Shutdown when receiving SIGTERM (default is respawn)
py-callos-afterfork = true # allow workers to trap signals
# plugin: python
# --------------