.. _installation basic: ========================= Step by step installation ========================= .. contents:: :depth: 2 :local: :backlinks: entry In this section we show the setup of a SearXNG instance that will be installed by the :ref:`installation scripts`. .. _install packages: Install packages ================ .. kernel-include:: $DOCS_BUILD/includes/searxng.rst :start-after: START distro-packages :end-before: END distro-packages .. hint:: This installs also the packages needed by :ref:`searxng uwsgi` .. _create searxng user: Create user =========== .. kernel-include:: $DOCS_BUILD/includes/searxng.rst :start-after: START create user :end-before: END create user .. _searxng-src: Install SearXNG & dependencies ============================== Start a interactive shell from new created user and clone SearXNG: .. kernel-include:: $DOCS_BUILD/includes/searxng.rst :start-after: START clone searxng :end-before: END clone searxng In the same shell create *virtualenv*: .. kernel-include:: $DOCS_BUILD/includes/searxng.rst :start-after: START create virtualenv :end-before: END create virtualenv To install SearXNG's dependencies, exit the SearXNG *bash* session you opened above and start a new one. Before installing, check if your *virtualenv* was sourced from the login (*~/.profile*): .. kernel-include:: $DOCS_BUILD/includes/searxng.rst :start-after: START manage.sh update_packages :end-before: END manage.sh update_packages .. tip:: Open a second terminal for the configuration tasks and leave the ``(searx)$`` terminal open for the tasks below. .. _use_default_settings.yml: Configuration ============= .. sidebar:: ``use_default_settings: True`` - :ref:`settings.yml` - :ref:`settings location` - :ref:`settings use_default_settings` - :origin:`/etc/searxng/settings.yml ` To create a initial ``/etc/searxng/settings.yml`` we recommend to start with a copy of the file :origin:`utils/templates/etc/searxng/settings.yml`. This setup :ref:`use default settings ` from :origin:`searx/settings.yml` and is shown in the tab *"Use default settings"* below. This setup: - enables :ref:`limiter ` to protect against bots - enables :ref:`image proxy ` for better privacy - enables :ref:`cache busting ` to save bandwidth Modify the ``/etc/searxng/settings.yml`` to your needs: .. tabs:: .. group-tab:: Use default settings .. literalinclude:: ../../utils/templates/etc/searxng/settings.yml :language: yaml :end-before: # hostname_replace: To see the entire file jump to :origin:`utils/templates/etc/searxng/settings.yml` .. group-tab:: searx/settings.yml .. literalinclude:: ../../searx/settings.yml :language: yaml :end-before: # hostname_replace: To see the entire file jump to :origin:`searx/settings.yml` For a *minimal setup* you need to set ``server:secret_key``. .. kernel-include:: $DOCS_BUILD/includes/searxng.rst :start-after: START searxng config :end-before: END searxng config Check ===== To check your SearXNG setup, optional enable debugging and start the *webapp*. SearXNG looks at the exported environment ``$SEARXNG_SETTINGS_PATH`` for a configuration file. .. kernel-include:: $DOCS_BUILD/includes/searxng.rst :start-after: START check searxng installation :end-before: END check searxng installation 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 session (enter exit command twice). At this point SearXNG is not demonized; uwsgi allows this.