networks:
  default:
    enable_ipv6: true

volumes:
  server:
    driver: local

services:
  server:
    image: "searxng/searxng:2024.10.4-3e747d049"
    depends_on:
      - "redis"
    environment:
      IMAGE_PROXY: "true"
      LIMITER: "true"
      REDIS_URL: "redis://redis:6379/0"
      SEARXNG_BASE_URL: "https://searx.gnous.eu"
    healthcheck:
      test:
        [
          "CMD",
          "wget",
          "-q",
          "--spider",
          "--proxy=off",
          "127.0.0.1:8080/healthz",
        ]
    ports:
      - "3008:8080"
    restart: "unless-stopped"
    volumes:
      - "server:/etc/searxng:rw"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.searx.entryPoints=websecure"
      - "traefik.http.routers.searx.rule=Host(`searx.gnous.eu`)"
      - "traefik.http.routers.searx.tls=true"
      - "traefik.http.routers.searx.tls.certresolver=defaultacme"
      - "traefik.http.routers.searx.middlewares=proxyHeader@file,proxyError@file"
  redis:
    image: "redis:7.4-alpine"
    command: 'redis-server --save "" --appendonly "no"'
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
    labels:
      traefik.enable: false
    restart: "unless-stopped"
    tmpfs:
      - "/var/lib/redis"