MCPcopy Index your code
hub / github.com/degoog-org/degoog

github.com/degoog-org/degoog @0.23.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.23.0 ↗ · + Follow
1,827 symbols 5,633 edges 407 files 3 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Degoog Logo

degoog

Search aggregator that queries multiple engines and shows results in one place. You can add custom search engines, bang-command plugins, slot plugins (query-triggered panels above/below results or in the sidebar), and transports (custom HTTP fetch strategies like curl, FlareSolverr, or your own). The dream would be to eventually have a user made marketplace for plugins/engines.

Now in stable beta. You can use it in production but there may be some inconsistent behaviour.

Please check the documentation before raising issues, your questions may already have been answered.


Join our discord community


Run

By default the app will run on port 4444 with user 1000:1000, please check the documentation for a comprehensive list of env variables and various nuances.

mkdir -p ./data
sudo chown -R 1000:1000 ./data

Docker Compose

Ready-to-use compose files live in docker-compose-examples/. Pick the one that fits:

File What it runs When to use
simple.yml degoog only Personal use, low-traffic
valkey.yml degoog + Valkey Multi-replica or public instance with shared cache keeps settings and invalidation in sync
postgres.yml degoog + Postgres Busy public instance with a large indexer - Postgres scales concurrent writes and FTS better than SQLite
full.yml degoog + Valkey + Postgres High-traffic public instance - both shared cache and scalable indexer
mcp.yml degoog + degoog-mcp Exposing Degoog to LLMs / MCP clients (Claude, Cursor, llama.cpp) next to the web UI

Inline podman

# Set DEGOOG_SETTINGS_PASSWORDS before exposing this instance to the internet -
# an unlocked instance lets anyone install extensions, which runs code on the server.
podman run -d --name degoog -p 4444:4444 -v ./data:/app/data -e DEGOOG_SETTINGS_PASSWORDS=changeme --security-opt label=disable --restart unless-stopped ghcr.io/degoog-org/degoog:latest

Podman Quadlet Container File

[Unit]
Description=Degoog selfhosted search aggregator
Wants=network-online.target
After=network-online.target

[Container]
Image=ghcr.io/degoog-org/degoog:latest
AutoUpdate=registry
ContainerName=degoog
Environment=TZ=<Country/City>
Environment=PUID=1000
Environment=PGID=1000
# Set a password before exposing this instance to the internet - an unlocked
# instance lets anyone install extensions, which runs code on the server.
Environment=DEGOOG_SETTINGS_PASSWORDS=changeme
# Environment=DEGOOG_PUBLIC_INSTANCE=true # Add if public
UIDMap=+%U:@%U
Volume=<Path to config>:/app/data:Z
PublishPort=4444:4444
Network=degoog

[Service]
Restart=always

[Install]
WantedBy=default.target

Inline docker

# Set DEGOOG_SETTINGS_PASSWORDS before exposing this instance to the internet -
# an unlocked instance lets anyone install extensions, which runs code on the server.
docker run -d --name degoog -p 4444:4444 -v ./data:/app/data -e DEGOOG_SETTINGS_PASSWORDS=changeme --restart unless-stopped ghcr.io/degoog-org/degoog:latest

Run natively

You'll need a .env file for your env variables and the following required dependencies:

git clone https://github.com/degoog-org/degoog.git
cd degoog
bun install
bun run build
bun run start

note: If HTTPS requests fail with certificate errors, install the ca-certificates package

Proxmox VE Script

The community Proxmox script exists, but it is currently marked as in development and not recommended for production use:

https://community-scripts.org/scripts/degoog

Buy me a coffee

Public instances

Some amazing people around the web decided to make their degoog instances available for everyone to use, and they 100% deserve a shout-out! Check out the full list here

Store repositories

Aside from the official store repo community members have been working hard on their own plugins and been sharing them with everyone who wants to enhance their degoog experience. You can find a bunch of them here.

Note: These have only been INITIALLY vetted, there is no way for me to keep an eye on them once they have been added to the community store repo. If your own responsibiilty to make sure what you install on your system is safe.

Documentation

Full customisation guide (plugins, themes, engines, transports, store, settings gate, aliases, env): documentation.

Little shoutout

This project would have never existed if the amazing searxng developers hadn't had the idea first. This is my take on a heavily customisable search aggregrator, it's meant to be a more modular lighter alternative, you can add as much as you want to it, but the core will stay as simple as it gets.

Alternatives are what make the internet a fun place, let me share a few other aggregators you may want to try out, the beauty of open source is that there's no competition (or at least there shouldn't be, none of us do this shit for money after all).

name repo
searxng https://github.com/searxng/searxng
4get https://git.lolcat.ca/lolcat/4get
OmniSearch https://git.bwaaa.monster/omnisearch
LibreY https://github.com/Ahwxorg/LibreY

Star History Chart

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 1,538
Interface 154
Method 110
Class 18
Enum 7

Languages

TypeScript100%

Modules by API surface

src/server/types/extension.ts63 symbols
src/server/migrations/2026-05-canonical-ids-migration.ts40 symbols
src/server/extensions/store/item-ops.ts33 symbols
src/server/extensions/engines/registry.ts31 symbols
src/server/extensions/store/repo-ops.ts30 symbols
src/client/settings/shortcuts/tab.ts26 symbols
src/client/modules/filters/image-filters.ts25 symbols
src/server/indexer/types/adapter.ts23 symbols
src/server/indexer/adapters/sqlite/adapter.ts22 symbols
src/server/indexer/adapters/postgres/adapter.ts22 symbols
src/client/settings/general/tab.ts22 symbols
src/server/routes/settings-auth.ts21 symbols

Datastores touched

degoogDatabase · 1 repos
(mongodb)Database · 1 repos
myappDatabase · 1 repos

For agents

$ claude mcp add degoog \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page