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:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
- Basic familiarity with Docker concepts
Repository Structure
Create a GitHub repository with the following structure:
websurfx-deploy/├── Dockerfile└── .dockerignoreDockerfile
Create a Dockerfile in your repository:
FROM neonmmd/websurfx:latest
# Web interface portEXPOSE 8080
# The base image handles the entrypointEnvironment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
WEBSURFX_CONFIG_PATH | No | /etc/websurfx/config.lua | Configuration file path |
Deployment on Klutch.sh
- Push your Dockerfile to your GitHub repository.
- Log in to Klutch.sh and create a new project.
- Create a new app within your project and connect your GitHub repository containing the Dockerfile.
- Configure the deployment settings: - Select **HTTP** as the traffic type - Set the internal port to **8080**
- Attach a persistent volume for configuration: - Mount path: `/etc/websurfx` - Recommended size: 100 MB - Purpose: Configuration files
- Click **Deploy** and wait for the build to complete.
- Access your Websurfx instance at the provided URL and start searching privately.
Configuration
Websurfx uses a Lua configuration file. To customize:
- Access the configuration file at
/etc/websurfx/config.lua - Modify search engine settings
- Adjust theme and preferences
- 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.
Setting as Default Search
Add Websurfx as your browser’s default search engine:
https://your-websurfx.klutch.sh/search?q=%sTroubleshooting
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.