Namespace
vojkovic
Image / Tag
searxng:latest
Content Digest
sha256:5ceeaf589ca5332ced15aa1e4de9e60f54ece0752a5df96f3e17519fe2cb8257
Details
Created

2025-07-22 08:39:40 UTC

Size

156 MB

Content Digest
Environment
AUTHORIZED_API

BASE_URL

BING_DEFAULT

BRAVE_DEFAULT

CAPTCHA

CONTACT

https://vojk.au

DONATION_URL

DUCKDUCKGO_DEFAULT

FOOTER_MESSAGE

GIT_BRANCH

main

GIT_URL

https://github.com/privau/searxng

GOOGLE_DEFAULT

true

GPG_KEY

7169605F62C751356D054A26A821E680E5FA6305

GRANIAN_BLOCKING_THREADS

1

GRANIAN_BLOCKING_THREADS_IDLE_TIMEOUT

300

GRANIAN_HOST

::

GRANIAN_INTERFACE

wsgi

GRANIAN_LOOP

uvloop

GRANIAN_PORT

8080

GRANIAN_PROCESS_NAME

searxng

GRANIAN_WEBSOCKETS

false

GRANIAN_WORKERS_KILL_TIMEOUT

30

IMAGE_PROXY

true

ISSUE_URL

https://github.com/privau/searxng/issues

LIMITER

NAME

OPENMETRICS

PATH

/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PRIVACYPOLICY

PROXY

PUBLIC_INSTANCE

PYTHON_SHA256

93e583f243454e6e9e4588ca2c2662206ad961659863277afcdb96801647d640

PYTHON_VERSION

3.13.5

REDIS_URL

SEARCH_DEFAULT_LANG

SEARCH_ENGINE_ACCESS_DENIED


Layers

[#000] sha256:9824c27679d3b27c5e1cb00a73adb6f4f8d556994111c12db3c5d61a0c843df8 - 2.33% (3.62 MB)

[#001] sha256:d670f447b17c6913f6891c0b5c4e98829e79b8eec4f39b3b6438fa9e12a1fbb9 - 0.27% (437 KB)

[#002] sha256:3d20e089b191841d47188d1c0eb7831d40c0f4c1fea2aba0ceac344883ba1c8b - 7.68% (12 MB)

[#003] sha256:934ed7c6b3aa75551e550f21b21450f492fe2a02b1bddccdb5adbc0e074554ea - 0.0% (249 Bytes)

[#004] sha256:6d10f6c3ec481305f77566f3374a722ee7bd0f94c06c8044eb1dee6a08332d34 - 0.0% (140 Bytes)

[#005] sha256:01aa13755cb51cd3fcdfee0e29b52f2fcdad7cb9a2be54f6f63222aeedf3d72b - 0.42% (664 KB)

[#006] sha256:abd72169b08dd9f325333d60cfce32fdd025be31698da765abc6576c29cc04f4 - 0.0% (184 Bytes)

[#007] sha256:f7b6cb21f4b7fb898bd4a3cad41dbe936f58a0b6504fdde7a9364643acc49fed - 0.0% (156 Bytes)

[#008] sha256:7f55374778824fe8714c966050ad42c4dca6ea23508fa5fb178ca3cfa8252c5f - 89.26% (139 MB)

[#009] sha256:42c956f0fa2912fae02cb6bc53be46caf6b5d83efa28b6fc2e3aa07d64f145e3 - 0.0% (1.42 KB)

[#010] sha256:508d508be3ec3c2d7612c80ddfbc46495d48ad302e8e82e44a88844787b10edd - 0.0% (844 Bytes)

[#011] sha256:e817ba9d7201cbc0f2fec47e3778cd4e78393e6297cb683f1b0a0740b36c7766 - 0.0% (465 Bytes)

[#012] sha256:69fa3a88e274aab0ab2c36ad75acf629b9425783dcd340e2fa84b35564979650 - 0.0% (7.92 KB)

[#013] sha256:846e56e4db99e83fed9a2fd32972bddc3912a945c097ac8a18e4ec0fb2fb9ced - 0.0% (1.25 KB)

[#014] sha256:c3d0110696365f5e03a272ca20435cc5a453927289e100c677d38f89c4694ea2 - 0.01% (13.8 KB)

[#015] sha256:50feee34b4b7237e4b59a80eabc50f54f9467050ee57c415fa3e74a830be6f1b - 0.0% (593 Bytes)

[#016] sha256:6426ca3e6fa68f121e165b4082172735d032763dbe1d4cc8e4c51a932cecf9c9 - 0.0% (1.19 KB)

[#017] sha256:84872e23ddb1e22b3d0a12ebb3ae82834296234e1164574d4e1ce8a5f332f822 - 0.01% (13.9 KB)

[#018] sha256:3a2af20951df035d1b70cbfa77bec0c2f371a7b03c7ab01a0d9f81d852bf60d9 - 0.0% (612 Bytes)

[#019] sha256:740be84d90295d00b510b1cc253d318e3089b84d12b5539f305b6721ffcbd9a5 - 0.01% (16.4 KB)

[#020] sha256:9efa8f9174930a3e2bade7dd3e7a58dad6da9985657903a633eeb67e50390bfa - 0.0% (810 Bytes)

[#021] sha256:8cab7683bf75effb3867f0b2dd8ce2bfc5298b4d5eb9159d7446ac7560d4da14 - 0.01% (16.5 KB)


History
2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

ADD alpine-minirootfs-3.22.1-x86_64.tar.gz / # buildkit

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

CMD ["/bin/sh"]

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apk add --no-cache ca-certificates tzdata ; # buildkit

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.13.5

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=93e583f243454e6e9e4588ca2c2662206ad961659863277afcdb96801647d640

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apk add --no-cache --virtual .build-deps gnupg tar xz bluez-dev bzip2-dev dpkg-dev dpkg findutils gcc gdbm-dev libc-dev libffi-dev libnsl-dev libtirpc-dev linux-headers make ncurses-dev openssl-dev pax-utils readline-dev sqlite-dev tcl-dev tk tk-dev util-linux-dev xz-dev zlib-dev ; wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$GPG_KEY"; gpg --batch --verify python.tar.xz.asc python.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME" python.tar.xz.asc; mkdir -p /usr/src/python; tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; rm python.tar.xz; cd /usr/src/python; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --enable-loadable-sqlite-extensions --enable-option-checking=fatal --enable-shared $(test "$gnuArch" != 'riscv64-linux-musl' && echo '--with-lto') --with-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="-DTHREAD_STACK_SIZE=0x100000"; LDFLAGS="${LDFLAGS:--Wl},--strip-all"; arch="$(apk --print-arch)"; case "$arch" in x86_64|aarch64) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; ;; x86) ;; *) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; ;; esac; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-}" ; rm python; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:--Wl},-rpath='\$\$ORIGIN/../lib'" python ; make install; cd /; rm -rf /usr/src/python; find /usr/local -depth \( \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) \) -exec rm -rf '{}' + ; find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' | tr ',' '\n' | sort -u | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' | xargs -rt apk add --no-network --virtual .python-rundeps ; apk del --no-network .build-deps; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; for src in idle3 pip3 pydoc3 python3 python3-config; do dst="$(echo "$src" | tr -d 3)"; [ -s "/usr/local/bin/$src" ]; [ ! -e "/usr/local/bin/$dst" ]; ln -svT "$src" "/usr/local/bin/$dst"; done # buildkit

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2025-07-22 08:39:13 UTC (buildkit.dockerfile.v0)

WORKDIR /usr/local/searxng/

2025-07-22 08:39:14 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apk add --no-cache libxslt # buildkit

2025-07-22 08:39:37 UTC (buildkit.dockerfile.v0)

COPY --chown=root:root /tmp/.searxng.passwd /etc/passwd # buildkit

2025-07-22 08:39:37 UTC (buildkit.dockerfile.v0)

COPY --chown=root:root /tmp/.searxng.group /etc/group # buildkit

2025-07-22 08:39:39 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng /usr/local/searxng /usr/local/searxng # buildkit

2025-07-22 08:39:39 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng ./src/run.sh /usr/local/bin/run.sh # buildkit

2025-07-22 08:39:39 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng ./src/limiter.toml /etc/searxng/limiter.toml # buildkit

2025-07-22 08:39:39 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng ./src/favicons.toml /etc/searxng/favicons.toml # buildkit

2025-07-22 08:39:39 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c sed -i "/'simple_style': EnumStringSetting(/,/choices=\['', 'auto', 'light', 'dark', 'black'\]/s/choices=\['', 'auto', 'light', 'dark', 'black'\]/choices=\['', 'auto', 'light', 'dark', 'black', 'paulgo', 'latte', 'frappe', 'macchiato', 'mocha', 'kagi', 'brave', 'moa', 'night', 'dracula'\]/" searx/preferences.py && sed -i "s/SIMPLE_STYLE = ('auto', 'light', 'dark', 'black')/SIMPLE_STYLE = ('auto', 'light', 'dark', 'black', 'paulgo', 'latte', 'frappe', 'macchiato', 'mocha', 'kagi', 'brave', 'moa', 'night', 'dracula')/" searx/settings_defaults.py && sed -i "s/{%- for name in \['auto', 'light', 'dark', 'black'\] -%}/{%- for name in \['auto', 'light', 'dark', 'black', 'paulgo', 'latte', 'frappe', 'macchiato', 'mocha', 'kagi', 'brave', 'moa', 'night', 'dracula'\] -%}/" searx/templates/simple/preferences/theme.html # buildkit

2025-07-22 08:39:39 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng ./src/privacy-policy/privacy-policy.html searx/templates/simple/privacy-policy.html # buildkit

2025-07-22 08:39:39 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c sed -i "/@app\.route('\/client<token>\.css', methods=\['GET', 'POST'\])/i \ \n@app.route('\/privacy', methods=\['GET'\])\ndef privacy_policy():return render('privacy-policy.html')\n" searx/webapp.py # buildkit

2025-07-22 08:39:39 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng ./src/captcha/captcha.html searx/templates/simple/captcha.html # buildkit

2025-07-22 08:39:39 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng ./src/captcha/captcha.py searx/captcha.py # buildkit

2025-07-22 08:39:39 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c sed -i '/search_obj = searx.search.SearchWithPlugins(search_query, sxng_request, sxng_request.user_plugins)/i\ from searx.captcha import handle_captcha\n if (captcha_response := handle_captcha(sxng_request, settings["server"]["secret_key"], raw_text_query, search_query, selected_locale, render)):\n return captcha_response\n' searx/webapp.py # buildkit

2025-07-22 08:39:39 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng ./src/auth/auth.py searx/auth.py # buildkit

2025-07-22 08:39:39 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c sed -i -e "/if output_format not in settings\\['search'\\]\\['formats'\\]:/a\\ from searx.auth import valid_api_key\\n if (not valid_api_key(sxng_request)):" -e 's|flask.abort(403)| flask.abort(403)|' searx/webapp.py && sed -i "/return Response('', mimetype='text\/css')/a \\\\n@app.route('/<key>/search', methods=['GET', 'POST'])\\ndef search_key(key=None):\\n from searx.auth import auth_search_key\\n return auth_search_key(sxng_request, key)" searx/webapp.py && sed -i "/3\. If the IP is not in either list, the request is not blocked\./a\\ from searx.auth import valid_api_key\\n if (valid_api_key(sxng_request)):\\n return None" searx/limiter.py # buildkit

2025-07-22 08:39:39 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c sed -i '/{% if autocomplete %}/,/{% endif %}/s|method="{{ opensearch_method }}"|method="GET"|g' searx/templates/simple/opensearch.xml # buildkit

2025-07-22 08:39:40 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c sed -i -e "/safe_search:/s/0/1/g" -e "/autocomplete:/s/\"\"/\"google\"/g" -e "/autocomplete_min:/s/4/0/g" -e "/favicon_resolver:/s/\"\"/\"google\"/g" -e "/port:/s/8888/8080/g" -e "/simple_style:/s/auto/macchiato/g" -e "/infinite_scroll:/s/false/true/g" -e "/query_in_title:/s/false/true/g" -e "s+donation_url: https://docs.searxng.org/donate.html+donation_url: false+g" -e '/default_lang:/s/ ""/ en/g' -e "/method:/s/\"POST\"/\"GET\"/g" -e "/http_protocol_version:/s/1.0/1.1/g" -e "/X-Content-Type-Options: nosniff/d" -e "/X-XSS-Protection: 1; mode=block/d" -e "/X-Robots-Tag: noindex, nofollow/d" -e "/Referrer-Policy: no-referrer/d" -e "/news:/{n;s/.*//}" -e "/files:/d" -e "/social media:/d" -e "/static_use_hash:/s/false/true/g" -e "s/ use_mobile_ui: false/ use_mobile_ui: true/g" -e "/disabled: false/d" -e "/name: wikipedia/s/$/\n disabled: true/g" -e "/name: wikidata/s/$/\n disabled: true/g" -e "/name: wikispecies/s/$/\n disabled: true/g" -e "/name: wikinews/s/$/\n disabled: true/g" -e "/name: wikibooks/s/$/\n disabled: true/g" -e "/name: wikivoyage/s/$/\n disabled: true/g" -e "/name: wikiversity/s/$/\n disabled: true/g" -e "/name: wikiquote/s/$/\n disabled: true/g" -e "/name: wikisource/s/$/\n disabled: true/g" -e "/name: wikicommons.images/s/$/\n disabled: true/g" -e "/name: pinterest/s/$/\n disabled: true/g" -e "/name: piped/s/$/\n disabled: true/g" -e "/name: piped.music/s/$/\n disabled: true/g" -e "/name: bandcamp/s/$/\n disabled: true/g" -e "/name: radio browser/s/$/\n disabled: true/g" -e "/name: mixcloud/s/$/\n disabled: true/g" -e "/name: hoogle/s/$/\n disabled: true/g" -e "/name: currency/s/$/\n disabled: true/g" -e "/name: qwant/s/$/\n disabled: true/g" -e "/name: btdigg/s/$/\n disabled: true/g" -e "/name: sepiasearch/s/$/\n disabled: true/g" -e "/name: dailymotion/s/$/\n disabled: true/g" -e "/name: deviantart/s/$/\n disabled: true/g" -e "/name: vimeo/s/$/\n disabled: true/g" -e "/name: openairepublications/s/$/\n disabled: true/g" -e "/name: library of congress/s/$/\n disabled: true/g" -e "/name: dictzone/s/$/\n disabled: true/g" -e "/name: baidu/s/$/\n disabled: true/g" -e "/name: lingva/s/$/\n disabled: true/g" -e "/name: genius/s/$/\n disabled: true/g" -e "/name: wallhaven/s/$/\n disabled: true/g" -e "/name: artic/s/$/\n disabled: true/g" -e "/name: flickr/s/$/\n disabled: true/g" -e "/name: unsplash/s/$/\n disabled: true/g" -e "/name: gentoo/s/$/\n disabled: true/g" -e "/name: openverse/s/$/\n disabled: true/g" -e "/name: google videos/s/$/\n disabled: true/g" -e "/name: yahoo news/s/$/\n disabled: true/g" -e "/name: bing news/s/$/\n disabled: true/g" -e "/name: tineye/s/$/\n disabled: true/g" -e "/engine: startpage/s/$/\n disabled: true/g" -e "/engine: wikipedia/s/$/\n timeout: 1.0/g" -e "/shortcut: fd/{n;s/.*/ disabled: false/}" -e "/searx.plugins.calculator.SXNGPlugin:/,/^[^[:space:]]/s/active: true/active: false/" searx/settings.yml; # buildkit

2025-07-22 08:39:40 UTC (buildkit.dockerfile.v0)

EXPOSE map[8080/tcp:{}]

2025-07-22 08:39:40 UTC (buildkit.dockerfile.v0)

ENV GRANIAN_PROCESS_NAME=searxng GRANIAN_INTERFACE=wsgi GRANIAN_HOST=:: GRANIAN_PORT=8080 GRANIAN_WEBSOCKETS=false GRANIAN_LOOP=uvloop GRANIAN_BLOCKING_THREADS=1 GRANIAN_WORKERS_KILL_TIMEOUT=30 GRANIAN_BLOCKING_THREADS_IDLE_TIMEOUT=300 IMAGE_PROXY=true PROXY= REDIS_URL= LIMITER= BASE_URL= CAPTCHA= AUTHORIZED_API= NAME= SEARCH_DEFAULT_LANG= SEARCH_ENGINE_ACCESS_DENIED= PUBLIC_INSTANCE= GOOGLE_DEFAULT=true BING_DEFAULT= BRAVE_DEFAULT= DUCKDUCKGO_DEFAULT= OPENMETRICS= PRIVACYPOLICY= DONATION_URL= CONTACT=https://vojk.au FOOTER_MESSAGE= ISSUE_URL=https://github.com/privau/searxng/issues GIT_URL=https://github.com/privau/searxng GIT_BRANCH=main

2025-07-22 08:39:40 UTC (buildkit.dockerfile.v0)

CMD ["run.sh"]

Details
Created

2025-07-22 08:42:30 UTC

Size

156 MB

Content Digest
Environment
AUTHORIZED_API

BASE_URL

BING_DEFAULT

BRAVE_DEFAULT

CAPTCHA

CONTACT

https://vojk.au

DONATION_URL

DUCKDUCKGO_DEFAULT

FOOTER_MESSAGE

GIT_BRANCH

main

GIT_URL

https://github.com/privau/searxng

GOOGLE_DEFAULT

true

GPG_KEY

7169605F62C751356D054A26A821E680E5FA6305

GRANIAN_BLOCKING_THREADS

1

GRANIAN_BLOCKING_THREADS_IDLE_TIMEOUT

300

GRANIAN_HOST

::

GRANIAN_INTERFACE

wsgi

GRANIAN_LOOP

uvloop

GRANIAN_PORT

8080

GRANIAN_PROCESS_NAME

searxng

GRANIAN_WEBSOCKETS

false

GRANIAN_WORKERS_KILL_TIMEOUT

30

IMAGE_PROXY

true

ISSUE_URL

https://github.com/privau/searxng/issues

LIMITER

NAME

OPENMETRICS

PATH

/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PRIVACYPOLICY

PROXY

PUBLIC_INSTANCE

PYTHON_SHA256

93e583f243454e6e9e4588ca2c2662206ad961659863277afcdb96801647d640

PYTHON_VERSION

3.13.5

REDIS_URL

SEARCH_DEFAULT_LANG

SEARCH_ENGINE_ACCESS_DENIED


Layers

[#000] sha256:6e174226ea690ced550e5641249a412cdbefd2d09871f3e64ab52137a54ba606 - 2.53% (3.94 MB)

[#001] sha256:d125fdbed4e4ca1d8631d4c952dfbc9fd0aded64865d69eb3c9951e98d6c76fb - 0.28% (439 KB)

[#002] sha256:bcd636e59cfbeb2967d10c7fe5f443b4d16c981fbd523ffee59799ffcaaa8c58 - 7.7% (12 MB)

[#003] sha256:2829f301ad519e4a03916d33dfe9077d0c9828693fdac899af12841fa06a3593 - 0.0% (248 Bytes)

[#004] sha256:e752007515a5e1e3cde66610be8f82ee978a77e942defa32a56b30314f65d0e0 - 0.0% (141 Bytes)

[#005] sha256:e2107527891074d90c6f56c968fb3b200a0b61bee96d34ff759bbda01d87e6c2 - 0.42% (667 KB)

[#006] sha256:b8e18b9e7c9643237f43bbb958a9096a19c409270472eef786938830c3b7eb8b - 0.0% (184 Bytes)

[#007] sha256:32b06f2e9f5e80203cc1fbae8af50224b7c3197c211a7ac8523df5910db2e608 - 0.0% (156 Bytes)

[#008] sha256:217df7823816401e6353f15ce91c907737ccd4f3b736b545499f1e71e3f889a0 - 89.03% (138 MB)

[#009] sha256:3ce72693deddc313b99484f42c88ecc293c765afc368423312c865edfdeb85ff - 0.0% (1.42 KB)

[#010] sha256:93c5b3d8dbb96fb1ab04e215d63ba1612ebf6d070c32aca26c04193bf5bc0172 - 0.0% (845 Bytes)

[#011] sha256:587fba027039197f3f71ebb53d8f3a85e84408863a3bc028c5942ca247d8a609 - 0.0% (466 Bytes)

[#012] sha256:9873d4ecef777c3e78c8df6aae6f6f61f79e0e90869a7e3413d9231295fe011e - 0.0% (7.92 KB)

[#013] sha256:14edd348bd69ba43b1232883654ff78b98a1a0fc5eb7f3bb2a55c6e630cd12f9 - 0.0% (1.25 KB)

[#014] sha256:caf86500d5cdcc69cd71b7a09449e87eb480412589561bf7017170e9be72a878 - 0.01% (13.8 KB)

[#015] sha256:eaadfe549d699b0fad530663789e646b0356e14c9ed66a9f4c8d37e324fda251 - 0.0% (593 Bytes)

[#016] sha256:c6a3519e170b0f0a56d043f0c5baca3cde545e8e3953e926b7c7bb3a08777831 - 0.0% (1.19 KB)

[#017] sha256:7e15dd5b379169ecf9d22806a22a6f6dfe7d1d37afed41ced10e0609cbc48d23 - 0.01% (13.9 KB)

[#018] sha256:9958eea793db8244a2327764f2d28ed15ba869325404b5de042400ad12032de1 - 0.0% (616 Bytes)

[#019] sha256:c5cd302854dcc7ade102170812ebd82c811018fb0231c677129506ae5ebe45f6 - 0.01% (16.4 KB)

[#020] sha256:63c0ef45b0a6435a1520eda5d67b3bfde657b39c7d8ab0b2bd6ab9f02e63634d - 0.0% (811 Bytes)

[#021] sha256:e11dbbe391c88c356dba9074696cc7888001c991d8e2d5275719cd06ae7a33db - 0.01% (16.5 KB)


History
2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

ADD alpine-minirootfs-3.22.1-aarch64.tar.gz / # buildkit

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

CMD ["/bin/sh"]

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apk add --no-cache ca-certificates tzdata ; # buildkit

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.13.5

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=93e583f243454e6e9e4588ca2c2662206ad961659863277afcdb96801647d640

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apk add --no-cache --virtual .build-deps gnupg tar xz bluez-dev bzip2-dev dpkg-dev dpkg findutils gcc gdbm-dev libc-dev libffi-dev libnsl-dev libtirpc-dev linux-headers make ncurses-dev openssl-dev pax-utils readline-dev sqlite-dev tcl-dev tk tk-dev util-linux-dev xz-dev zlib-dev ; wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$GPG_KEY"; gpg --batch --verify python.tar.xz.asc python.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME" python.tar.xz.asc; mkdir -p /usr/src/python; tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; rm python.tar.xz; cd /usr/src/python; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --enable-loadable-sqlite-extensions --enable-option-checking=fatal --enable-shared $(test "$gnuArch" != 'riscv64-linux-musl' && echo '--with-lto') --with-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="-DTHREAD_STACK_SIZE=0x100000"; LDFLAGS="${LDFLAGS:--Wl},--strip-all"; arch="$(apk --print-arch)"; case "$arch" in x86_64|aarch64) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; ;; x86) ;; *) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; ;; esac; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-}" ; rm python; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:--Wl},-rpath='\$\$ORIGIN/../lib'" python ; make install; cd /; rm -rf /usr/src/python; find /usr/local -depth \( \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) \) -exec rm -rf '{}' + ; find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' | tr ',' '\n' | sort -u | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' | xargs -rt apk add --no-network --virtual .python-rundeps ; apk del --no-network .build-deps; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; for src in idle3 pip3 pydoc3 python3 python3-config; do dst="$(echo "$src" | tr -d 3)"; [ -s "/usr/local/bin/$src" ]; [ ! -e "/usr/local/bin/$dst" ]; ln -svT "$src" "/usr/local/bin/$dst"; done # buildkit

2025-06-11 21:49:27 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2025-07-22 08:40:01 UTC (buildkit.dockerfile.v0)

WORKDIR /usr/local/searxng/

2025-07-22 08:40:04 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apk add --no-cache libxslt # buildkit

2025-07-22 08:42:27 UTC (buildkit.dockerfile.v0)

COPY --chown=root:root /tmp/.searxng.passwd /etc/passwd # buildkit

2025-07-22 08:42:27 UTC (buildkit.dockerfile.v0)

COPY --chown=root:root /tmp/.searxng.group /etc/group # buildkit

2025-07-22 08:42:29 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng /usr/local/searxng /usr/local/searxng # buildkit

2025-07-22 08:42:29 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng ./src/run.sh /usr/local/bin/run.sh # buildkit

2025-07-22 08:42:29 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng ./src/limiter.toml /etc/searxng/limiter.toml # buildkit

2025-07-22 08:42:29 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng ./src/favicons.toml /etc/searxng/favicons.toml # buildkit

2025-07-22 08:42:29 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c sed -i "/'simple_style': EnumStringSetting(/,/choices=\['', 'auto', 'light', 'dark', 'black'\]/s/choices=\['', 'auto', 'light', 'dark', 'black'\]/choices=\['', 'auto', 'light', 'dark', 'black', 'paulgo', 'latte', 'frappe', 'macchiato', 'mocha', 'kagi', 'brave', 'moa', 'night', 'dracula'\]/" searx/preferences.py && sed -i "s/SIMPLE_STYLE = ('auto', 'light', 'dark', 'black')/SIMPLE_STYLE = ('auto', 'light', 'dark', 'black', 'paulgo', 'latte', 'frappe', 'macchiato', 'mocha', 'kagi', 'brave', 'moa', 'night', 'dracula')/" searx/settings_defaults.py && sed -i "s/{%- for name in \['auto', 'light', 'dark', 'black'\] -%}/{%- for name in \['auto', 'light', 'dark', 'black', 'paulgo', 'latte', 'frappe', 'macchiato', 'mocha', 'kagi', 'brave', 'moa', 'night', 'dracula'\] -%}/" searx/templates/simple/preferences/theme.html # buildkit

2025-07-22 08:42:29 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng ./src/privacy-policy/privacy-policy.html searx/templates/simple/privacy-policy.html # buildkit

2025-07-22 08:42:29 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c sed -i "/@app\.route('\/client<token>\.css', methods=\['GET', 'POST'\])/i \ \n@app.route('\/privacy', methods=\['GET'\])\ndef privacy_policy():return render('privacy-policy.html')\n" searx/webapp.py # buildkit

2025-07-22 08:42:29 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng ./src/captcha/captcha.html searx/templates/simple/captcha.html # buildkit

2025-07-22 08:42:29 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng ./src/captcha/captcha.py searx/captcha.py # buildkit

2025-07-22 08:42:29 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c sed -i '/search_obj = searx.search.SearchWithPlugins(search_query, sxng_request, sxng_request.user_plugins)/i\ from searx.captcha import handle_captcha\n if (captcha_response := handle_captcha(sxng_request, settings["server"]["secret_key"], raw_text_query, search_query, selected_locale, render)):\n return captcha_response\n' searx/webapp.py # buildkit

2025-07-22 08:42:29 UTC (buildkit.dockerfile.v0)

COPY --chown=searxng:searxng ./src/auth/auth.py searx/auth.py # buildkit

2025-07-22 08:42:30 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c sed -i -e "/if output_format not in settings\\['search'\\]\\['formats'\\]:/a\\ from searx.auth import valid_api_key\\n if (not valid_api_key(sxng_request)):" -e 's|flask.abort(403)| flask.abort(403)|' searx/webapp.py && sed -i "/return Response('', mimetype='text\/css')/a \\\\n@app.route('/<key>/search', methods=['GET', 'POST'])\\ndef search_key(key=None):\\n from searx.auth import auth_search_key\\n return auth_search_key(sxng_request, key)" searx/webapp.py && sed -i "/3\. If the IP is not in either list, the request is not blocked\./a\\ from searx.auth import valid_api_key\\n if (valid_api_key(sxng_request)):\\n return None" searx/limiter.py # buildkit

2025-07-22 08:42:30 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c sed -i '/{% if autocomplete %}/,/{% endif %}/s|method="{{ opensearch_method }}"|method="GET"|g' searx/templates/simple/opensearch.xml # buildkit

2025-07-22 08:42:30 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c sed -i -e "/safe_search:/s/0/1/g" -e "/autocomplete:/s/\"\"/\"google\"/g" -e "/autocomplete_min:/s/4/0/g" -e "/favicon_resolver:/s/\"\"/\"google\"/g" -e "/port:/s/8888/8080/g" -e "/simple_style:/s/auto/macchiato/g" -e "/infinite_scroll:/s/false/true/g" -e "/query_in_title:/s/false/true/g" -e "s+donation_url: https://docs.searxng.org/donate.html+donation_url: false+g" -e '/default_lang:/s/ ""/ en/g' -e "/method:/s/\"POST\"/\"GET\"/g" -e "/http_protocol_version:/s/1.0/1.1/g" -e "/X-Content-Type-Options: nosniff/d" -e "/X-XSS-Protection: 1; mode=block/d" -e "/X-Robots-Tag: noindex, nofollow/d" -e "/Referrer-Policy: no-referrer/d" -e "/news:/{n;s/.*//}" -e "/files:/d" -e "/social media:/d" -e "/static_use_hash:/s/false/true/g" -e "s/ use_mobile_ui: false/ use_mobile_ui: true/g" -e "/disabled: false/d" -e "/name: wikipedia/s/$/\n disabled: true/g" -e "/name: wikidata/s/$/\n disabled: true/g" -e "/name: wikispecies/s/$/\n disabled: true/g" -e "/name: wikinews/s/$/\n disabled: true/g" -e "/name: wikibooks/s/$/\n disabled: true/g" -e "/name: wikivoyage/s/$/\n disabled: true/g" -e "/name: wikiversity/s/$/\n disabled: true/g" -e "/name: wikiquote/s/$/\n disabled: true/g" -e "/name: wikisource/s/$/\n disabled: true/g" -e "/name: wikicommons.images/s/$/\n disabled: true/g" -e "/name: pinterest/s/$/\n disabled: true/g" -e "/name: piped/s/$/\n disabled: true/g" -e "/name: piped.music/s/$/\n disabled: true/g" -e "/name: bandcamp/s/$/\n disabled: true/g" -e "/name: radio browser/s/$/\n disabled: true/g" -e "/name: mixcloud/s/$/\n disabled: true/g" -e "/name: hoogle/s/$/\n disabled: true/g" -e "/name: currency/s/$/\n disabled: true/g" -e "/name: qwant/s/$/\n disabled: true/g" -e "/name: btdigg/s/$/\n disabled: true/g" -e "/name: sepiasearch/s/$/\n disabled: true/g" -e "/name: dailymotion/s/$/\n disabled: true/g" -e "/name: deviantart/s/$/\n disabled: true/g" -e "/name: vimeo/s/$/\n disabled: true/g" -e "/name: openairepublications/s/$/\n disabled: true/g" -e "/name: library of congress/s/$/\n disabled: true/g" -e "/name: dictzone/s/$/\n disabled: true/g" -e "/name: baidu/s/$/\n disabled: true/g" -e "/name: lingva/s/$/\n disabled: true/g" -e "/name: genius/s/$/\n disabled: true/g" -e "/name: wallhaven/s/$/\n disabled: true/g" -e "/name: artic/s/$/\n disabled: true/g" -e "/name: flickr/s/$/\n disabled: true/g" -e "/name: unsplash/s/$/\n disabled: true/g" -e "/name: gentoo/s/$/\n disabled: true/g" -e "/name: openverse/s/$/\n disabled: true/g" -e "/name: google videos/s/$/\n disabled: true/g" -e "/name: yahoo news/s/$/\n disabled: true/g" -e "/name: bing news/s/$/\n disabled: true/g" -e "/name: tineye/s/$/\n disabled: true/g" -e "/engine: startpage/s/$/\n disabled: true/g" -e "/engine: wikipedia/s/$/\n timeout: 1.0/g" -e "/shortcut: fd/{n;s/.*/ disabled: false/}" -e "/searx.plugins.calculator.SXNGPlugin:/,/^[^[:space:]]/s/active: true/active: false/" searx/settings.yml; # buildkit

2025-07-22 08:42:30 UTC (buildkit.dockerfile.v0)

EXPOSE map[8080/tcp:{}]

2025-07-22 08:42:30 UTC (buildkit.dockerfile.v0)

ENV GRANIAN_PROCESS_NAME=searxng GRANIAN_INTERFACE=wsgi GRANIAN_HOST=:: GRANIAN_PORT=8080 GRANIAN_WEBSOCKETS=false GRANIAN_LOOP=uvloop GRANIAN_BLOCKING_THREADS=1 GRANIAN_WORKERS_KILL_TIMEOUT=30 GRANIAN_BLOCKING_THREADS_IDLE_TIMEOUT=300 IMAGE_PROXY=true PROXY= REDIS_URL= LIMITER= BASE_URL= CAPTCHA= AUTHORIZED_API= NAME= SEARCH_DEFAULT_LANG= SEARCH_ENGINE_ACCESS_DENIED= PUBLIC_INSTANCE= GOOGLE_DEFAULT=true BING_DEFAULT= BRAVE_DEFAULT= DUCKDUCKGO_DEFAULT= OPENMETRICS= PRIVACYPOLICY= DONATION_URL= CONTACT=https://vojk.au FOOTER_MESSAGE= ISSUE_URL=https://github.com/privau/searxng/issues GIT_URL=https://github.com/privau/searxng GIT_BRANCH=main

2025-07-22 08:42:30 UTC (buildkit.dockerfile.v0)

CMD ["run.sh"]

Danger Zone
Delete Tag

Please be careful as this will not just delete the reference but also the actual content!

For example when you have latest and v1.2.3 both pointing to the same image
the deletion of latest will also permanently remove v1.2.3.

Delete