summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-05-21[fix] pinterest: engine broken due to API changes (#4816)Bnyro
- apparently the API now requires a `X-Pinterest-PWS-Handler` in order to properly function (extracted from their web UI) - the other `X-Pinterest` headers here are added in case they become mandatory too Closes: https://github.com/searxng/searxng/issues/4812
2025-05-21[feat] engines: add uxwing engine for icons (#4819)Bnyro
- uxwing provides attribution-free icons to use for design projects - svgrepo was my go-to before, but it's ratelimiting a lot recently
2025-05-21[refactor] icon engines: add new icon category (#4817)Bnyro
Icons category makes sense because it allows to quickly search for free SVG icons to use for websites / other designs with a quick `!icons` query Icons don't seem to fit into the normal images category that well because icons are quite a special type of images
2025-05-20[chore] fix some docstring typos (#4815)Jost Alemann
2025-05-20[fix] yahoo: url and title xpathuseralias
2025-05-20[mod] upgrade to httpx 0.28.1 (#4674)Alexandre Flament
2025-05-20[fix] duckduckgo engines: issue when get_vqd() is used by ddg-images and ↵Markus Heiser
ddg-videos (#4809) The global variable CACHE is not initialized when DDG images or DDG videos import the get_vqd() function (please remember: the engine modules are imported using the importlib method and not via the `import` keyword). Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-05-20[mod] container: refactor entrypoint scriptIvan Gabaldon
That entrypoint is prone to screw things up, especially with permission handling. The new script handles initialization better and fixes some issues like delayed settings update via ENVs and timestamp overwriting, also adjusts what should be copied into the container. Related https://github.com/searxng/searxng/pull/4721#issuecomment-2850272129
2025-05-20[fix] container: base-builder should have essentialsIvan Gabaldon
The wolfi-base metapackage includes busybox, ca-certificates-bundle and the package manager. The change is to make the use of base-builder image more flexible.
2025-05-18[upd] web-client (simple): Bump vite-plugin-static-copy (#4791)dependabot[bot]
Bumps [vite-plugin-static-copy](https://github.com/sapphi-red/vite-plugin-static-copy) from 2.3.1 to 3.0.0. - [Release notes](https://github.com/sapphi-red/vite-plugin-static-copy/releases) - [Changelog](https://github.com/sapphi-red/vite-plugin-static-copy/blob/main/CHANGELOG.md) - [Commits](https://github.com/sapphi-red/vite-plugin-static-copy/compare/vite-plugin-static-copy@2.3.1...vite-plugin-static-copy@3.0.0)
2025-05-18[mod] engine invidious: commented out / no public API available nowadays (#4800)Markus Heiser
Reported-by: @unifox https://github.com/searxng/searxng/issues/2722#issuecomment-2884993248 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-05-17[mod] container: build custom base images (#4799)Ivan Gabaldon
Instead of using Wolfi base images from cgr.dev and making that mess on the Dockerfile, why don't we build the base images ourselves from Wolfi repos with apko? The intention of this is to simplify the main Dockerfile and avoid having to patch the base image every time, it also simplifies some steps like image ownership management and provides extremely fast builds.
2025-05-16[l10n] update translations from Weblate (#4788)github-actions[bot]
2025-05-16[upd] pypi: Bump typer-slim from 0.15.3 to 0.15.4 in the minor group (#4789)dependabot[bot]
Bumps the minor group with 1 update: [typer-slim](https://github.com/fastapi/typer). Updates `typer-slim` from 0.15.3 to 0.15.4 - [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.15.3...0.15.4) --- updated-dependencies: - dependency-name: typer-slim dependency-version: 0.15.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-15[enh] container: use Wolfi OS as base imageIvan Gabaldon
Wolfi OS images are specifically designed for container use. Using a specially designed base image for containers not only reduces maintenance burdens, but improves overall experience for developers (fewer packages we have to track) and end users (smaller images). Discussion here: https://github.com/searxng/searxng/issues/4753
2025-05-15[enh] container: support multiple registriesIvan Gabaldon
Allows to push the manifests to other registries, this allows to push both docker.io and ghcr.io registries.
2025-05-15[fix] CI: commit author should be `searxng-bot`Ivan Gabaldon
If the workflow is executed with the "workflow_dispatch" trigger, the user who executed the workflow becomes the author of the commit on the PR, this is not intended. It also reverts the body param so that the default text of the action does not appear.
2025-05-15[fix] CI: prevent race conditionIvan Gabaldon
`checker.yml` and `integration.yml` are the only workflows that are currently safe to be executed simultaneously, the others present a risk that the order of completion may not be expected. The ones that are chained from `integration.yml` can be called as many times as `integration.yml` workflows are running at that moment, the same with the trigger "workflow_dispatch". This can be fatal for workflows like `container.yml` that use a centralized cache to store and load the candidate images in a common tag called "searxng-<arch>". * For example, a `container.yml` workflow is executed after being chained from `integration.yml` (called "~1"), and seconds later it may be triggered again because another PR merged some breaking changes (called "~2"). While "~1" has already passed the test job successfully and is about to start the release job, "~2" finishes building the container and overwrites the references on the common tag. When "~1" in the release job loads the images using the common tag, it will load the container of "~2" instead of "~1" having skipped the whole test job process. The example is only set for the container workflow, but the other workflows might occur in a similar way.
2025-05-15[fix] CI: container-mounts bad hashIvan Gabaldon
This is a typo, but if there are multiple patterns in hashFiles, they should be separated by commas. https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/evaluate-expressions-in-workflows-and-actions#examples-with-multiple-patterns
2025-05-14[fix] CI: handle old cache images from registryIvan Gabaldon
Currently, we have 1100~ cache images uploaded to GHCR that weigh more than 300 MB each (most of them are layers from the second phase of the Dockerfile that were uploaded by mistake, read below). To avoid problems, I have set up a new job in a new workflow to be run weekly purging all images older than 1 week, but leaving always the 100 most recent ones. Only the builder images should be uploaded to cache, the actual behaviour not only slows down the time for building the container, but also wastes lots of space by saving large and useless layers to GHCR that will never be used again.
2025-05-14Bump flask from 3.1.0 to 3.1.1 (#4780)dependabot[bot]
Bumps [flask](https://github.com/pallets/flask) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/pallets/flask/releases) - [Changelog](https://github.com/pallets/flask/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/flask/compare/3.1.0...3.1.1)
2025-05-13[enh] tidy: clean old morty, filtron, searx referencesIvan Gabaldon
Everyone should have already switched from legacy methods.
2025-05-13[upd] pypi: Bump the minor group with 2 updates (#4776)dependabot[bot]
Bumps the minor group with 2 updates: [selenium](https://github.com/SeleniumHQ/Selenium) and [redis](https://github.com/redis/redis-py). Updates `selenium` from 4.31.0 to 4.32.0 - [Release notes](https://github.com/SeleniumHQ/Selenium/releases) - [Commits](https://github.com/SeleniumHQ/Selenium/compare/selenium-4.31.0...selenium-4.32.0) Updates `redis` from 5.0.8 to 5.2.1 - [Release notes](https://github.com/redis/redis-py/releases) - [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES) - [Commits](https://github.com/redis/redis-py/compare/v5.0.8...v5.2.1)
2025-05-13[upd] web-client (simple): Bump the minor group (#4775)dependabot[bot]
Bumps the minor group in /client/simple with 5 updates: | Package | From | To | | --- | --- | --- | | [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.25.1` | `9.26.0` | | [eslint](https://github.com/eslint/eslint) | `9.25.1` | `9.26.0` | | [globals](https://github.com/sindresorhus/globals) | `16.0.0` | `16.1.0` | | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `6.3.4` | `6.3.5` | | [webpack](https://github.com/webpack/webpack) | `5.99.7` | `5.99.8` | Updates `@eslint/js` from 9.25.1 to 9.26.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/commits/v9.26.0/packages/js) Updates `eslint` from 9.25.1 to 9.26.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.25.1...v9.26.0) Updates `globals` from 16.0.0 to 16.1.0 - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](https://github.com/sindresorhus/globals/compare/v16.0.0...v16.1.0) Updates `vite` from 6.3.4 to 6.3.5 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.3.5/packages/vite) Updates `webpack` from 5.99.7 to 5.99.8 - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.99.7...v5.99.8)
2025-05-13[enh] tidy: clean old morty, filtron, searx referencesIvan Gabaldon
Everyone should have already switched from legacy methods
2025-05-13[fix] engine archlinux: avoid Anubis challenge by User-Agent "SearXNG" (#4779)Markus Heiser
Of the archlinux wikis only wiki.archlinux.org has a has Anubis challenge. About Anubis[1]: > Anubis decides to present a challenge using this logic: > > - User-Agent contains "Mozilla" > ... > This should ensure that git clients, RSS readers, and other low-harm clients > can get through without issue .. [1] https://github.com/TecharoHQ/anubis/blob/6c0ff3f4d5e7a66ea85e5873e6ee4c28692091d7/docs/docs/design/how-anubis-works.mdx#challenge-presentation Suggested-by: @unixfox https://github.com/searxng/searxng/issues/4646#issuecomment-2855322406 Closes: https://github.com/searxng/searxng/issues/4646 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-05-12[fix] DOCKERHUB_USERNAME env reference (#4778)Ivan Gabaldon
When making the container rework, I unknowingly deleted the section where an env with the same name as the secret was defined on the job scope, making it look like it was originally defined as an organization env. Since we can't validate the secrets in a condition directly, it's better to let docker/login-action take care of failing the entire job if the credentials are invalid. Reported in: https://github.com/searxng/searxng/issues/4777
2025-05-12[mod] lib_sxng_container.sh: replace echo commands with heredocIvan Gabaldon
Suggested-by: @return42 https://github.com/searxng/searxng/pull/4764#discussion_r2083571202
2025-05-12[mod] lib_sxng_container.sh use required_commands() helperIvan Gabaldon
Suggested-by: @return42 https://github.com/searxng/searxng/pull/4764#discussion_r2083564489
2025-05-12[mod] CI: dependabot group updates by minor & patch and major updates (#4773)Markus Heiser
By default, Dependabot opens a new pull request to update each dependency and we have a very large number of Dependabot pull requests to review and merge, which can quickly become difficult to manage. The intention of this patch to dependabot is to have: - one PR for all minor & patch level updates - one PR for every dependency with a major update [1] https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/optimizing-pr-creation-version-updates [2] https://docs.github.com/en/code-security/dependabot/working-with-dependabot/dependabot-options-reference#groups Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-05-12[doc] add chapter on the purpose of (git) commits (#4729)Markus Heiser
Chapter on the purpose of (git) commits The commits and their messages are elementary for the traceability of changes and are unfortunately still too often given too little attention. It therefore seems necessary to dedicate a chapter to this topic in the context of development. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-05-11revert using null keywordIvan Gabaldon
env.DOCKERHUB_USERNAME shouldn't be an empty string as it's defined and set (I think, I can't see this). Even if wasn't defined, GitHub Org/Repo wide envs/secrets should return an empty string (?)
2025-05-11[mod] rework container deployment (#4764)Ivan Gabaldon
container.yml will run after integration.yml COMPLETES successfully and in master branch. Style changes, cleanup and improved integration with CI by leveraging the use of shared cache between all workflows. * Podman is now supported to build the container images (Docker also received a refactor, merging both build and buildx) * Container images are being built by Buildah instead of Docker BuildKit. * Container images are tested before release. * Splitting "modern" (amd64 & arm64) and "legacy" (armv7) arches on different Dockerfiles allowing future optimizations.
2025-05-10[mod] refactor integration.yml (#4763)Ivan Gabaldon
Style changes, cleanup and improved integration with CI by leveraging the use of shared cache between all workflows.
2025-05-10[mod] new l10n.yml workflow (#4734)Ivan Gabaldon
l10n.yml will run after integration.yml finishes successfully (will defer anything depending on integration.yml until heavy loads like container building are moved to separate workflows) and in master branch. * After every integration.yml workflow completes successfully, only the `update` job runs. * Dispatch and Crontab triggers only the `pr` job. Style changes, cleanup and improved integration with CI by leveraging the use of shared cache between all workflows (not functional until all workflows have been refactored).
2025-05-10[fix] documentation should run on push/prIvan Gabaldon
Instead of executing the workflow after integration.yml completes correctly, let's run this workflow parallel to integration.yml restoring the original behaviour.
2025-05-09chore: docker + github-actions dependabot (#4754)Émilien (perso)
* chore: docker dependabot * Add github actions too
2025-05-09[build] /staticMarkus Heiser
2025-05-09[fix] static.build.commit: add missing searx/templates/simple/icons.htmlMarkus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-05-09[fix] simple client: jinja_svg_catalog addClassesToSVGElementMarkus Heiser
Starting with ionicons-8.0.8 the SVG already contains a class attribute and instaed of using SVGO plugin ``addAttributesToSVGElement`` we habve to use ``addClassesToSVGElement`` to add out ``__jinja_class_placeholder__``. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-05-09[upd] web-client (simple): Bump ionicons in /client/simpledependabot[bot]
Bumps [ionicons](https://github.com/ionic-team/ionicons) from 7.4.0 to 8.0.8. - [Release notes](https://github.com/ionic-team/ionicons/releases) - [Commits](https://github.com/ionic-team/ionicons/compare/v7.4.0...v8.0.8) --- updated-dependencies: - dependency-name: ionicons dependency-version: 8.0.8 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2025-05-09[upd] pypi: Bump pylint from 3.3.6 to 3.3.7 (#4750)dependabot[bot]
Bumps [pylint](https://github.com/pylint-dev/pylint) from 3.3.6 to 3.3.7. - [Release notes](https://github.com/pylint-dev/pylint/releases) - [Commits](https://github.com/pylint-dev/pylint/compare/v3.3.6...v3.3.7) --- updated-dependencies: - dependency-name: pylint dependency-version: 3.3.7 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-09[upd] pypi: Bump yamllint from 1.37.0 to 1.37.1 (#4752)dependabot[bot]
Bumps [yamllint](https://github.com/adrienverge/yamllint) from 1.37.0 to 1.37.1. - [Release notes](https://github.com/adrienverge/yamllint/releases) - [Changelog](https://github.com/adrienverge/yamllint/blob/master/CHANGELOG.rst) - [Commits](https://github.com/adrienverge/yamllint/compare/v1.37.0...v1.37.1) --- updated-dependencies: - dependency-name: yamllint dependency-version: 1.37.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-09[l10n] update translations from Weblate (#4744)SearXNG Bot
6f8c520f2 - 2025-05-08 - polskiecus <polskiecus@noreply.codeberg.org> 05dd91d5b - 2025-05-08 - return42 <return42@noreply.codeberg.org> 686b8e5fb - 2025-05-08 - return42 <return42@noreply.codeberg.org> f40b42bd8 - 2025-05-05 - ehsanrs2 <ehsanrs2@noreply.codeberg.org> b8013bc99 - 2025-05-03 - polskiecus <polskiecus@noreply.codeberg.org> 5affaa104 - 2025-05-02 - SomeTr <sometr@noreply.codeberg.org> Co-authored-by: searxng-bot <searxng-bot@users.noreply.github.com>
2025-05-09[data] update searx.data - update_wikidata_units.py (#4738)github-actions[bot]
2025-05-09[data] update searx.data - update_ahmia_blacklist.py (#4739)github-actions[bot]
Co-authored-by: inetol <inetol@users.noreply.github.com>
2025-05-09[data] update searx.data - update_currencies.py (#4740)github-actions[bot]
Co-authored-by: inetol <inetol@users.noreply.github.com>
2025-05-09[data] update searx.data - update_engine_traits.py (#4741)github-actions[bot]
Co-authored-by: inetol <inetol@users.noreply.github.com>
2025-05-09[data] update searx.data - update_engine_descriptions.py (#4742)github-actions[bot]
Co-authored-by: inetol <inetol@users.noreply.github.com>
2025-05-08[fix] missing PR perm data-update.yml workflow (#4737)Ivan Gabaldon
We actually don't need to keep the token on checkout because `peter-evans/create-pull-request` will read from `github.token`. The obvious `pull-requests` write permission wasn't set in the last fix, so I added it now.