mirror of https://github.com/searxng/searxng.git
a1d9c81915
Closes: #1617 There is an issue with the setup example in https://asciimoo.github.io/searx/dev/install/installation.html#installation for subdirectory URL deployments: ```nginx root /usr/local/searx; location = /searx { rewrite ^ /searx/; } try_files $uri @searx; } location @searx { uwsgi_param SCRIPT_NAME /searx; include uwsgi_params; uwsgi_modifier1 30; uwsgi_pass unix:/run/uwsgi/app/searx/socket; } ``` `try_files` causes Nginx to search for files in the server root first. If it matches a file, it is returned. Only if no file matched, the request is passed to uwsgi. The worst consequence I can think of is that `settings.yml` can be downloaded without authentication (where secrets and configuration details are stored). To fix this, I propose: ```nginx location = /searx { rewrite ^ /searx/; } location /searx/static { } location /searx { uwsgi_param SCRIPT_NAME /searx; include uwsgi_params; uwsgi_pass unix:/run/uwsgi/app/searx/socket; } ``` And add ``` route-run = fixpathinfo: ``` to `/etc/uwsgi/apps-available/searx.ini` because `uwsgi_modifier1 30` is apparently deprecated. Ref: https://uwsgi-docs.readthedocs.io/en/latest/Changelog-2.0.11.html#fixpathinfo-routing-action I assume this issue exists because some uwsgi upstream docs also use the `try_files` construct (at least I have seen this somewhere in the docs or somewhere else on the Internet but cannot find it right now again). https://uwsgi-docs.readthedocs.io/en/latest/Nginx.html#hosting-multiple-apps-in-the-same-process-aka-managing-script-name-and-path-info also warns about this: > If used incorrectly a configuration like this may cause security problems. For your sanity’s sake, double-triple-quadruple check that your application files, configuration files and any other sensitive files are outside of the root of the static files. |
||
---|---|---|
dockerfiles | ||
docs | ||
examples | ||
searx | ||
tests | ||
utils | ||
.codecov.yml | ||
.coveragerc | ||
.dir-locals.el | ||
.dockerignore | ||
.gitattributes | ||
.gitignore | ||
.landscape.yaml | ||
.pylintrc | ||
.travis.yml | ||
AUTHORS.rst | ||
CHANGELOG.rst | ||
Dockerfile | ||
LICENSE | ||
Makefile | ||
README.rst | ||
babel.cfg | ||
manage.sh | ||
requirements-dev.txt | ||
requirements.txt | ||
setup.py | ||
tox.ini |
README.rst
searx
A privacy-respecting, hackable metasearch engine.
Pronunciation: səːks
List of running instances.
See the documentation and the wiki for more information.
Installation
With Docker ------Go to the searx-docker project.
Without Docker ------For all of the details, follow this step by step installation.
Note: the documentation needs to be updated.
If you are in a hurry ------- clone the source: git clone https://github.com/asciimoo/searx.git && cd searx
- install dependencies: ./manage.sh update_packages
- edit your settings.yml (set your secret_key
!) - run python searx/webapp.py
to start the application
Bugs
Bugs or suggestions? Visit the issue tracker.