File size: 9,535 Bytes
8392a87
27de45a
 
1720135
6a4935a
58a3527
3a984ed
34ae87e
3a984ed
 
 
 
 
 
 
 
 
 
 
 
 
5f27393
 
 
 
 
 
1b04bf1
 
 
 
 
 
d80d4c1
 
 
 
 
 
 
 
8392a87
d80d4c1
 
1720135
 
3a984ed
 
 
 
 
9ba07cb
6a4935a
9ba07cb
 
3a984ed
9ba07cb
 
3a984ed
9ba07cb
 
 
 
 
 
 
 
 
3a984ed
 
 
 
 
1720135
8392a87
1720135
 
3a984ed
1720135
 
 
3a984ed
1720135
 
 
 
34ae87e
3a984ed
6a4935a
d80d4c1
8392a87
6a4935a
d80d4c1
6a4935a
 
d80d4c1
34ae87e
d80d4c1
3a984ed
 
34ae87e
3a984ed
995b9ae
 
 
1720135
 
 
 
1d638ff
995b9ae
6a4935a
5b70670
1720135
 
3a984ed
 
 
8392a87
3a984ed
34ae87e
1720135
3a984ed
1720135
34ae87e
1720135
3a984ed
1720135
34ae87e
1720135
3a984ed
1720135
34ae87e
1720135
8392a87
1720135
34ae87e
3a984ed
 
 
 
8392a87
3a984ed
34ae87e
3a984ed
 
 
6a4935a
3a984ed
34ae87e
3a984ed
 
1720135
 
 
8392a87
1720135
 
 
8392a87
1720135
 
 
8392a87
3a984ed
34ae87e
3a984ed
 
1720135
6a4935a
1720135
34ae87e
3a984ed
 
 
 
 
8392a87
3a984ed
 
6a4935a
 
3a984ed
6a4935a
8392a87
3a984ed
 
34ae87e
3a984ed
 
 
 
34ae87e
3a984ed
34ae87e
3a984ed
 
 
8392a87
3a984ed
34ae87e
3a984ed
 
 
8392a87
1720135
 
 
3a984ed
1720135
 
 
6a4935a
3a984ed
34ae87e
1720135
3a984ed
1720135
6a4935a
1720135
34ae87e
1720135
3a984ed
 
 
1720135
3357fa2
 
 
 
 
 
 
3a984ed
34ae87e
3a984ed
 
 
1720135
3357fa2
 
 
 
 
1720135
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
ο»Ώ<h1 align="center">
  <img src="./images/websurfx_logo.png" alt="websurfx logo" align="center" />
</h1>
<p align="center">
  <b align="center"><a href="README.md">Readme</a></b> |
  <b><a href="https://discord.gg/SWnda7Mw5u">Discord</a></b> |
  <b><a href="https://github.com/neon-mmd/websurfx">GitHub</a></b> |
  <b><a href="./docs/README.md">Documentation</a></b>
  <br /><br />
  <a href="#">
    <img
      alt="GitHub code size in bytes"
      src="https://img.shields.io/github/languages/code-size/neon-mmd/websurfx?style=flat-square"
    />
  </a>
  <a href="https://github.com/neon-mmd/websurfx/actions">
    <img
      alt="GitHub Workflow Status"
      src="https://img.shields.io/github/actions/workflow/status/neon-mmd/websurfx/rust.yml?style=flat-square"
    />
  </a>
  <a href=""
    ><img
      alt="Maintenance"
      src="https://img.shields.io/maintenance/yes/2023?style=flat-square"
    />
  </a>
  <a href="https://gitpod.io/#https://github.com/neon-mmd/websurfx">
    <img
      alt="Gitpod"
      src="https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod"
    />
  </a>
  <br />
  <br />
  <i>
    A modern-looking, lightning-fast, privacy-respecting, secure
    <a href="https://en.wikipedia.org/wiki/Metasearch_engine"
      >meta search engine</a
    >
    (pronounced as websurface or web-surface /wΙ›bˈsɜːrfΙ™s/.) written in Rust. It
    provides a quick and secure search experience while completely respecting user
    privacy.</i
  >
</p>

<details>
  <summary><b>Table of Contents</b></summary>
  <p>

- **Getting Started**
    - [πŸ”­ Preview](#preview-)
    - [πŸš€ Features](#features-)
    - [πŸ› οΈ Installation and Testing](#installation-and-testing-)
    - [πŸ”§ Configuration](#configuration-)
- **Feature Overview**
    - [🎨 Theming](#theming-)
    - [🌍 Multi-Language Support](#multi-language-support-)
- **Community**
    - [πŸ“Š System Requirements](#system-requirements-)
    - [πŸ—¨οΈ FAQ (Frequently Asked Questions)](#faq-frequently-asked-questions-)
    - [πŸ“£ More Contributers Wanted](#more-contributers-wanted-)
    - [πŸ’– Supporting Websurfx](#supporting-websurfx-)
    - [πŸ“˜ Documentation](#documentation-)
    - [πŸ›£οΈ Roadmap](#roadmap-)
    - [πŸ™‹ Contributing](#contributing-)
    - [πŸ“œ License](#license-)
    - [🀝 Credits](#credits-)

  </p>
</details>

# Preview πŸ”­ 

## Home Page

<img align="center" src="./images/main_page.png" />

## Search Page

<img align="center" src="./images/search_page.png" />

## 404 Error Page

<img align="center" src="./images/404_error_page.png" />

**[⬆️ Back to Top](#--)**

# Features πŸš€ 

- 🎨 Make Websurfx uniquely yours with nine color schemes provided by default. It also supports creation of custom themes and color schemes in a quick and easy way, so unleash your creativity!
- πŸ” Fast, private, and secure
- πŸ†“ 100% free and open source
- πŸ’¨ Ad-free and clean results
- 🌟 and lots more...

**[⬆️ Back to Top](#--)**

# Installation and Testing πŸ› οΈ 

> For full setup instructions, see: [**Installation**](./docs/installation.md)

Before you can start building `websurfx`, you will need to have `Cargo` installed on your system. You can find the installation instructions [here](https://doc.rust-lang.org/cargo/getting-started/installation.html).

To get started with Websurfx, clone the repository, edit the config file, which is located in the `websurfx/` directory, and install the Redis server by following the instructions located [here](https://redis.io/docs/getting-started/) and then run the websurfx server and redis server using the following commands:

``` shell
git clone https://github.com/neon-mmd/websurfx.git
cd websurfx
git checkout stable
cargo build -r
redis-server --port 8082 &
./target/release/websurfx
```

Once you have started the server, open your preferred web browser and navigate to <http://127.0.0.1:8080> to start using Websurfx.

> **Warning**
> This project is still in the testing phase and is **not** ready for production use.

**[⬆️ Back to Top](#--)**

# Configuration πŸ”§ 

> For full configuration instructions, see: [**Configuration**](./docs/configuration.md)

Websurfx is configured through the config.lua file, located at `websurfx/config.lua`.

**[⬆️ Back to Top](#--)**

# Theming 🎨 

> For full theming and customization instructions, see: [**Theming**](./docs/theming.md)

Websurfx comes loaded with several themes and color schemes, which you can apply and edit through the config file. It also supports custom themes and color schemes using CSS, allowing you to make it truly yours.

**[⬆️ Back to Top](#--)**

# Multi-Language Support 🌍

> **Note**
> Currently, we do not support other languages but we will start accepting contributions regarding language support in the future. We believe language should never be a barrier to entry.

**[⬆️ Back to Top](#--)**

# System Requirements πŸ“Š

At present, we only support x86_64 architecture systems, but we would love to have contributions that extend to other architectures as well.

**[⬆️ Back to Top](#--)**

# FAQ (Frequently Asked Questions) πŸ—¨οΈ

## Why Websurfx?

The primary purpose of the Websurfx project is to create a fast, secure, and privacy-focused meta-search engine. There are numerous meta-search engines available, but not all guarantee the security of their search engine, which is critical for maintaining privacy. Memory flaws, for example, can expose private or sensitive information, which is understandably bad. There is also the added problem of spam, ads, and inorganic results which most engines don't have a fool-proof answer to. Until now. With Websurfx I finally put a full stop to this problem. Websurfx is based on Rust, which ensures memory safety and removes such issues. Many meta-search engines also lack important features like advanced picture search, required by graphic designers, content providers, and others. Websurfx improves the user experience by providing these and other features, such as proper NSFW blocking and Micro-apps or Quick Results (providing a calculator, currency exchanges, etc in the search results).

## Why AGPLv3?

Websurfx is distributed under the **AGPLv3** license to keep the source code open and transparent. This helps keep malware, telemetry, and other dangers out of the project. **AGPLv3** is a strong copyleft license that ensures the software's source code, including any modifications or improvements made to the code, remains open and available to everyone.

## Why Rust?

Websurfx is based on Rust due to its memory safety features, which prevents vulnerabilities and makes the codebase more secure. Rust is also faster than C++, contributing to Websurfx's speed and responsiveness. Finally, the Rust ownership and borrowing system enables secure concurrency and thread safety in the program.

**[⬆️ Back to Top](#--)**

# More Contributers Wanted πŸ“£ 

We are looking for more willing contributors to help grow this project. For more information on how you can contribute, check out the [project board](https://github.com/neon-mmd/websurfx/projects?query=is%3Aopen) and the [CONTRIBUTING.md](CONTRIBUTING.md) file for guidelines and rules for making contributions.

**[⬆️ Back to Top](#--)**

# Supporting Websurfx πŸ’–

> For full details and other ways you can help out, see: [**Contributing**]()

If you use Websurfx and would like to contribute to its development, we're glad to have you on board! Contributions of any size or type are always welcome, and we will always acknowledge your efforts.

Several areas that we need a bit of help with at the moment are:
- **Better and more color schemes**: Help fix color schemes and add other famous color schemes.
- **Improve evasion code for bot detection** - Help improve code related to evading IP blocking and emulating human behaviors located in everyone's engine file.
- **Logo** - Help create a logo for the project and website.
- **Docker Support** - Help write a Docker Compose file for the project.
- Submit a PR to add a new feature, fix a bug, update the docs, add a theme, widget, or anything else.
- Star Websurfx on GitHub.

**[⬆️ Back to Top](#--)**

# Documentation πŸ“˜

> **Note**
> We welcome any contributions to the [documentation](./docs/) as this will benefit everyone who uses this project. 

**[⬆️ Back to Top](#--)**

# Roadmap πŸ›£οΈ

> Coming soon! πŸ™‚.

**[⬆️ Back to Top](#--)**

# Contributing πŸ™‹ 

Contributions are welcome from anyone. It doesn't matter who you are; you can still contribute to the project in your own way.

## Not a developer but still want to contribute?

Check out this [video](https://youtu.be/FccdqCucVSI) by Mr. Nick on how to contribute.

## Developer

If you are a developer, have a look at the [CONTRIBUTING.org](CONTRIBUTING.md) document for more information.

**[⬆️ Back to Top](#--)**

# License πŸ“œ 

Websurfx is licensed under the [AGPLv3](LICENSE) license.

**[⬆️ Back to Top](#--)**

# Credits 🀝 

We would like to thank the following people for their contributions and support:

<p>
  <br />
  <a href="https://github.com/neon-mmd/websurfx/graphs/contributors">
    <img src="https://contrib.rocks/image?repo=neon-mmd/websurfx" />
  </a>
  <br />
</p>

**[⬆️ Back to Top](#--)**

---

<p align="center">
  <a href="https://github.com/neon-mmd/websurfx">
    <img src="https://github.githubassets.com/images/icons/emoji/octocat.png" />
  </a>
  <br /><br />
  <i>Thank you for Visiting</i>
</p>