Skip to content

A fast, local-first "search engine" for !bang users

License

Notifications You must be signed in to change notification settings

ThisModernDay/unduck

 
 

Repository files navigation

Unduck

Enhanced Fork: This fork adds several improvements to the original Unduck by Theo:

  • Search history with filtering options (1h, 24h, week, all)
  • Custom bangs management
  • Improved UI with modals and animations
  • Better error handling and validation
  • Local-first approach with IndexedDB storage
  • Configurable base URL through environment variables

Original Project

This project is a fork of Unduck created by Theo Browne. The original project provides a fast, local-first solution for DuckDuckGo bang redirects. All core functionality and the brilliant idea behind this project are credited to Theo.

Overview

DuckDuckGo's bang redirects are too slow. Add the following URL as a custom search engine to your browser. Enables all of DuckDuckGo's bangs to work, but much faster.

https://unduck.thismodern.dev/?q=%s

How is it that much faster?

DuckDuckGo does their redirects server side. Their DNS is...not always great. Result is that it often takes ages.

I solved this by doing all of the work client side. Once you've went to https://unduck.thismodern.dev once, the JS is all cache'd and will never need to be downloaded again. Your device does the redirects, not me.

Deployment

Docker

The application can be deployed using Docker. We provide both a Dockerfile and docker-compose.yml for easy deployment.

Using Docker Compose (Recommended)

  1. Clone the repository:
git clone https://github.com/ThisModernDay/unduck.git
cd unduck
  1. Start the container:
docker-compose up -d

The application will be available at http://localhost.

Using Docker Directly

  1. Build the image:
docker build -t unduck .
  1. Run the container:
docker run -d -p 80:80 unduck

Configuration

The default configuration serves the application on port 80. To use a different port, modify the ports section in docker-compose.yml or adjust the -p flag in the docker run command.

Environment Variables

You can set this environment variable in different ways:

  1. Using Docker Compose:
VITE_BASE_URL=https://your-domain.com docker-compose up -d
  1. Using Docker directly:
docker build --build-arg VITE_BASE_URL=https://your-domain.com -t unduck .
docker run -d -p 80:80 unduck
  1. Using a .env file:
VITE_BASE_URL=https://your-domain.com
  1. For Vercel deployment: Add VITE_BASE_URL in your project's environment variables through the Vercel dashboard.

Credits

About

A fast, local-first "search engine" for !bang users

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.8%
  • Other 0.2%