diff --git a/README.md b/README.md index ab6cbcc..660e089 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,12 @@ Create a new SearXNG instance in five minutes using Docker - Edit the [.env](https://github.com/searxng/searxng-docker/blob/master/.env) file to set the hostname and an email - Generate the secret key ```sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml``` - Edit the [searxng/settings.yml](https://github.com/searxng/searxng-docker/blob/master/searxng/settings.yml) file according to your need -- Check everything is working: ```./start.sh``` +- Check everything is working: ```docker-compose up``` + +### Start SearXNG with systemd + +You can skip this step if you don't use systemd. + - ```cp searxng-docker.service.template searxng-docker.service``` - edit the content of ```WorkingDirectory``` in the ```searxng-docker.service``` file (only if the installation path is different from /usr/local/searxng-docker) - Install the systemd unit: diff --git a/searxng-docker.service.template b/searxng-docker.service.template index 6744b01..93c24ff 100644 --- a/searxng-docker.service.template +++ b/searxng-docker.service.template @@ -4,13 +4,11 @@ Requires=docker.service After=docker.service [Service] -Restart=always +Restart=on-failure -Environment=SEARXNG_DIR=/usr/local/searxng-docker -Environment=SEARXNG_DOCKERCOMPOSEFILE=docker-compose.yaml - -ExecStart=/bin/sh -c "${SEARXNG_DIR}/start.sh" -ExecStop=/bin/sh -c "${SEARXNG_DIR}/stop.sh" +WorkingDirectory=/usr/local/searxng-docker +ExecStart=/usr/local/bin/docker-compose up --remove-orphans +ExecStop=/usr/local/bin/docker-compose down [Install] WantedBy=multi-user.target diff --git a/start.sh b/start.sh deleted file mode 100755 index 9a5a760..0000000 --- a/start.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -READLINK="$(which readlink greadlink | tail -n1)" -BASE_DIR="$(dirname -- "`$READLINK -f -- "$0"`")" -cd -- "$BASE_DIR" - -. ./util.sh - -$DOCKERCOMPOSE -f $DOCKERCOMPOSEFILE down -$DOCKERCOMPOSE -f $DOCKERCOMPOSEFILE rm -fv -$DOCKERCOMPOSE -f $DOCKERCOMPOSEFILE up diff --git a/stop.sh b/stop.sh deleted file mode 100755 index 48f609b..0000000 --- a/stop.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -READLINK="$(which readlink greadlink | tail -n1)" -BASE_DIR="$(dirname -- "`$READLINK -f -- "$0"`")" -cd -- "$BASE_DIR" - -. ./util.sh - -$DOCKERCOMPOSE -f $DOCKERCOMPOSEFILE down diff --git a/update.sh b/update.sh deleted file mode 100755 index b85eba6..0000000 --- a/update.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/sh -# -# Disclaimer: this is more a documentation than code to execute -# - -# change if require -SERVICE_NAME="searxng-docker.service" - -# change if require : -# fastforward : only fast-forward -# rebase : rebase with autostash, at your own risk -UPDATE_TYPE="fastforward" - -READLINK="$(which readlink greadlink | tail -n1)" -BASE_DIR="$(dirname -- "`$READLINK -f -- "$0"`")" -cd -- "$BASE_DIR" - -# check if git presence -if [ ! -x "$(which git)" ]; then - echo "git not found" 1>&2 - exit 1 -fi - -# check if the current user owns the local git repository -git_owner=$(stat -c '%U' .git) -if [ "$git_owner" != "$(whoami)" ]; then - echo "The .git repository is own by $git_owner" 1>&2 - exit 1 -fi - -# warning if the current branch is not master -current_branch=$(git rev-parse --abbrev-ref HEAD) -if [ "$current_branch" != "master" ]; then - echo "Warning: master won't be updated, only $current_branch" -fi - -# git fetch first -git fetch origin master - -# is everything already up-to-date ? -current_commit=$(git rev-parse $current_branch) -origin_master_commit=$(git rev-parse origin/master) -if [ "$current_commit" = "$origin_master_commit" ]; then - echo "Already up-to-date, commit $current_commit" - exit 0 -fi - -# docker stuff -SEARXNG_DOCKERCOMPOSE=$(grep "Environment=SEARXNG_DOCKERCOMPOSEFILE=" "$SERVICE_NAME" | awk -F\= '{ print $3 }') -. ./util.sh - -if [ ! -x "$(which systemctl)" ]; then - echo "systemctl not found" 1>&2 - exit 1 -fi - -# stop the systemd service now, because after the update -# the code might be out of sync with the current running services -systemctl stop "${SERVICE_NAME}" - -# update -case "$UPDATE_TYPE" in - "fastforward") - git pull --ff-only origin master - ;; - "rebase") - git pull --rebase --autostash origin master - ;; -esac - -# Check conflicts -if [ $(git ls-files -u | wc -l) -gt 0 ]; then - echo "There are git conflicts" -else - # update docker images - docker-compose -f $DOCKERCOMPOSEFILE pull - - # remove dangling images - docker rmi $(docker images -f "dangling=true" -q) - - # display SearxNG version - SEARXNG_IMAGE=$(cat $DOCKERCOMPOSEFILE | grep "searxng/searxng" | awk '{ print $2 }') - SEARXNG_VERSION=$(docker inspect -f '{{index .Config.Labels "org.label-schema.version"}}' $SEARXNG_IMAGE) - echo "SearXNG version: $SEARXNG_VERSION" - docker images --digests "searxng/*:latest" - - # update SearxNG configuration - source ./.env - docker-compose -f $DOCKERCOMPOSEFILE run searxng ${SEARXNG_COMMAND} -d - - # let the user see - echo "Use\nsystemctl start \"${SERVICE_NAME}\"\nto restart SearXNG" -fi diff --git a/util.sh b/util.sh deleted file mode 100644 index 9cfd4d0..0000000 --- a/util.sh +++ /dev/null @@ -1,26 +0,0 @@ -set -e - -DOCKERCOMPOSE=$(which docker-compose || echo "/usr/local/bin/docker-compose") -DOCKERCOMPOSEFILE="${DOCKERCOMPOSEFILE:-docker-compose.yaml}" - -echo "use ${DOCKERCOMPOSEFILE}" - -if [ ! -x "$(which docker)" ]; then - echo "docker not found" 1>&2 - exit 1 -fi - -if ! docker version > /dev/null 2>&1; then - echo "can't execute docker (current user: $(whoami))" 1>&2 - exit 1 -fi - -if [ ! -x "${DOCKERCOMPOSE}" ]; then - echo "docker-compose not found" 1>&2 - exit 1 -fi - -if [ ! -f "${DOCKERCOMPOSEFILE}" ]; then - echo "${DOCKERCOMPOSEFILE} not found" 1>&2 - exit 1 -fi