SearXNG

SearXNG

Internet metasearch engine

SearXNG is a free internet metasearch engine which aggregates results from various search services and databases. Users are neither tracked nor profiled.

Source: https://github.com/searxng/searxng
Compose: https://github.com/searxng/searxng-docker

name: searxng
services:
  searxng-redis:
    container_name: searxng-redis
    image: docker.io/valkey/valkey:8-alpine
    command: valkey-server --save 30 1 --loglevel warning
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 30s
      timeout: 10s
      retries: 3
    # Named volume is needed to avoid "chown - Operation not permitted" error
    volumes:
      - searxng-valkey-data:/data
    cap_drop:
      - ALL
    cap_add:
      - SETGID
      - SETUID
      - DAC_OVERRIDE
    logging:
      driver: "json-file"
      options:
        max-size: "1m"
        max-file: "1"
    networks:
      - searxng-backend

  searxng:
    container_name: searxng
    image: docker.io/searxng/searxng:2025.5.30-37d851f
    restart: unless-stopped
    volumes:
      - ${DOCKER_VOLUMES}/searxng:/etc/searxng
      - ./searxng/settings.yml:/etc/searxng/settings.yml
    environment:
      SEARXNG_BASE_URL: https://searxng.${MYDOMAIN}/
      # https://docs.searxng.org/admin/settings/settings_server.html
      SEARXNG_SECRET: ${SEARXNG_SECRET}
      # https://docs.searxng.org/admin/settings/settings_redis.html
      SEARXNG_REDIS_URL: "redis://searxng-redis:6379/0"
      UWSGI_WORKERS: ${SEARXNG_UWSGI_WORKERS:-4}
      UWSGI_THREADS: ${SEARXNG_UWSGI_THREADS:-4}
    logging:
      driver: "json-file"
      options:
        max-size: "1m"
        max-file: "1"
    networks:
      - searxng-backend
      - proxy
    labels:
      traefik.enable: true
      traefik.http.routers.searxng.middlewares: localaccess@file
      traefik.http.services.searxng.loadbalancer.server.port: 8080
      homepage.group: Tools
      homepage.name: SearXNG
      homepage.icon: searxng.png
      homepage.href: https://searxng.${MYDOMAIN}/
      homepage.description: "Internet metasearch engine"

networks:
  searxng-backend:
    external: false
  proxy:
    external: true

volumes:
  searxng-valkey-data: