deGoog

Self-hosted search aggregator you can extend with plugins.

  • ghcr.io/degoog-org/degoog:1.1.0
  • port 6141
  • Networking
deGoog screenshot 1: HomedeGoog screenshot 2: Extension storedeGoog screenshot 3: Plugins

Search

/
http://localhost:6141/

Settings

/settings
http://localhost:6141/settings

deGoog asks many search engines at once and merges their results into one ranked list. It is a lighter, more modular alternative to SearXNG that you can extend with your own engines, plugins and themes.

Features

  • Results from every search engine you turn on, with duplicates removed and scores combined
  • Plugins: custom search engines, bang commands, panels above, below or beside the results, and custom transports (curl, FlareSolverr or your own)
  • Built-in store to install engines, plugins and themes without editing files
  • Everything kept in the app data folder

How to use

  1. Open deGoog from your dashboard.
  2. Follow the first-run setup wizard.
  3. Open Settings (the gear icon) and sign in with your settings password.
  4. Turn on the search engines you want and browse the Store for more engines, plugins and themes.

Before you install

You can type a password in DEGOOG_SETTINGS_PASSWORDS; it opens the Settings page. If you leave it empty, deGoog makes a new password every time it starts and prints it in the app log under "Sign in to settings with:". Always set a password before letting other people reach deGoog, because extensions installed from Settings run code on the server. More settings, like public mode, a Valkey cache or a Postgres index, are in the Variables tab and are added in the app settings. deGoog starts in a few seconds.

The settings in the first table are already in the app settings. To use any other one, open the app settings, add the variable with your value, save, and the app restarts with it. A setting you leave out uses its default.

In the app settings

VariableDefault valueDescription
TZ$TZYour time zone. ZimaOS fills this in for you.
PUID$PUIDUser ID that deGoog runs as and that owns its data folder. ZimaOS fills this in for you.
PGID$PGIDGroup ID that deGoog runs as and that owns its data folder. ZimaOS fills this in for you.
DEGOOG_SETTINGS_PASSWORDS—Password for the Settings page. Leave it empty and deGoog makes a new one each time it starts and prints it in the app log. Type your own to keep the same one. Several passwords can be split with commas.

Security

VariableDefault valueDescription
DEGOOG_PUBLIC_INSTANCE—Set to true if strangers on the internet will use your instance. It trims the Settings page and locks every change behind the password.
DEGOOG_SETTINGS_PATHsettingsThe address of the Settings page, like /settings. Change it to hide the page somewhere less obvious. Public instances use admin.
DEGOOG_DANGEROUSLY_NO_PASSWORDfalseSet to true to turn off the Settings password completely. Only do this if nobody else can reach deGoog, because extensions run code on the server.
DEGOOG_OUTGOING_ALLOWED_HOSTS—Comma-separated list of hostnames deGoog may contact. Leave it out to allow any.
DEGOOG_ANUBIS_MAX_DIFFICULTY4Highest Anubis proof-of-work level deGoog will solve when a site asks for it (up to 6).

Server

VariableDefault valueDescription
DEGOOG_BASE_URL—The public address of deGoog, like https://search.example.com, or a sub-path. Set it when you put deGoog behind your own domain.
DEGOOG_DISTRUST_PROXY1Set to 0 when deGoog is behind a reverse proxy, so it trusts the visitor IP and https headers the proxy sends.
DEGOOG_BODY_SIZE3072Largest request body in KB that public pages accept. 0 removes the limit.
DEGOOG_WIZARD—Set to false to skip the first-run setup wizard.

Search and language

VariableDefault valueDescription
DEGOOG_DEFAULT_SEARCH_LANGUAGE—Search language to use when a visitor has not picked one, like en.
DEGOOG_I18N—Force the page language for everyone, like en or de. Leave it out to follow each browser's language.
DEGOOG_AUTOCOMPLETE_TIMEOUT_MS8000How long, in milliseconds, an autocomplete provider has to answer.
DEGOOG_SLOT_TIMEOUT_MS10000How long, in milliseconds, a panel plugin has to answer before it is skipped.

Extensions

VariableDefault valueDescription
DEGOOG_BETA_STORE—Set to 1 to install extensions from the develop branch of store repositories instead of the stable one.

Cache

VariableDefault valueDescription
DEGOOG_CACHE_TTL_MS43200000How long, in milliseconds, search and autocomplete results are kept. The default is 12 hours.
DEGOOG_CACHE_SHORT_TTL_MS120000How long, in milliseconds, results are kept when some engines failed. The default is 2 minutes.
DEGOOG_CACHE_MAX_ENTRIES1000Most entries kept in each in-memory cache.
DEGOOG_VALKEY_URL—Address of your own Valkey or Redis server for a shared cache, like redis://192.168.1.50:6379. Leave it out to use the built-in memory cache.

Database

VariableDefault valueDescription
DEGOOG_POSTGRES—Address of your own Postgres database for the search index, like postgres://degoog:[email protected]:5432/degoog. Leave it out to use the built-in SQLite file.
DEGOOG_POSTGRES_SSLMODE—SSL mode for Postgres, like require or disable. By default it is require for network hosts with a password.

Logs

VariableDefault valueDescription
LOG_LEVELinfoHow much deGoog writes to the log: fatal, error, warn, info, log or debug.
NO_COLOR—Set to any value to remove colours from the log.
docker-compose.yml
name: degoog

services:
  degoog:
    image: ghcr.io/degoog-org/degoog:1.1.0
    container_name: degoog
    restart: unless-stopped
    stop_grace_period: 40s
    network_mode: bridge
    environment:
      - TZ=$TZ
      - PUID=$PUID
      - PGID=$PGID
      - DEGOOG_SETTINGS_PASSWORDS=
    ports:
      - target: 4444
        published: "6141"
        protocol: tcp
    volumes:
      - type: bind
        source: /DATA/AppData/$AppID/data
        target: /app/data
        bind:
          create_host_path: true
    healthcheck:
      test: ["CMD", "curl", "-fsS", "http://127.0.0.1:4444/readyz"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 40s
    deploy:
      resources:
        limits:
          cpus: "1.00"
          memory: 1024M
        reservations:
          cpus: "0.00"
          memory: 256M
    labels:
      icon: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/degoog/icon.png
    x-casaos:
      id: com.icestore.degoog
      envs:
        - container: TZ
          description:
            en_US: Your time zone. ZimaOS fills this in for you.
        - container: PUID
          description:
            en_US: >-
              User ID that deGoog runs as and that owns its data folder.
              ZimaOS fills this in for you.
        - container: PGID
          description:
            en_US: >-
              Group ID that deGoog runs as and that owns its data folder.
              ZimaOS fills this in for you.
        - container: DEGOOG_SETTINGS_PASSWORDS
          description:
            en_US: >-
              Password for the Settings page. Leave it empty and deGoog makes
              a new one each time it starts and prints it in the app log. Type
              your own to keep the same one. Several passwords can be split
              with commas.
      ports:
        - container: "4444"
          description:
            en_US: Web UI and search API, published on host as 6141.
      volumes:
        - container: /app/data
          description:
            en_US: >-
              Everything deGoog keeps: installed engines, plugins, themes,
              transports, settings files and the search index.

x-casaos:
  id: com.icestore.degoog
  architectures:
    - amd64
    - arm64
  main: degoog
  author: HSinghHira
  category: Networking
  developer: degoog-org
  icon: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/degoog/icon.png
  thumbnail: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/degoog/screenshot-1.png
  screenshot_link:
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/degoog/screenshot-1.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/degoog/screenshot-2.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/degoog/screenshot-3.png
  title:
    en_US: deGoog
  tagline:
    en_US: Self-hosted search aggregator you can extend with plugins.
  description:
    en_US: >-
      Visit: [https://icestore.hsinghhira.me/app/degoog/](https://icestore.hsinghhira.me/app/degoog/) for full details


      deGoog asks many search engines at once and merges their results into
      one ranked list. It is a lighter, more modular alternative to SearXNG
      that you can extend with your own engines, plugins and themes.


      **Features**


      - Results from every search engine you turn on, with duplicates removed
        and scores combined

      - Plugins: custom search engines, bang commands, panels above, below or
        beside the results, and custom transports (curl, FlareSolverr or your
        own)

      - Built-in store to install engines, plugins and themes without editing
        files

      - Everything kept in the app data folder


      **How to use?**


      1. Open deGoog from the Zima OS dashboard.


      2. Follow the first-run setup wizard.


      3. Open Settings (the gear icon) and sign in with your settings
         password.


      4. Turn on the search engines you want and browse the Store for more
         engines, plugins and themes.
  tips:
    before_install:
      en_US: >-
        1. If you want, type a password in DEGOOG_SETTINGS_PASSWORDS. This
           password opens the Settings page.


        2. Start the installation.


        3. Open deGoog from the Zima OS dashboard.


        4. If you left the password empty, open the app log. Find the line
           "Sign in to settings with:". The password is on the next line.
           It changes every time the app starts.


        5. Follow the setup wizard. Then click the gear icon and sign in.


        6. More settings are listed on the deGoog page at
           https://icestore.hsinghhira.me/app/degoog/ (Variables tab). You
           can add them now or later in the app settings.
  index: /
  port_map: "6141"
  scheme: http
  is_uncontrolled: false
  version: "1.1.0"
  update_at: "2026-10-24"
  release_notes:
    en_US: |-
      - Added to IceStore. Port changed from 8416 to 6141.
      - Image pinned to ghcr.io/degoog-org/degoog 1.1.0.
      - Optional settings are listed in the Variables tab on the IceStore website.
  repo: "https://github.com/degoog-org/degoog"
  support: "https://github.com/degoog-org/degoog/issues"
  docs: "https://degoog-org.github.io/docs/"