A lightweight and minimalist search engine wrapper built around existing search services.
NuciSearch provides a simple search interface that redirects queries to specialised engines such as DuckDuckGo, YouTube, or Google Maps, depending on the selected search mode.
The goal is to provide a clean, fast, and dependency-free search page that can be self-hosted and easily integrated with browsers via OpenSearch.
- Minimal and lightweight design
- No external dependencies
- Self-hostable
- OpenSearch support (can be installed as a browser search engine)
- Multiple search modes:
- Auto → keyword-based routing or fallback text search
- Text → randomised web search (Brave / DuckDuckGo)
- Images → DuckDuckGo Image Search
- Torrents → Yandex search with "Torrent" suffix
- Videos → Yewtu.be (YouTube privacy frontend)
- Locations → Google Maps
- Query parameter support (
?q=) - Works as a browser search provider
When using Auto mode, queries are routed to specialised providers based on pattern matching or keywords.
- JIRA (Worldpay) — queries matching
AAP-###,AV-###,AND-###,CP-### - Rally — queries matching
DE,F, orUSfollowed by 6–8 digits - Wikidata — queries matching
Q[digits](e.g.Q42) → Wikidata item page - Currency exchange — queries matching
[amount] [currency] in/to [currency](e.g.100 EUR in USD) → DuckDuckGo- Normalises
în→in,euro/euros→EUR,lei/leu→RON,dollar/dollars/dolar/dolari→USD,lira/liră/lire→GBP - Uppercases all 3-letter currency codes
- Normalises
- IP address lookup — queries
my ip,current ip,my ip address, orcurrent ip address→ DuckDuckGo - Wiki blacklists — for media-related searches (video games, TV series, etc.), non-primary wikis (fandom.com, wiki.fextralife.com, arcenserv.info, huijiwiki.com, neoseeker.com, strategywiki.org) are excluded in favour of the official or community-preferred wiki for that franchise, where applicable
- AliExpress — keyword:
aliexpress - Altex — keyword:
altex - App Store (Apple) — keyword:
appstore,app store, orapple store - Arch Wiki — keyword:
arch wiki - Auchan — keyword:
auchan - Audible — keyword:
audible - Boobpedia — keyword:
boobpedia - Cărturești — keyword:
carturesti - Decathlon — keyword:
decathlon - Dedeman — keyword:
dedeman - Dex Online — keyword:
dex - Digi24 — keyword:
digi24 - eBay — keyword:
ebay - eMAG — keyword:
emag - evoMAG — keyword:
evomag - Facebook — keyword:
facebook - F-Droid — keyword:
fdroidorf-droid - Firefox Extensions — keyword:
firefox extensionorfirefox extensions - Flanco — keyword:
flanco - Flathub — keyword:
flathub - Flip.ro — keyword:
flip.ro - G2A — keyword:
g2a - GitHub — keyword:
github - GOG — keyword:
gog - Hornbach — keyword:
hornbach - IKEA — keyword:
ikea - IMDb (via LibreMDb) — keyword:
imdb - Instagram — keyword:
instagram - JYSK — keyword:
jysk - Leroy Merlin — keyword:
leroy merlin - Lidl — keyword:
lidl - LinkedIn — keyword:
linkedin - Minecraft Heads — keyword:
mc head,mc heads,minecraft head, orminecraft heads - Minecraft Wiki — keyword:
mc wikiorminecraft wiki - ModDB — keyword:
moddb - NameMC — keyword:
namemc - Netflix — keyword:
netflix - Nexus Mods — keyword:
nexusmodsornexus mods - Odysee — keyword:
odysee - OLX — keyword:
olx - PC Garage — keyword:
pcgarage - Pinterest — keyword:
pinterest - PlanetMinecraft — keyword:
planet minecraft - PlanetMinecraft Schematics — keyword:
mc schematic(s)orminecraft schematic(s) - Play Store — keyword:
play storeorplaystore - Plex — keyword:
plex - ProtonDB — keyword:
protondb - Reddit (via Redlib) — keyword:
reddit - Rtings — keyword:
rtings - Sinsay — keyword:
sinsay - Spigot — keyword:
spigot - Spy-Shop — keyword:
spyshop,spyshop.ro,spy-shop, orspy-shop.ro - SteamDB — keyword:
steamdb - TripAdvisor — keyword:
tripadvisor - TVDB — keyword:
tvdborthetvdb - UESP (Unofficial Elder Scrolls Pages) — keyword:
uesp,elder scrolls wiki,eso wiki,morrowind wiki,oblivion wiki,skyrim wiki,tes wiki, orthe elder scrolls wiki - Vinted — keyword:
vinted - Wikidata — keyword:
wikidata - Wikipedia (randomised: Wikipedia / Wikiless) — keyword:
wikipedia - YouTube (via yewtu.be) — keyword:
youtube
NuciSearch supports OpenSearch, allowing it to be installed as a search engine in browsers.
OpenSearch description: https://search.nuilandia.ro/opensearch.xml
All settings are loaded from appsettings.json. The following keys are recognised:
| Section | Key | Description |
|---|---|---|
NuciLoggerSettings |
logFilePath |
Path to the log output file |
NuciLoggerSettings |
isFileOutputEnabled |
Whether to write logs to a file |
All NuGet dependencies are restored automatically by dotnet restore.
dotnet build NuciSearchdotnet run --project NuciSearchdotnet test NuciSearch.slnxThe repository includes release.sh, which delegates to the upstream deployment script used by the project maintainer.
bash ./release.sh 1.0.0This script downloads and executes an external release helper from https://raw.githubusercontent.com/hmlendea/deployment-scripts/master/release/dotnet/10.0.sh.
Note: Piping into bash is an intensely controversial topic. Please review any external scripts before running them in your environment!
The solution contains the following projects:
- NuciSearch: The main ASP.NET Core Blazor Server application
- NuciSearch.UnitTests: Unit tests for the application
Key directories inside NuciSearch/:
| Directory | Purpose |
|---|---|
Components/ |
Blazor components (pages and layout) |
Localisation/ |
IP-based culture detection |
Logging/ |
Logging keys and operation constants |
Resources/ |
Localisation resource files |
Services/ |
Business logic and search URL generation |
wwwroot/ |
Static web assets (CSS, favicon, OpenSearch XML) |
| Package | Purpose |
|---|---|
NuciLog |
Structured application logging |
NuciLog.Core |
Core logging abstractions |
NuciText.Obfuscation |
Query deobfuscation |
Contributions are welcome. Please:
- Keep changes cross-platform
- Keep the existing public API intact unless a breaking change is intentional
- Keep pull requests focused and consistent with the existing code style
- Update documentation when behaviour changes
If you find this project useful, consider funding it or giving a ⭐️ on GitHub!
Licensed under the GNU General Public License v3.0 or later. See LICENSE for details.