neon_arch commited on
Commit
403166c
2 Parent(s): 2ab1ee1 05eda69

Merge branch 'stable' into rolling

Browse files
.github/workflows/hello.yml ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Welcome first time contributors
2
+
3
+ on:
4
+ pull_request_target:
5
+ types:
6
+ - opened
7
+
8
+ jobs:
9
+ welcome:
10
+ name: Welcome
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/first-interaction@v1
14
+ with:
15
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
16
+ pr-message: |-
17
+ Congrats on making your first Pull Request and thanks for taking the time to improve Websurfx! ❤️!
18
+ Say hello by joining the conversation in our [Discord](https://discord.gg/SWnda7Mw5u)
.github/workflows/labels.yml CHANGED
@@ -3,7 +3,7 @@ name: Import open source standard labels
3
  on:
4
  push:
5
  branches:
6
- - master
7
 
8
  jobs:
9
  labels:
@@ -19,4 +19,4 @@ jobs:
19
  github-token: ${{ secrets.GITHUB_TOKEN }}
20
  owner-name: ${{ github.repository_owner }}
21
  repository-name: ${{ github.event.repository.name }}
22
- force: true # optional to clear existing labels, default to true
 
3
  on:
4
  push:
5
  branches:
6
+ - rolling
7
 
8
  jobs:
9
  labels:
 
19
  github-token: ${{ secrets.GITHUB_TOKEN }}
20
  owner-name: ${{ github.repository_owner }}
21
  repository-name: ${{ github.event.repository.name }}
22
+ force: false
CONTRIBUTING.md CHANGED
@@ -1,34 +1,54 @@
1
- # Things to Consider Before Contributing
2
 
3
- ## Knowledge Required
4
 
5
- - Rust basics
6
- - Actix-web crate basics
7
- - Tokio crate and async/await
8
- - Reqwest crate basics
9
- - Serde and serde~json~ crate basics
10
- - fake~useragent~ crate basics
11
- - pyo3/hlua/rlua crates basics
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
 
13
  ## Guidelines
14
 
15
- - Please be patient.
 
 
 
 
16
 
17
- - Treat everyone with respect -- \"give respect and take respect.\"
18
 
19
- - Document your code properly with Rust coding conventions in mind.
20
 
21
- - Provide a brief description of the changes you made in the pull
22
- request.
23
 
24
- - Provide an appropriate header for the pull request.
25
 
26
- **NOTE:** The rolling branch is where all contributions should go.
27
- In other words, it is the working branch for this project.
28
 
29
- We appreciate any contributions and suggestions to help improve the
30
- Websurfx project. Please keep in mind the above requirements and
31
- guidelines before submitting a pull request and also if you have any
32
- doubts/concerns/questions about the project, its source code or anything
33
- related to the project than feel free to ask by opening an
34
- \[issue\](<https://github.com/neon-mmd/websurfx/issues>).
 
1
+ # What You Can Contribute To?
2
 
3
+ ## Documentation/Wiki
4
 
5
+ Found a typo, or something that isn't as clear as it could be? Maybe I've missed something off altogether, or you hit a roadblock that took you a while to figure out. Edit the [wiki](https://github.com/neon-mmd/websurfx/wiki) to add to or improve the documentation. This will help future users get Websurfx up and running more easily.
6
+
7
+ ## Readme
8
+
9
+ Found a typo, or the Readme is not very clear as it should be?. Consider Submitting a Pull request to the [Readme](https://github.com/neon-mmd/websurfx/blob/master/README.md) to add to or improve the Readme. This will help future users to better understand the project more clearly.
10
+
11
+ ## Help Improve Github Actions
12
+
13
+ Know how to fix or improve a github action?. Consider Submitting a Pull request to help make automation and testing better.
14
+
15
+ ## Source Code
16
+
17
+ You should know atleast one of the things below to start contributing:
18
+
19
+ - Rust basics
20
+ - Actix-web crate basics
21
+ - Tokio crate and async/await
22
+ - Reqwest crate basics
23
+ - Serde and serde_json crate basics
24
+ - Scraper crate basics
25
+ - Frontend (handlebars, css and js).
26
+ - Fake useragent crate basics
27
+ - pyo3/hlua/rlua crates basics
28
+
29
+ ## Report a Bug/Issue
30
+
31
+ If you've found a bug, then please consider raising it as an issue [here](https://github.com/neon-mmd/websurfx/issues). This will help me know if there's something that needs fixing. Try and include as much detail as possible, such as your environment, steps to reproduce, any console output and maybe an example screenshot or recording if necessary.
32
+
33
+ ## Spread the word
34
+
35
+ Websurfx is still a relatively young project, and as such not many people know of it. It would be great to see more users, and so it would be awesome if you could consider sharing with your friends or on social platforms.
36
 
37
  ## Guidelines
38
 
39
+ - Please be patient.
40
+ - Treat everyone with respect -- \"give respect and take respect.\"
41
+ - Document your code properly with Rust coding conventions in mind.
42
+ - Provide a brief description of the changes you made in the pull request.
43
+ - Provide an appropriate header for the pull request.
44
 
45
+ ## Join the discussion
46
 
47
+ We have a [Discord](https://discord.gg/SWnda7Mw5u) channel, feel free to join and share your ideas and ask questions about the project, we would be glad to hear you out.
48
 
49
+ # Where To Contribute?
 
50
 
51
+ The _rolling branch_ is where we intend all contributions should go.
52
 
 
 
53
 
54
+ We appreciate any contributions whether be of any size or topic and suggestions to help improve the Websurfx project. Please keep in mind the above requirements and guidelines before submitting a pull request and also if you have any doubts/concerns/questions about the project, its source code or anything related to the project than feel free to ask by opening an [issue](https://github.com/neon-mmd/websurfx/issues) or by asking us on our [Discord](https://discord.gg/SWnda7Mw5u) channel.
 
 
 
 
 
README.md CHANGED
@@ -1,68 +1,34 @@
1
- <h1 align="center">Websurfx</h1>
 
 
2
  <p align="center">
3
- <b align="center"><a href="README.org">Readme</a></b> |
4
  <b><a href="https://discord.gg/SWnda7Mw5u">Discord</a></b> |
5
  <b><a href="https://github.com/neon-mmd/websurfx">GitHub</a></b> |
6
- <b><a href="https://github.com/neon-mmd/websurfx/wiki">Documentation</a></b>
7
  <br /><br />
8
- <a href="./LICENSE">
9
- <img
10
- alt="GitHub"
11
- src="https://img.shields.io/github/license/neon-mmd/websurfx?style=flat-square"
12
- />
13
- </a>
14
- <a href="https://github.com/neon-mmd/websurfx/stargazers">
15
- <img
16
- alt="GitHub Repo stars"
17
- src="https://img.shields.io/github/stars/neon-mmd/websurfx?style=flat-square"
18
- />
19
- </a>
20
- <a href="https://github.com/neon-mmd/websurfx/forks">
21
- <img
22
- alt="GitHub forks"
23
- src="https://img.shields.io/github/forks/neon-mmd/websurfx?style=flat-square"
24
- />
25
- </a>
26
  <a href="#">
27
  <img
28
  alt="GitHub code size in bytes"
29
  src="https://img.shields.io/github/languages/code-size/neon-mmd/websurfx?style=flat-square"
30
  />
31
  </a>
32
- <a href="https://github.com/neon-mmd/websurfx/issues">
33
- <img
34
- alt="GitHub issues"
35
- src="https://img.shields.io/github/issues/neon-mmd/websurfx?style=flat-square"
36
- />
37
- </a>
38
- <a href="https://github.com/neon-mmd/websurfx/pulls">
39
- <img
40
- alt="GitHub pull requests"
41
- src="https://img.shields.io/github/issues-pr/neon-mmd/websurfx?style=flat-square"
42
- />
43
- </a>
44
  <a href="https://github.com/neon-mmd/websurfx/actions">
45
  <img
46
  alt="GitHub Workflow Status"
47
  src="https://img.shields.io/github/actions/workflow/status/neon-mmd/websurfx/rust.yml?style=flat-square"
48
  />
49
  </a>
50
- <a href="">
51
- <img
52
- alt="GitHub release (latest by date including pre-releases)"
53
- src="https://img.shields.io/github/v/release/neon-mmd/websurfx?include_prereleases"
54
- />
55
- </a>
56
  <a href=""
57
  ><img
58
  alt="Maintenance"
59
  src="https://img.shields.io/maintenance/yes/2023?style=flat-square"
60
  />
61
  </a>
62
- <a href="">
63
  <img
64
- alt="GitHub contributors"
65
- src="https://img.shields.io/github/contributors-anon/neon-mmd/websurfx?style=flat-square"
66
  />
67
  </a>
68
  <br />
@@ -73,7 +39,7 @@
73
  >meta search engine</a
74
  >
75
  (pronounced as websurface or web-surface /wɛbˈsɜːrfəs/.) written in Rust. It
76
- provides a fast and secure search experience while respecting user
77
  privacy.</i
78
  >
79
  </p>
@@ -84,7 +50,7 @@
84
 
85
  - **Getting Started**
86
  - [🔭 Preview](#preview-)
87
- - [🌈 Features](#features-)
88
  - [🛠️ Installation and Testing](#installation-and-testing-)
89
  - [🔧 Configuration](#configuration-)
90
  - **Feature Overview**
@@ -118,30 +84,32 @@
118
 
119
  <img align="center" src="./images/404_error_page.png" />
120
 
121
- **[⬆️ Back to Top](#websurfx)**
122
 
123
- # Features 🌈
124
 
125
- - 🎨 High level customizability with 9 colorchemes provided by default with a simple theme, also supporting creation of your custom themes and colorschemes very quickly and easily
126
- - 🔐 Fast, private and secure
127
  - 🆓 100% free and open source
128
- - 🧹 Ad free and clean results
129
- - 🌈 and lots more...
130
 
131
- **[⬆️ Back to Top](#websurfx)**
132
 
133
  # Installation and Testing 🛠️
134
 
135
- > For full setup instructions, see: [**Installation**](https://github.com/neon-mmd/websurfx/wiki/installation)
 
 
136
 
137
- To get started with Websurfx, clone the repository, edit the config file which is located in the `websurfx`{.verbatim} directory and install 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:
138
 
139
  ``` shell
140
  git clone https://github.com/neon-mmd/websurfx.git
141
  cd websurfx
142
- cargo build
143
- redis-server -p 8082 &
144
- ./target/debug/websurfx
145
  ```
146
 
147
  Once you have started the server, open your preferred web browser and navigate to <http://127.0.0.1:8080> to start using Websurfx.
@@ -149,91 +117,91 @@ Once you have started the server, open your preferred web browser and navigate t
149
  > **Warning**
150
  > Please be aware that the project is still in the testing phase and is not ready for production use.
151
 
152
- **[⬆️ Back to Top](#websurfx)**
153
 
154
  # Configuration 🔧
155
 
156
- > For full configuration instructions, see: [**Configuration**](https://github.com/neon-mmd/websurfx/wiki/configuration)
157
 
158
  Websurfx is configured through the config.lua file, located at `websurfx/config.lua`.
159
 
160
- **[⬆️ Back to Top](#websurfx)**
161
 
162
  # Theming 🎨
163
 
164
- > For full theming and customization instructions, see: [**Theming**](https://github.com/neon-mmd/websurfx/wiki/theming)
165
 
166
- Websurfx comes with several themes and colorschemes by default which you can apply and edit through the config file. Support for custom themes and colorschemes using css and develop your own unique-looking website.
167
 
168
- **[⬆️ Back to Top](#websurfx)**
169
 
170
  # Multi-Language Support 🌍
171
 
172
  > **Note**
173
- > Currently, we do not support other languages but in future we would start accepting contributions regarding language support because we believe that language should not be a barrier for entry.
174
 
175
- **[⬆️ Back to Top](#websurfx)**
176
 
177
  # System Requirements 📊
178
 
179
- At present, we only support x86_64 architecture systems but will love to have contributions to extend to other architectures as well.
180
 
181
- **[⬆️ Back to Top](#websurfx)**
182
 
183
  # FAQ (Frequently Asked Questions) 🗨️
184
 
185
  ## Why Websurfx?
186
 
187
- The main goal of the Websurfx project is to provide a fast, secure, and privacy-focused [meta search engine](https://en.wikipedia.org/wiki/Metasearch_engine). While there are many meta search engines available, they do not always guarantee the security of their search engine, which is essential for ensuring privacy. For example, memory vulnerabilities can leak private or sensitive information, which is never good. Websurfx is written in Rust, which guarantees memory safety and eliminates such problems. Many meta search engines also lack key features such as advanced image search, which is required by many graphic designers, content creators, and others. Websurfx aims to provide these features and others, such as proper NSFW blocking, to improve the user experience.
188
 
189
  ## Why AGPLv3?
190
 
191
- Websurfx is released under the **AGPLv3** license to ensure that the source code remains open and transparent. This helps to prevent the inclusion of spyware, telemetry, or other malicious code in the project. **AGPLv3** is a strong copyleft license that ensures the source code of the software remains open and available to everyone, including any modifications or improvements made to the code.
192
 
193
  ## Why Rust?
194
 
195
- Rust was chosen as the programming language for Websurfx due to its memory safety features, which can help prevent vulnerabilities and make the codebase more secure. Rust is also faster than C++, which helps to make Websurfx fast and responsive. In addition, Rust\'s ownership and borrowing system allows for safe concurrency and thread safety in the codebase.
196
 
197
- **[⬆️ Back to Top](#websurfx)**
198
 
199
  # More Contributers Wanted 📣
200
 
201
- 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.org](CONTRIBUTING.org) file for guidelines and rules for making contributions.
202
 
203
- **[⬆️ Back to Top](#websurfx)**
204
 
205
  # Supporting Websurfx 💖
206
 
207
  > For full details and other ways you can help out, see: [**Contributing**]()
208
 
209
- If you're using Websurfx and would like to help support its development, then that would be awesome! Contributions of any type, any size, are always very much appreciated, and we will appropriately credit you for your effort.
210
 
211
  Several areas that we need a bit of help with at the moment are:
212
- - **Better and more colorchemes** - Help fix colorchemes and add other famous colorchemes.
213
- - **Improve evasion code for bot detection** - Help improve code related to evade ip blocking and emulate human behaviours located in everyone engine file.
214
  - **Logo** - Help create a logo for the project and website.
215
- - **Docker Support** - Help write a docker compose file for the project.
216
- - Submit a PR to add a new feature, fix a bug, update the docs, add a theme, widget or something else.
217
  - Star Websurfx on GitHub.
218
 
219
- **[⬆️ Back to Top](#websurfx)**
220
 
221
  # Documentation 📘
222
 
223
  > **Note**
224
- > We are willing to have any contribution regarding [documentation](https://github.com/neon-mmd/websurfx/wiki) as this helps everyone using this project.
225
 
226
- **[⬆️ Back to Top](#websurfx)**
227
 
228
  # Roadmap 🛣️
229
 
230
  > Coming soon!! 🙂.
231
 
232
- **[⬆️ Back to Top](#websurfx)**
233
 
234
  # Contributing 🙋
235
 
236
- Contributions are welcome from anyone. It doesn\'t matter who you are; you can still contribute to the project in your way.
237
 
238
  ## Not a developer but still want to contribute?
239
 
@@ -241,15 +209,15 @@ Check out this [video](https://youtu.be/FccdqCucVSI) by Mr. Nick on how to contr
241
 
242
  ## Developer
243
 
244
- If you are a developer, have a look at the [CONTRIBUTING.org](CONTRIBUTING.org) document for more information.
245
 
246
- **[⬆️ Back to Top](#websurfx)**
247
 
248
  # License 📜
249
 
250
- Websurfx is available under the [AGPLv3](LICENSE) license.
251
 
252
- **[⬆️ Back to Top](#websurfx)**
253
 
254
  # Credits 🤝
255
 
@@ -263,7 +231,7 @@ We would like to thank the following people for their contributions and support:
263
  <br />
264
  </p>
265
 
266
- **[⬆️ Back to Top](#websurfx)**
267
 
268
  ---
269
 
 
1
+ <h1 align="center">
2
+ <img src="./images/websurfx_logo.png" alt="websurfx logo" align="center" />
3
+ </h1>
4
  <p align="center">
5
+ <b align="center"><a href="README.md">Readme</a></b> |
6
  <b><a href="https://discord.gg/SWnda7Mw5u">Discord</a></b> |
7
  <b><a href="https://github.com/neon-mmd/websurfx">GitHub</a></b> |
8
+ <b><a href="./docs/README.md">Documentation</a></b>
9
  <br /><br />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  <a href="#">
11
  <img
12
  alt="GitHub code size in bytes"
13
  src="https://img.shields.io/github/languages/code-size/neon-mmd/websurfx?style=flat-square"
14
  />
15
  </a>
 
 
 
 
 
 
 
 
 
 
 
 
16
  <a href="https://github.com/neon-mmd/websurfx/actions">
17
  <img
18
  alt="GitHub Workflow Status"
19
  src="https://img.shields.io/github/actions/workflow/status/neon-mmd/websurfx/rust.yml?style=flat-square"
20
  />
21
  </a>
 
 
 
 
 
 
22
  <a href=""
23
  ><img
24
  alt="Maintenance"
25
  src="https://img.shields.io/maintenance/yes/2023?style=flat-square"
26
  />
27
  </a>
28
+ <a href="https://gitpod.io/#https://github.com/neon-mmd/websurfx">
29
  <img
30
+ alt="Gitpod"
31
+ src="https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod"
32
  />
33
  </a>
34
  <br />
 
39
  >meta search engine</a
40
  >
41
  (pronounced as websurface or web-surface /wɛbˈsɜːrfəs/.) written in Rust. It
42
+ provides a quick and secure search experience while maintaining user
43
  privacy.</i
44
  >
45
  </p>
 
50
 
51
  - **Getting Started**
52
  - [🔭 Preview](#preview-)
53
+ - [🚀 Features](#features-)
54
  - [🛠️ Installation and Testing](#installation-and-testing-)
55
  - [🔧 Configuration](#configuration-)
56
  - **Feature Overview**
 
84
 
85
  <img align="center" src="./images/404_error_page.png" />
86
 
87
+ **[⬆️ Back to Top](#--)**
88
 
89
+ # Features 🚀
90
 
91
+ - 🎨 High level of customizability with nine color schemes provided by default with a simple theme, also supporting the creation of your custom themes and colorschemes very quickly and easily
92
+ - 🔐 Fast, private, and secure
93
  - 🆓 100% free and open source
94
+ - 💨 Ad-free and clean results
95
+ - 🌟 and lots more...
96
 
97
+ **[⬆️ Back to Top](#--)**
98
 
99
  # Installation and Testing 🛠️
100
 
101
+ > For full setup instructions, see: [**Installation**](./docs/installation.md)
102
+
103
+ 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).
104
 
105
+ 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:
106
 
107
  ``` shell
108
  git clone https://github.com/neon-mmd/websurfx.git
109
  cd websurfx
110
+ cargo build -r
111
+ redis-server --port 8082 &
112
+ ./target/release/websurfx
113
  ```
114
 
115
  Once you have started the server, open your preferred web browser and navigate to <http://127.0.0.1:8080> to start using Websurfx.
 
117
  > **Warning**
118
  > Please be aware that the project is still in the testing phase and is not ready for production use.
119
 
120
+ **[⬆️ Back to Top](#--)**
121
 
122
  # Configuration 🔧
123
 
124
+ > For full configuration instructions, see: [**Configuration**](./docs/configuration.md)
125
 
126
  Websurfx is configured through the config.lua file, located at `websurfx/config.lua`.
127
 
128
+ **[⬆️ Back to Top](#--)**
129
 
130
  # Theming 🎨
131
 
132
+ > For full theming and customization instructions, see: [**Theming**](./docs/theming.md)
133
 
134
+ Websurfx comes with several themes and color schemes by default, which you can apply and edit through the config file. Supports custom themes and color schemes using CSS, allowing you to develop your own unique-looking website.
135
 
136
+ **[⬆️ Back to Top](#--)**
137
 
138
  # Multi-Language Support 🌍
139
 
140
  > **Note**
141
+ > Currently, we do not support other languages, but in the future, we will start accepting contributions regarding language support because we believe that language should not be a barrier to entry.
142
 
143
+ **[⬆️ Back to Top](#--)**
144
 
145
  # System Requirements 📊
146
 
147
+ At present, we only support x86_64 architecture systems, but we would love to have contributions that extend to other architectures as well.
148
 
149
+ **[⬆️ Back to Top](#--)**
150
 
151
  # FAQ (Frequently Asked Questions) 🗨️
152
 
153
  ## Why Websurfx?
154
 
155
+ The primary purpose of the Websurfx project is to create a fast, secure, and privacy-focused meta-search engine. While there are numerous meta-search engines available, not all of them 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 never a good thing. Also, there is the added problem of Spam, ads, and unorganic results which most engines don't have the full-proof answer to it till now but with Websurfx I finally put a full stop to this problem, also, Rust is used to write Websurfx, which ensures memory safety and removes such issues. Many meta-search engines also lack important features like advanced picture search, which is required by many graphic designers, content providers, and others. Websurfx attempts to improve the user experience by providing these and other features, such as proper NSFW blocking and Micro-apps or Quick results (like providing a calculator, currency exchanges, etc in the search results).
156
 
157
  ## Why AGPLv3?
158
 
159
+ Websurfx is distributed under the **AGPLv3** license to keep the source code open and transparent. This helps to keep malware, telemetry, and other dangerous programs 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.
160
 
161
  ## Why Rust?
162
 
163
+ Rust was chosen as the programming language for Websurfx because of its memory safety features, which can help prevent vulnerabilities and make the codebase more secure. Rust is also faster than C++, which contributes to Websurfx's speed and responsiveness. Furthermore, the Rust ownership and borrowing system enables secure concurrency and thread safety in the program.
164
 
165
+ **[⬆️ Back to Top](#--)**
166
 
167
  # More Contributers Wanted 📣
168
 
169
+ 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.
170
 
171
+ **[⬆️ Back to Top](#--)**
172
 
173
  # Supporting Websurfx 💖
174
 
175
  > For full details and other ways you can help out, see: [**Contributing**]()
176
 
177
+ If you use Websurfx and would like to contribute to its development, that would be fantastic! Contributions of any size or type are always welcome, and we will properly acknowledge your efforts.
178
 
179
  Several areas that we need a bit of help with at the moment are:
180
+ - **Better and more color schemes**: Help fix color schemes and add other famous color schemes.
181
+ - **Improve evasion code for bot detection** - Help improve code related to evading IP blocking and emulating human behaviors located in everyone's engine file.
182
  - **Logo** - Help create a logo for the project and website.
183
+ - **Docker Support** - Help write a Docker Compose file for the project.
184
+ - Submit a PR to add a new feature, fix a bug, update the docs, add a theme, widget, or something else.
185
  - Star Websurfx on GitHub.
186
 
187
+ **[⬆️ Back to Top](#--)**
188
 
189
  # Documentation 📘
190
 
191
  > **Note**
192
+ > We welcome any contributions to the [documentation](./docs/) as this will benefit everyone who uses this project.
193
 
194
+ **[⬆️ Back to Top](#--)**
195
 
196
  # Roadmap 🛣️
197
 
198
  > Coming soon!! 🙂.
199
 
200
+ **[⬆️ Back to Top](#--)**
201
 
202
  # Contributing 🙋
203
 
204
+ Contributions are welcome from anyone. It doesn\'t matter who you are; you can still contribute to the project in your own way.
205
 
206
  ## Not a developer but still want to contribute?
207
 
 
209
 
210
  ## Developer
211
 
212
+ If you are a developer, have a look at the [CONTRIBUTING.org](CONTRIBUTING.md) document for more information.
213
 
214
+ **[⬆️ Back to Top](#--)**
215
 
216
  # License 📜
217
 
218
+ Websurfx is licensed under the [AGPLv3](LICENSE) license.
219
 
220
+ **[⬆️ Back to Top](#--)**
221
 
222
  # Credits 🤝
223
 
 
231
  <br />
232
  </p>
233
 
234
+ **[⬆️ Back to Top](#--)**
235
 
236
  ---
237
 
docs/README.md ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <h1 align="center"><img src="../images/websurfx_docs_image.png" alt="Websurfx Docs" align="center"></h1>
2
+
3
+ # General
4
+
5
+ - [Introduction](./introduction.md)
6
+ - [**FAQ**](./faq.md)
7
+
8
+ # Users
9
+
10
+ - [Installation](./installation.md)
11
+ - [Configuration](./configuration.md)
12
+ - [Theming](./theming.md)
13
+
14
+ # Developers
15
+
16
+ - [**Contribute**](https://github.com/neon-mmd/websurfx/blob/master/CONTRIBUTING.md)
17
+ - [**Coding style**](https://rust-lang.github.io/api-guidelines/naming.html)
docs/configuration.md ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Configuration
2
+
3
+ ## Installed From Source
4
+
5
+ If you have built `websurfx` from source then the configuration file will be located under project directory (codebase) at `websurfx/`
6
+
7
+ > **Note**
8
+ > If you have built websurfx with unstable/rolling/edge branch then you can copy the configuration file from `websurfx/config.lua` located under project directory (codebase) to `~/.config/websurfx/` and make the changes there and rerun the websurfx server. _This is only available from unstable/rolling/edge version_.
9
+
10
+ ## Installed From Package
11
+
12
+ If you have installed `websurfx` using the package manager of your Linux distro then the default configuration file will be located at `/etc/xdg/websurfx/`. You can copy the default config to `~/.config/websurfx/` and make the changes there and rerun the websurfx server.
13
+
14
+ Some of the configuration options provided in the file are stated below. These are subdivided into three categories:
15
+
16
+ - Server
17
+ - Website
18
+ - Cache
19
+
20
+ ## Server
21
+
22
+ - **port:** Port number on which server should be launched.
23
+ - **binding_ip_addr:** IP address on the which server should be launched.
24
+ - **production_use:** Whether to use production mode or not (in other words this option should be used if it is to be used to host it on the server to provide a service to a large number of users). If production_use is set to true. There will be a random delay before sending the request to the search engines, this is to prevent DDoSing the upstream search engines from a large number of simultaneous requests. This is newly added option and hence is only available in the **edge version**.
25
+
26
+ ## Website
27
+
28
+ - **colorscheme:** The colorscheme name which should be used for the website theme (the name should be in accordance to the colorscheme file name present in `public/static/colorschemes` folder).
29
+
30
+ > By Default we provide 9 colorschemes to choose from these are:
31
+ >
32
+ > 1. catppuccin-mocha
33
+ > 2. dracula
34
+ > 3. monokai
35
+ > 4. nord
36
+ > 5. oceanic-next
37
+ > 6. solarized-dark
38
+ > 7. solarized-light
39
+ > 8. tomorrow-night
40
+ > 9. gruvbox-dark
41
+
42
+ - **theme:** The theme name which should be used for the website (again, the name should be in accordance to the theme file name present in `public/static/themes` folder).
43
+
44
+ > By Default we provide 1 theme to choose from these are:
45
+ >
46
+ > 1. simple
47
+
48
+ ## Cache
49
+
50
+ - **redis_connection_url:** Redis connection url address on which the client should connect on.
51
+
52
+ [⬅️ Go back to Home](./README.md)
docs/faq.md ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # General Questions
2
+
3
+ ## Why Websurfx?
4
+
5
+ The primary purpose of the Websurfx project is to create a fast, secure, and privacy-focused [meta-search engine](https://en.wikipedia.org/wiki/Metasearch_engine). While there are numerous meta-search engines available, not all of them 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 never a good thing. Also, there is the added problem of Spam, ads, and unorganic results which most engines don't have the full-proof answer to it till now but with Websurfx I finally put a full stop to this problem, also, Rust is used to write Websurfx, which ensures memory safety and removes such issues. Many meta-search engines also lack important features like advanced picture search, which is required by many graphic designers, content providers, and others. Websurfx attempts to improve the user experience by providing these and other features, such as proper NSFW blocking and Micro-apps or Quick results (like providing a calculator, currency exchanges, etc in the search results).
6
+
7
+ ## Why AGPLv3?
8
+
9
+ Websurfx is released under the AGPLv3 license to ensure that the source code remains open and transparent. This helps to prevent the inclusion of spyware, telemetry, or other malicious code in the project. AGPLv3 is a strong copyleft license that ensures the source code of the software remains open and available to everyone, including any modifications or improvements made to the code.
10
+
11
+ ## Why Rust?
12
+
13
+ Rust was chosen as the programming language for Websurfx due to its memory safety features, which can help prevent vulnerabilities and make the codebase more secure. Rust is also faster than C++, which helps to make Websurfx fast and responsive. In addition, Rust's ownership and borrowing system allows for safe concurrency and thread safety in the codebase.
14
+
15
+ [⬅️ Go back to Home](./README.md)
docs/installation.md ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Install From Package
2
+
3
+ ## Arch Linux
4
+
5
+ You can install `Websurfx` through the [Aur](https://aur.archlinux.org/packages/websurfx-git), Currently we only support `Rolling/Edge` version. You can install the rolling/edge version by running the following command (using [paru](https://github.com/Morganamilo/paru)):
6
+
7
+ ```bash
8
+ paru -S websurfx-edge-git
9
+ ```
10
+
11
+ After installing it you can run the websurfx server by running the following commands:
12
+
13
+ ``` bash
14
+ redis-server --port 8082 &
15
+ websurfx
16
+ ```
17
+
18
+ Once you have started the server, open your preferred web browser and navigate to http://127.0.0.1:8080/ to start using Websurfx.
19
+
20
+ If you want to change the port or the ip or any other configuration setting checkout the [configuration docs](./configuration.md).
21
+
22
+ ## Other Distros
23
+
24
+ The package is currently not available on other Linux distros. With contribution and support it can be made available on other distros as well 🙂.
25
+
26
+ # Install From Source
27
+
28
+ 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).
29
+
30
+ ## Stable
31
+
32
+ To get started with Websurfx, clone the repository, edit the config file which is located in the `websurfx` directory and install redis server by following the instructions located [here](https://redis.io/docs/getting-started/) and then build and run the websurfx server by running the following commands:
33
+
34
+ ```shell
35
+ git clone https://github.com/neon-mmd/websurfx.git
36
+ cd websurfx
37
+ cargo build -r
38
+ redis-server --port 8082 &
39
+ ./target/release/websurfx
40
+ ```
41
+
42
+ Once you have started the server, open your preferred web browser and navigate to http://127.0.0.1:8080/ to start using Websurfx.
43
+
44
+ If you want to change the port or the ip or any other configuration setting checkout the [configuration docs](./configuration.md).
45
+
46
+ ## Rolling/Edge/Unstable
47
+
48
+ If you want to use the rolling/edge branch, run the following commands instead:
49
+
50
+ ```shell
51
+ git clone https://github.com/neon-mmd/websurfx.git
52
+ cd websurfx
53
+ git checkout rolling
54
+ cargo build -r
55
+ redis-server --port 8082 &
56
+ ./target/release/websurfx
57
+ ```
58
+
59
+ Once you have started the server, open your preferred web browser and navigate to http://127.0.0.1:8080/ to start using Websurfx.
60
+
61
+ If you want to change the port or the ip or any other configuration setting checkout the [configuration docs](./configuration.md).
62
+
63
+ # Docker Deployment
64
+
65
+ Before you start, you will need [Docker](https://docs.docker.com/get-docker/) installed on your system first.
66
+
67
+ ## Stable
68
+
69
+ First clone the the repository by running the following command:
70
+
71
+ ```bash
72
+ git clone https://github.com/neon-mmd/websurfx.git
73
+ cd websurfx
74
+ ```
75
+
76
+ After that edit the config.lua file located under `websurfx` directory. In the config file you will specifically need to change to values which is `binding_ip_addr` and `redis_connection_url` which should make the config look something like this:
77
+
78
+ ```lua
79
+ -- Server
80
+ port = "8080" -- port on which server should be launched
81
+ binding_ip_addr = "0.0.0.0" --ip address on the which server should be launched.
82
+
83
+ -- Website
84
+ -- The different colorschemes provided are:
85
+ -- {{
86
+ -- catppuccin-mocha
87
+ -- dracula
88
+ -- monokai
89
+ -- nord
90
+ -- oceanic-next
91
+ -- solarized-dark
92
+ -- solarized-light
93
+ -- tomorrow-night
94
+ -- }}
95
+ colorscheme = "catppuccin-mocha" -- the colorscheme name which should be used for the website theme
96
+ theme = "simple" -- the theme name which should be used for the website
97
+
98
+ -- Caching
99
+ redis_connection_url = "redis://127.0.0.1:8082" -- redis connection url address on which the client should connect on.
100
+
101
+ production_use = false -- whether to use production mode or not (in other words this option should be used if it is to be used to host it on the server to provide a service to a large number of users)
102
+ -- if production_use is set to true
103
+ -- There will be a random delay before sending the request to the search engines, this is to prevent DDoSing the upstream search engines from a large number of simultaneous requests.
104
+ ```
105
+
106
+ After this run the following command to deploy the app:
107
+
108
+ ```bash
109
+ docker compose up -d --build
110
+ ```
111
+
112
+ This will take around 5-10 mins for first deployment, afterwards the docker build stages will be cached so it will be faster to be build from next time onwards. After the above step finishes launch your preferred browser and then navigate to `http://<ip_address_of_the_device>:<whatever_port_you_provided_in_the_config>`.
113
+
114
+ ## Unstable/Edge/Rolling
115
+
116
+ For the unstable/rolling/edge version, follow the same steps as above (as mentioned for the stable version) with an addition of one command which has to be performed after cloning and changing directory into the repository which makes the cloning step as follows:
117
+
118
+ ```bash
119
+ git clone https://github.com/neon-mmd/websurfx.git
120
+ cd websurfx
121
+ git checkout rolling
122
+ ```
123
+
124
+ [⬅️ Go back to Home](./README.md)
docs/introduction.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Introduction
2
+
3
+ A modern-looking, lightning-fast, privacy-respecting, secure [meta search engine](https://en.wikipedia.org/wiki/Metasearch_engine) (pronounced as websurface or web-surface /wɛbˈsɜːrfəs/.) written in Rust. It provides a fast and secure search experience while respecting user privacy.
4
+
5
+ # Motivation
6
+
7
+ Most meta search engines tend to be slow, lack high level of customization and missing many features and all of them like security as they are written in unsafe languages like python, javascript, etc which tend to open a wide variety of vulnerabilities which can also sometimes pose a threat to privacy as sometimes this can be exploited and can be used to leveraged to leak out sensitive information which is never good.
8
+
9
+ # Solution
10
+
11
+ Websurfx is a project which seeks to provide privacy, security, speed and all the features which the user wants.
12
+
13
+ [⬅️ Go back to Home](./README.md)
docs/theming.md ADDED
@@ -0,0 +1,365 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Colorschemes
2
+
3
+ ## Built-in
4
+
5
+ By default `websurfx` comes with 9 colorschemes to choose from which can be easily chosen using the config file. To how to change colorschemes please view the [Configuration](https://github.com/neon-mmd/websurfx/wiki/configuration) section of the wiki.
6
+
7
+ ## Custom
8
+
9
+ Creating coloschemes is as easy as it gets it requires the user to have a theme file name with the colorscheme in which every space should be replaced with a `-` (dash) and it should end with a `.css` file extension. After creating the file you need to add the following code with the `colors` you want:
10
+
11
+ ``` css
12
+ :root{
13
+ --bg: <background color>;
14
+ --fg: <foreground color (text color)>;
15
+ --1: <color 1>;
16
+ --2: <color 2>;
17
+ --3: <color 3>;
18
+ --4: <color 4>;
19
+ --5: <color 5>;
20
+ --6: <color 6>;
21
+ --7: <color 7>;
22
+ }
23
+ ```
24
+
25
+ > **Note**
26
+ > Please infer the theme file located under `public/static/themes` to better understand where each color is being used.
27
+
28
+ **Example of `catppuccin-mocha` colorscheme:**
29
+
30
+ ``` css
31
+ :root {
32
+ --bg: #1e1e2e;
33
+ --fg: #cdd6f4;
34
+ --1: #45475a;
35
+ --2: #f38ba8;
36
+ --3: #a6e3a1;
37
+ --4: #f9e2af;
38
+ --5: #89b4fa;
39
+ --6: #f5c2e7;
40
+ --7: #ffffff;
41
+ }
42
+ ```
43
+
44
+ # Themes
45
+
46
+ ## Built-in
47
+
48
+ By default `websurfx` comes with 1 theme to choose from which can be easily chosen using the config file. To how to change themes please view the [Configuration](https://github.com/neon-mmd/websurfx/wiki/configuration) section of the wiki.
49
+
50
+ ## Custom
51
+
52
+ To write custom color scheme, it requires the user to have some knowledge of `css stylesheets`.
53
+
54
+ **Here is an example of `simple theme` (which we provide by default with the app) which will give the user a better idea on how to create a custom theme using it as a template:**
55
+
56
+ ### General
57
+ ``` css
58
+ * {
59
+ padding: 0;
60
+ margin: 0;
61
+ box-sizing: border-box;
62
+ }
63
+
64
+ html {
65
+ font-size: 62.5%;
66
+ }
67
+
68
+ body {
69
+ display: flex;
70
+ flex-direction: column;
71
+ justify-content: space-between;
72
+ align-items: center;
73
+ height: 100vh;
74
+ background: var(--1);
75
+ }
76
+ ```
77
+ ### Styles for the index page
78
+ ``` css
79
+ .search-container {
80
+ display: flex;
81
+ flex-direction: column;
82
+ gap: 5rem;
83
+ justify-content: center;
84
+ align-items: center;
85
+ }
86
+
87
+ .search-container div {
88
+ display: flex;
89
+ }
90
+ ```
91
+ ### Styles for the search box and search button
92
+ ``` css
93
+ .search_bar {
94
+ display: flex;
95
+ }
96
+
97
+ .search_bar input {
98
+ padding: 1rem;
99
+ width: 50rem;
100
+ height: 3rem;
101
+ outline: none;
102
+ border: none;
103
+ box-shadow: rgba(0, 0, 0, 1);
104
+ background: var(--fg);
105
+ }
106
+
107
+ .search_bar button {
108
+ padding: 1rem;
109
+ border-radius: 0;
110
+ height: 3rem;
111
+ display: flex;
112
+ justify-content: center;
113
+ align-items: center;
114
+ outline: none;
115
+ border: none;
116
+ gap: 0;
117
+ background: var(--bg);
118
+ color: var(--3);
119
+ font-weight: 600;
120
+ letter-spacing: 0.1rem;
121
+ }
122
+
123
+ .search_bar button:active,
124
+ .search_bar button:hover {
125
+ filter: brightness(1.2);
126
+ }
127
+ ```
128
+ ### Styles for the footer and header
129
+ ``` css
130
+ header {
131
+ background: var(--bg);
132
+ width: 100%;
133
+ display: flex;
134
+ justify-content: right;
135
+ align-items: center;
136
+ padding: 1rem;
137
+ }
138
+
139
+ header ul,
140
+ footer ul {
141
+ list-style: none;
142
+ display: flex;
143
+ justify-content: space-around;
144
+ align-items: center;
145
+ font-size: 1.5rem;
146
+ gap: 2rem;
147
+ }
148
+
149
+ header ul li a,
150
+ footer ul li a,
151
+ header ul li a:visited,
152
+ footer ul li a:visited {
153
+ text-decoration: none;
154
+ color: var(--2);
155
+ text-transform: capitalize;
156
+ letter-spacing: 0.1rem;
157
+ }
158
+
159
+ header ul li a {
160
+ font-weight: 600;
161
+ }
162
+
163
+ header ul li a:hover,
164
+ footer ul li a:hover {
165
+ color: var(--5);
166
+ }
167
+
168
+ footer div span {
169
+ font-size: 1.5rem;
170
+ color: var(--4);
171
+ }
172
+
173
+ footer div {
174
+ display: flex;
175
+ gap: 1rem;
176
+ }
177
+
178
+ footer {
179
+ background: var(--bg);
180
+ width: 100%;
181
+ padding: 1rem;
182
+ display: flex;
183
+ flex-direction: column;
184
+ justify-content: center;
185
+ align-items: center;
186
+ }
187
+ ```
188
+ ### Styles for the search page
189
+ ``` css
190
+ .results {
191
+ width: 90%;
192
+ display: flex;
193
+ flex-direction: column;
194
+ justify-content: space-around;
195
+ }
196
+
197
+ .results .search_bar {
198
+ margin: 1rem 0;
199
+ }
200
+
201
+ .results_aggregated {
202
+ display: flex;
203
+ flex-direction: column;
204
+ justify-content: space-between;
205
+ margin: 2rem 0;
206
+ }
207
+
208
+ .results_aggregated .result {
209
+ display: flex;
210
+ flex-direction: column;
211
+ margin-top: 1rem;
212
+ }
213
+
214
+ .results_aggregated .result h1 a {
215
+ font-size: 1.5rem;
216
+ color: var(--2);
217
+ text-decoration: none;
218
+ letter-spacing: 0.1rem;
219
+ }
220
+
221
+ .results_aggregated .result h1 a:hover {
222
+ color: var(--5);
223
+ }
224
+
225
+ .results_aggregated .result h1 a:visited {
226
+ color: var(--bg);
227
+ }
228
+
229
+ .results_aggregated .result small {
230
+ color: var(--3);
231
+ font-size: 1.1rem;
232
+ word-wrap: break-word;
233
+ line-break: anywhere;
234
+ }
235
+
236
+ .results_aggregated .result p {
237
+ color: var(--fg);
238
+ font-size: 1.2rem;
239
+ margin-top: 0.3rem;
240
+ word-wrap: break-word;
241
+ line-break: anywhere;
242
+ }
243
+
244
+ .results_aggregated .result .upstream_engines {
245
+ text-align: right;
246
+ font-size: 1.2rem;
247
+ padding: 1rem;
248
+ color: var(--5);
249
+ }
250
+ ```
251
+
252
+ ### Styles for the 404 page
253
+
254
+ ``` css
255
+ .error_container {
256
+ display: flex;
257
+ justify-content: center;
258
+ align-items: center;
259
+ width: 100%;
260
+ gap: 5rem;
261
+ }
262
+
263
+ .error_container img {
264
+ width: 30%;
265
+ }
266
+
267
+ .error_content {
268
+ display: flex;
269
+ flex-direction: column;
270
+ justify-content: center;
271
+ gap: 1rem;
272
+ }
273
+
274
+ .error_content h1,
275
+ .error_content h2 {
276
+ letter-spacing: 0.1rem;
277
+ }
278
+
279
+ .error_content h1 {
280
+ font-size: 3rem;
281
+ }
282
+
283
+ .error_content h2 {
284
+ font-size: 2rem;
285
+ }
286
+
287
+ .error_content p {
288
+ font-size: 1.2rem;
289
+ }
290
+
291
+ .error_content p a,
292
+ .error_content p a:visited {
293
+ color: var(--2);
294
+ text-decoration: none;
295
+ }
296
+
297
+ .error_content p a:hover {
298
+ color: var(--5);
299
+ }
300
+ ```
301
+ ### Styles for the previous and next button on the search page
302
+ ``` css
303
+ .page_navigation {
304
+ padding: 0 0 2rem 0;
305
+ display: flex;
306
+ justify-content: space-between;
307
+ align-items: center;
308
+ }
309
+
310
+ .page_navigation button {
311
+ background: var(--bg);
312
+ color: var(--fg);
313
+ padding: 1rem;
314
+ border-radius: 0.5rem;
315
+ outline: none;
316
+ border: none;
317
+ }
318
+
319
+ .page_navigation button:active {
320
+ filter: brightness(1.2);
321
+ }
322
+ ```
323
+
324
+ ### Styles for the about page
325
+
326
+ This part is only available right now in the **rolling/edge/unstable** version
327
+
328
+ ```css
329
+ .about-container article{
330
+ font-size: 1.5rem;
331
+ color:var(--fg);
332
+ padding-bottom: 10px;
333
+ }
334
+
335
+ .about-container article h1{
336
+ color: var(--2);
337
+ font-size: 2.8rem;
338
+ }
339
+
340
+ .about-container article div{
341
+ padding-bottom: 15px;
342
+ }
343
+
344
+ .about-container a{
345
+ color:var(--3);
346
+ }
347
+
348
+ .about-container article h2{
349
+ color: var(--3);
350
+ font-size: 1.8rem;
351
+ padding-bottom: 10px;
352
+ }
353
+
354
+ .about-container p{
355
+ color:var(--fg);
356
+ font-size: 1.6rem;
357
+ padding-bottom: 10px;
358
+ }
359
+
360
+ .about-container h3{
361
+ font-size: 1.5rem;
362
+ }
363
+ ```
364
+
365
+ [⬅️ Go back to Home](./README.md)
images/main_page.png CHANGED
images/websurfx_docs_image.png ADDED
images/websurfx_logo.png ADDED