Skip to content

Deploying Websurfx

Introduction

Websurfx is a fast, privacy-focused metasearch engine written in Rust. It aggregates search results from multiple search engines while protecting your privacy by acting as an intermediary between you and the underlying search providers.

Unlike using search engines directly, Websurfx prevents tracking by not sharing your IP address or search history with the search providers. All queries are made server-side, giving you privacy-preserving search results.

Key features of Websurfx include:

  • Privacy-Focused: No tracking, no ads, no data collection
  • Multiple Search Engines: Aggregate results from Google, Bing, DuckDuckGo, and more
  • Fast Performance: Built with Rust for speed and efficiency
  • Customizable: Configure which search engines to use
  • Clean Interface: Distraction-free search experience
  • Safe Search: Optional content filtering
  • Image Search: Search for images across multiple sources
  • Instant Answers: Quick answers for common queries
  • Themes: Multiple visual themes available
  • Low Resource Usage: Efficient memory and CPU usage
  • No JavaScript Required: Works with JavaScript disabled

This guide walks you through deploying Websurfx on Klutch.sh using Docker for private web searching.

Prerequisites

Before deploying Websurfx on Klutch.sh, ensure you have:

Repository Structure

Create a GitHub repository with the following structure:

websurfx-deploy/
├── Dockerfile
└── .dockerignore

Dockerfile

Create a Dockerfile in your repository:

FROM neonmmd/websurfx:latest
# Web interface port
EXPOSE 8080
# The base image handles the entrypoint

Environment Variables

VariableRequiredDefaultDescription
WEBSURFX_CONFIG_PATHNo/etc/websurfx/config.luaConfiguration file path

Deployment on Klutch.sh

  1. Push your Dockerfile to your GitHub repository.
  2. Log in to Klutch.sh and create a new project.
  3. Create a new app within your project and connect your GitHub repository containing the Dockerfile.
  4. Configure the deployment settings: - Select **HTTP** as the traffic type - Set the internal port to **8080**
  5. Attach a persistent volume for configuration: - Mount path: `/etc/websurfx` - Recommended size: 100 MB - Purpose: Configuration files
  6. Click **Deploy** and wait for the build to complete.
  7. Access your Websurfx instance at the provided URL and start searching privately.

Configuration

Websurfx uses a Lua configuration file. To customize:

  1. Access the configuration file at /etc/websurfx/config.lua
  2. Modify search engine settings
  3. Adjust theme and preferences
  4. Restart the application

Usage

Searching

Navigate to your Websurfx URL and enter your search query. Results are aggregated from multiple search engines without revealing your identity.

Add Websurfx as your browser’s default search engine:

https://your-websurfx.klutch.sh/search?q=%s

Troubleshooting

No Search Results

Some search engines may rate-limit or block requests. Try enabling additional search engines in the configuration.

Slow Results

Metasearch engines query multiple sources, which can take longer than direct searches. Consider reducing the number of enabled search engines.

Additional Resources