From 4a35975b427b3ebee4f5cc54e2390356b0102536 Mon Sep 17 00:00:00 2001 From: Dalf Date: Wed, 22 Jul 2020 14:58:04 +0200 Subject: [PATCH] [enh] update documentation about docker --- .dockerignore | 9 +++++- dockerfiles/docker-entrypoint.sh | 50 ++++++++++++++++++------------ docs/admin/installation-docker.rst | 44 ++++++++++++++++++++++---- 3 files changed, 77 insertions(+), 26 deletions(-) diff --git a/.dockerignore b/.dockerignore index 044460b2..3d158c95 100644 --- a/.dockerignore +++ b/.dockerignore @@ -46,4 +46,11 @@ node_modules/ */*/*/node_modules/ */*/*/*/node_modules/ -.tx/ \ No newline at end of file +.tx/ + +# +build/ +dist/ +local/ +gh-pages/ +searx.egg-info/ diff --git a/dockerfiles/docker-entrypoint.sh b/dockerfiles/docker-entrypoint.sh index 8b4c3486..221a204a 100755 --- a/dockerfiles/docker-entrypoint.sh +++ b/dockerfiles/docker-entrypoint.sh @@ -1,15 +1,39 @@ #!/bin/sh -export SEARX_VERSION=$(su searx -c 'python3 -c "import six; import searx.version; six.print_(searx.version.VERSION_STRING)"') -printf 'searx version %s\n\n' "${SEARX_VERSION}" +help() { + printf "Command line:\n\n" + printf " -h Display this help\n" + printf " -d Dry run to update the configuration files.\n" + printf " -f Always update on the configuration files (existing files are renamed with the .old suffix)\n" + printf " Without this option, the new configuration files are copied with the .new suffix\n" + printf "\nEnvironment variables:\n\n" + printf " INSTANCE_NAME settings.yml : general.instance_name\n" + printf " AUTOCOMPLETE settings.yml : search.autocomplete\n" + printf " BASE_URL settings.yml : server.base_url\n" + printf " MORTY_URL settings.yml : result_proxy.url\n" + printf " MORTY_KEY settings.yml : result_proxy.key\n" + printf " BIND_ADDRESS uwsgi bind to the specified TCP socket using HTTP protocol. Default value: \"${DEFAULT_BIND_ADDRESS}\"\n" + printf "\nVolume:\n\n" + printf " /etc/searx the docker entry point copies settings.yml and uwsgi.ini in this directory (see the -f command line option)\n" + exit 0 +} + +export DEFAULT_BIND_ADDRESS="0.0.0.0:8080" +if [ -z "${BIND_ADDRESS}" ]; then + export BIND_ADDRESS="${DEFAULT_BIND_ADDRESS}" +fi + +export SEARX_VERSION=$(su searx -c 'python3 -c "import six; import searx.version; six.print_(searx.version.VERSION_STRING)"' 2>/dev/null) +if [ -z "${SEARX_VERSION}" ]; then + # outside docker, display help + help +else + printf 'searx version %s\n\n' "${SEARX_VERSION}" +fi export UWSGI_SETTINGS_PATH=/etc/searx/uwsgi.ini export SEARX_SETTINGS_PATH=/etc/searx/settings.yml -if [ -z "${BIND_ADDRESS}" ]; then - export BIND_ADDRESS=":8080" -fi - # Parse command line FORCE_CONF_UPDATE=0 DRY_RUN=0 @@ -23,19 +47,7 @@ do DRY_RUN=1 ;; h) - printf "Command line:\n\n" - printf " -h Display this help\n" - printf " -d Dry run to update the configuration files.\n" - printf " -f Always update on the configuration files (existing files are renamed with the .old suffix)\n" - printf " Without this option, new configuration files are copied with the .new suffix\n" - printf "\nEnvironment variables:\n\n" - printf " INSTANCE_NAME settings.yml : general.instance_name\n" - printf " AUTOCOMPLETE settings.yml : search.autocomplete\n" - printf " BASE_URL settings.yml : server.base_url\n" - printf " MORTY_URL settings.yml : result_proxy.url\n" - printf " MORTY_KEY settings.yml : result_proxy.key\n" - printf " BIND_ADDRESS where uwsgi will accept HTTP request (format : host:port)\n" - exit 0 + help esac done diff --git a/docs/admin/installation-docker.rst b/docs/admin/installation-docker.rst index 340e6631..9510ded0 100644 --- a/docs/admin/installation-docker.rst +++ b/docs/admin/installation-docker.rst @@ -9,20 +9,52 @@ Docker installation :local: :backlinks: entry -Make sure you have installed Docker. For instance, you can deploy searx like this: +---- + +Docker image searx/searx +======================== + + +The docker image is `searx/searx `_ (based on `github.com/searx/searx `_). + +Make sure you have `installed Docker `_. For instance, you can deploy a local instance: .. code:: sh - docker pull wonderfall/searx - docker run -d --name searx -p $PORT:8888 wonderfall/searx + export PORT=80 + docker pull searx/searx + docker run --rm -d -v ${PWD}/searx:/etc/searx -p $PORT:8080 -e BASE_URL=http://localhost:$PORT/ searx/searx Go to ``http://localhost:$PORT``. -See https://hub.docker.com/r/wonderfall/searx/ for more informations. It's also -possible to build searx from the embedded Dockerfile. +Inside ``${PWD}/searx``, you will find ``settings.yml`` and ``uwsgi.ini``. +You can modify these files according to your needs and restart the Docker image. + + +Command line +------------ + + +.. code:: sh + + docker run --rm -it searx/searx -h + +.. program-output:: ../dockerfiles/docker-entrypoint.sh -h + + +Build the image +--------------- + +It's also possible to build searx from the embedded Dockerfile. .. code:: sh git clone https://github.com/asciimoo/searx.git cd searx - docker build -t whatever/searx . + make docker + + +Public instance +=============== + +If you intend to create a public instance using Docker, see https://github.com/searx/searx-docker