From 0b196ed3f2b40d19d401abe293a9fda972169292 Mon Sep 17 00:00:00 2001 From: neon_arch Date: Mon, 15 May 2023 09:34:39 +0000 Subject: [PATCH 01/21] ci: fix automatic releases ci using conventional commits --- .github/workflows/releases.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index e46c5aa..8e1e46b 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -31,11 +31,15 @@ jobs: run: git fetch --all && git checkout --track origin/release-from-${{ github.sha }} # update app config with version - - name: get-npm-version - id: package-version - uses: martinbeentjes/npm-get-version-action@master - - name: update app config - run: sed -i 's/0.0.0/${{ steps.package-version.outputs.current-version}}/g' config/app.json + - name: Get current rust app version from its Cargo.toml. + id: foo + uses: dante-signal31/rust-app-version@v1.2.0 + with: + cargo_toml_folder: rust_app_folder/ + + - name: Use the version to update the Cargo.toml version. + shell: bash + run: sed -i "3s/version = \"[0-9]*.[0-9]*.[0-9]*\"/version = \"${{ steps.foo.outputs.app_version }}\"/g" Cargo.toml # create release info and push it upstream - name: conventional Changelog Action From 22638b88ca57497b7bfe5495cf5fabfb0e6d126e Mon Sep 17 00:00:00 2001 From: neon_arch Date: Tue, 16 May 2023 19:30:25 +0300 Subject: [PATCH 02/21] chore: restructure and rewrite contributing.md to make it more clear --- CONTRIBUTING.md | 68 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 45 insertions(+), 23 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 040801e..e7cc141 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,34 +1,56 @@ -# Things to Consider Before Contributing +# What You Can Contribute To? -## Knowledge Required +## Documentation/Wiki -- Rust basics -- Actix-web crate basics -- Tokio crate and async/await -- Reqwest crate basics -- Serde and serde~json~ crate basics -- fake~useragent~ crate basics -- pyo3/hlua/rlua crates basics +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. + +## Readme + +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. + +## Source Code + +You should know atleast one of the things below to start contributing: + +- Rust basics +- Actix-web crate basics +- Tokio crate and async/await +- Reqwest crate basics +- Serde and serde_json crate basics +- Scraper crate basics +- Frontend (handlebars, css and js). +- Fake useragent crate basics +- pyo3/hlua/rlua crates basics + +## Report a Bug/Issue + +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. + +## Spread the word + +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. ## Guidelines -- Please be patient. +- Please be patient. +- Treat everyone with respect -- \"give respect and take respect.\" +- Document your code properly with Rust coding conventions in mind. +- Provide a brief description of the changes you made in the pull request. +- Provide an appropriate header for the pull request. -- Treat everyone with respect -- \"give respect and take respect.\" +## Join the discussion -- Document your code properly with Rust coding conventions in mind. +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. -- Provide a brief description of the changes you made in the pull - request. +# Where To Contribute? -- Provide an appropriate header for the pull request. +## For Source Code Contributions + +The _rolling branch_ is where we intend all source code contributions should go. - **NOTE:** The rolling branch is where all contributions should go. - In other words, it is the working branch for this project. +## For Readme Contributions -We appreciate any contributions 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\](). +The _master branch_ is where we intend all source code contributions should go. + + +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. From 30102cc6f9e43a993f1763902bc7c1c70e3a5861 Mon Sep 17 00:00:00 2001 From: neon_arch Date: Tue, 16 May 2023 16:37:33 +0000 Subject: [PATCH 03/21] ci: remove force flag to not clear existing tags/labels --- .github/workflows/labels.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index f90801a..64ae655 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -19,4 +19,3 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} owner-name: ${{ github.repository_owner }} repository-name: ${{ github.event.repository.name }} - force: true # optional to clear existing labels, default to true From 96f93e8074d57f9cd1487debd36a74bb33529408 Mon Sep 17 00:00:00 2001 From: neon_arch Date: Tue, 16 May 2023 19:42:10 +0300 Subject: [PATCH 04/21] chore: add github actions --- CONTRIBUTING.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e7cc141..26dc8dc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,23 +1,27 @@ # What You Can Contribute To? -## Documentation/Wiki +## Documentation/Wiki 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. -## Readme +## Readme 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. -## Source Code +## Help Improve Github Actions + +Know how to fix or improve a github action?. Consider Submitting a Pull request to help make automation and testing better. + +## Source Code + +You should know atleast one of the things below to start contributing: -You should know atleast one of the things below to start contributing: - - Rust basics - Actix-web crate basics - Tokio crate and async/await - Reqwest crate basics - Serde and serde_json crate basics -- Scraper crate basics +- Scraper crate basics - Frontend (handlebars, css and js). - Fake useragent crate basics - pyo3/hlua/rlua crates basics @@ -45,12 +49,11 @@ We have a [Discord](https://discord.gg/SWnda7Mw5u) channel, feel free to join an # Where To Contribute? ## For Source Code Contributions - + The _rolling branch_ is where we intend all source code contributions should go. ## For Readme Contributions The _master branch_ is where we intend all source code contributions should go. - 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. From 5d6f50a109b3a536e96063d0786c87bd7e3432af Mon Sep 17 00:00:00 2001 From: neon_arch Date: Wed, 17 May 2023 16:31:39 +0300 Subject: [PATCH 05/21] chore: add how to fork section and add some images to explain it --- CONTRIBUTING.md | 11 +++++++++++ images/create_fork_button.png | Bin 0 -> 64982 bytes images/fork_button.png | Bin 0 -> 44599 bytes images/fork_options_page.png | Bin 0 -> 64778 bytes 4 files changed, 11 insertions(+) create mode 100644 images/create_fork_button.png create mode 100644 images/fork_button.png create mode 100644 images/fork_options_page.png diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 26dc8dc..d630e2a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -56,4 +56,15 @@ The _rolling branch_ is where we intend all source code contributions should go. The _master branch_ is where we intend all source code contributions should go. +# How To Fork + +![image](./images/fork_button.png) + +![image](./images/fork_options_page.png) + +Please make sure to leave the `Copy the master branch only` option ticked off. + +![image](./images/create_fork_button.png) + + 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. diff --git a/images/create_fork_button.png b/images/create_fork_button.png new file mode 100644 index 0000000000000000000000000000000000000000..c060fd484b2ea5fd619d0c0423ac9145820c9864 GIT binary patch literal 64982 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%0D%AV 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%0A(a`yRT8j~QO_HAUZabk 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 z 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 t5IF{%{%6_w|5t Date: Wed, 17 May 2023 13:37:22 +0000 Subject: [PATCH 06/21] ci: set the option to clear existing tags/labels to false --- .github/workflows/labels.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 64ae655..c8adbf7 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -19,3 +19,4 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} owner-name: ${{ github.repository_owner }} repository-name: ${{ github.event.repository.name }} + force: false From 612382b9b5df990a3256f20c40c4d21291995702 Mon Sep 17 00:00:00 2001 From: neon_arch Date: Wed, 17 May 2023 16:57:02 +0300 Subject: [PATCH 07/21] ci: add github ci to thanks first time contributors --- .github/workflows/hello.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/workflows/hello.yml diff --git a/.github/workflows/hello.yml b/.github/workflows/hello.yml new file mode 100644 index 0000000..9d3018e --- /dev/null +++ b/.github/workflows/hello.yml @@ -0,0 +1,18 @@ +name: Welcome first time contributors + +on: + pull_request_target: + types: + - opened + +jobs: + welcome: + name: Welcome + runs-on: ubuntu-latest + steps: + - uses: actions/first-interaction@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + pr-message: |- + Congrats on making your first Pull Request and thanks for taking the time to improve Websurfx! ❤️! + Say hello by joining the conversation in our [Discord](https://discord.gg/SWnda7Mw5u) From 6a4935af40a51c7f198f79f38572351d51ebe51e Mon Sep 17 00:00:00 2001 From: MD AL AMIN TALUKDAR <129589283+alamin655@users.noreply.github.com> Date: Fri, 19 May 2023 19:38:45 +0530 Subject: [PATCH 08/21] Update README.md --- README.md | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index feda1ae..32de379 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

Websurfx

@@ -84,7 +84,7 @@ - **Getting Started** - [🔭 Preview](#preview-) - - [🌈 Features](#features-) + - [🚀 Features](#features-) - [🛠️ Installation and Testing](#installation-and-testing-) - [🔧 Configuration](#configuration-) - **Feature Overview** @@ -120,13 +120,13 @@ **[⬆️ Back to Top](#websurfx)** -# Features 🌈 +# Features 🚀 -- 🎨 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 -- 🔐 Fast, private and secure +- 🎨 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 +- 🔐 Fast, private, and secure - 🆓 100% free and open source -- 🧹 Ad free and clean results -- 🌈 and lots more... +- 💨 Ad-free and clean results +- 🌟 and lots more... **[⬆️ Back to Top](#websurfx)** @@ -134,13 +134,13 @@ > For full setup instructions, see: [**Installation**](https://github.com/neon-mmd/websurfx/wiki/installation) -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: +To get started with Websurfx, clone the repository, edit the config file, which is located in the `websurfx`{.verbatim} 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 cargo build -redis-server -p 8082 & +redis-server --port 8082 & ./target/debug/websurfx ``` @@ -163,20 +163,20 @@ Websurfx is configured through the config.lua file, located at `websurfx/config. > For full theming and customization instructions, see: [**Theming**](https://github.com/neon-mmd/websurfx/wiki/theming) -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. +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. **[⬆️ Back to Top](#websurfx)** # Multi-Language Support 🌍 > **Note** -> 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. +> 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. **[⬆️ Back to Top](#websurfx)** # System Requirements 📊 -At present, we only support x86_64 architecture systems but will love to have contributions to extend to other architectures as well. +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](#websurfx)** @@ -184,21 +184,21 @@ At present, we only support x86_64 architecture systems but will love to have co ## Why Websurfx? -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. +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. 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. ## Why AGPLv3? -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. +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. ## Why Rust? -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. +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. **[⬆️ Back to Top](#websurfx)** # 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.org](CONTRIBUTING.org) file for guidelines and rules for making contributions. +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](#websurfx)** @@ -206,14 +206,14 @@ We are looking for more willing contributors to help grow this project.For more > For full details and other ways you can help out, see: [**Contributing**]() -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. +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. Several areas that we need a bit of help with at the moment are: -- **Better and more colorchemes** - Help fix colorchemes and add other famous colorchemes. -- **Improve evasion code for bot detection** - Help improve code related to evade ip blocking and emulate human behaviours located in everyone engine file. +- **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 something else. +- **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 something else. - Star Websurfx on GitHub. **[⬆️ Back to Top](#websurfx)** @@ -221,7 +221,7 @@ Several areas that we need a bit of help with at the moment are: # Documentation 📘 > **Note** -> We are willing to have any contribution regarding [documentation](https://github.com/neon-mmd/websurfx/wiki) as this helps everyone using this project. +> We welcome any contributions to the [documentation](https://github.com/neon-mmd/websurfx/wiki) as this will benefit everyone who uses this project. **[⬆️ Back to Top](#websurfx)** @@ -233,7 +233,7 @@ Several areas that we need a bit of help with at the moment are: # Contributing 🙋 -Contributions are welcome from anyone. It doesn\'t matter who you are; you can still contribute to the project in your way. +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? @@ -241,13 +241,13 @@ Check out this [video](https://youtu.be/FccdqCucVSI) by Mr. Nick on how to contr ## Developer -If you are a developer, have a look at the [CONTRIBUTING.org](CONTRIBUTING.org) document for more information. +If you are a developer, have a look at the [CONTRIBUTING.org](CONTRIBUTING.md) document for more information. **[⬆️ Back to Top](#websurfx)** # License 📜 -Websurfx is available under the [AGPLv3](LICENSE) license. +Websurfx is licensed under the [AGPLv3](LICENSE) license. **[⬆️ Back to Top](#websurfx)** From 1b04bf136d3c02d2208b8c83d07cfa44e86a5599 Mon Sep 17 00:00:00 2001 From: neon_arch Date: Fri, 19 May 2023 16:39:36 +0000 Subject: [PATCH 09/21] add gitpod cloud development shield/badge --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 32de379..0a3f688 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,12 @@ src="https://img.shields.io/github/contributors-anon/neon-mmd/websurfx?style=flat-square" /> + + Gitpod +

From 27de45a1f9d8e22e36e0f4526094150b1bbf03c5 Mon Sep 17 00:00:00 2001 From: neon_arch Date: Sun, 21 May 2023 20:13:02 +0300 Subject: [PATCH 10/21] chore: add a logo --- README.md | 4 +++- images/websurfx_logo.png | Bin 0 -> 8264 bytes 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 images/websurfx_logo.png diff --git a/README.md b/README.md index 0a3f688..47a30fe 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -

Websurfx

+

+ websurfx logo +

Readme | Discord | diff --git a/images/websurfx_logo.png b/images/websurfx_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9449e33ff4400ee97da4186599ead26e0ead74a7 GIT binary patch literal 8264 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 Date: Wed, 24 May 2023 11:25:25 +0300 Subject: [PATCH 11/21] docs: move docs from wiki to docs folder & add an image for docs --- docs/README.md | 17 ++ docs/configuration.md | 42 +++++ docs/faq.md | 15 ++ docs/installation.md | 85 +++++++++ docs/introduction.md | 13 ++ docs/theming.md | 324 +++++++++++++++++++++++++++++++++ images/websurfx_docs_image.png | Bin 0 -> 5533 bytes 7 files changed, 496 insertions(+) create mode 100644 docs/README.md create mode 100644 docs/configuration.md create mode 100644 docs/faq.md create mode 100644 docs/installation.md create mode 100644 docs/introduction.md create mode 100644 docs/theming.md create mode 100644 images/websurfx_docs_image.png diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..02f304b --- /dev/null +++ b/docs/README.md @@ -0,0 +1,17 @@ +

Websurfx Docs

+ +# General + +- [Introduction](./introduction.md) +- [**FAQ**](./faq.md) + +# Users + +- [Installation](./installation.md) +- [Configuration](./configuration.md) +- [Theming](./theming.md) + +# Developers + +- [**Contribute**](https://github.com/neon-mmd/websurfx/blob/master/CONTRIBUTING.md) +- [**Coding style**](https://rust-lang.github.io/api-guidelines/naming.html) diff --git a/docs/configuration.md b/docs/configuration.md new file mode 100644 index 0000000..be0325a --- /dev/null +++ b/docs/configuration.md @@ -0,0 +1,42 @@ +# Configuration + +Everything in websurfx can be configured through the config file located at `websurfx/config.lua`. + +Some of the configuration options provided in the file are stated below. These are subdivided into three categories: + +- Server +- Website +- Cache + +## Server + +- **port:** Port number on which server should be launched. +- **binding_ip_addr:** IP address on the which server should be launched. + +## Website + +- **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). + +> By Default we provide 9 colorschemes to choose from these are: +> +> 1. catppuccin-mocha +> 2. dracula +> 3. monokai +> 4. nord +> 5. oceanic-next +> 6. solarized-dark +> 7. solarized-light +> 8. tomorrow-night +> 9. gruvbox-dark + +- **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). + +> By Default we provide 1 theme to choose from these are: +> +> 1. simple + +## Cache + +- **redis_connection_url:** Redis connection url address on which the client should connect on. + +[⬅️ Go back to Home](https://github.com/neon-mmd/websurfx/wiki). diff --git a/docs/faq.md b/docs/faq.md new file mode 100644 index 0000000..1805487 --- /dev/null +++ b/docs/faq.md @@ -0,0 +1,15 @@ +# General Questions + +## Why Websurfx? + +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. + +## Why AGPLv3? + +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. + +## Why Rust? + +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. + +[⬅️ Go back to Home](https://github.com/neon-mmd/websurfx/wiki). diff --git a/docs/installation.md b/docs/installation.md new file mode 100644 index 0000000..c9aa6f1 --- /dev/null +++ b/docs/installation.md @@ -0,0 +1,85 @@ +# Stable + +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 run the websurfx server and redis server using the following commands: + +```shell +git clone https://github.com/neon-mmd/websurfx.git +cd websurfx +cargo build +redis-server --port 8082 & +./target/debug/websurfx +``` + +# Rolling/Edge/Unstable + +If you want to use the rolling/edge branch, run the following commands instead: + +```shell +git clone https://github.com/neon-mmd/websurfx.git +cd websurfx +git checkout rolling +cargo build +redis-server --port 8082 & +./target/debug/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. + +# Docker Deployment + +Before you start, you will need [Docker](https://docs.docker.com/get-docker/) installed on your system first. + +## Stable + +First clone the the repository by running the following command: + +```bash +git clone https://github.com/neon-mmd/websurfx.git +cd websurfx +``` + +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: + +```lua +-- Server +port = "8080" -- port on which server should be launched +binding_ip_addr = "0.0.0.0" --ip address on the which server should be launched. + +-- Website +-- The different colorschemes provided are: +-- {{ +-- catppuccin-mocha +-- dracula +-- monokai +-- nord +-- oceanic-next +-- solarized-dark +-- solarized-light +-- tomorrow-night +-- }} +colorscheme = "catppuccin-mocha" -- the colorscheme name which should be used for the website theme +theme = "simple" -- the theme name which should be used for the website + +-- Caching +redis_connection_url = "redis://redis:6379" -- redis connection url address on which the client should connect on. +``` + +After this run the following command to deploy the app: + +```bash +docker compose up -d --build +``` + +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://:`. + +## Unstable/Edge/Rolling + +For the unstable/rolling/edge version, follow the same steps as above with an addition of one command for cloning the repository which makes the cloning step as follows: + +```bash +git clone https://github.com/neon-mmd/websurfx.git +cd websurfx +git checkout rolling +``` + +[⬅️ Go back to Home](https://github.com/neon-mmd/websurfx/wiki). diff --git a/docs/introduction.md b/docs/introduction.md new file mode 100644 index 0000000..476f509 --- /dev/null +++ b/docs/introduction.md @@ -0,0 +1,13 @@ +# Introduction + +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. + +# Motivation + +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. + +# Solution + +Websurfx is a project which seeks to provide privacy, security, speed and all the features which the user wants. + +[⬅️ Go back to Home](https://github.com/neon-mmd/websurfx/wiki). diff --git a/docs/theming.md b/docs/theming.md new file mode 100644 index 0000000..95ff7ff --- /dev/null +++ b/docs/theming.md @@ -0,0 +1,324 @@ +# Colorschemes + +## Built-in + +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. + +## Custom + +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: + +``` css +:root{ + --bg: ; + --fg: ; + --1: ; + --2: ; + --3: ; + --4: ; + --5: ; + --6: ; + --7: ; +} +``` + +> **Note** +> Please infer the theme file located under `public/static/themes` to better understand where each color is being used. + +**Example of `catppuccin-mocha` colorscheme:** + +``` css +:root { + --bg: #1e1e2e; + --fg: #cdd6f4; + --1: #45475a; + --2: #f38ba8; + --3: #a6e3a1; + --4: #f9e2af; + --5: #89b4fa; + --6: #f5c2e7; + --7: #ffffff; +} +``` + +# Themes + +## Built-in + +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. + +## Custom + +To write custom color scheme, it requires the user to have some knowledge of `css stylesheets`. + +**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:** + +### General +``` css +* { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +html { + font-size: 62.5%; +} + +body { + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + height: 100vh; + background: var(--1); +} +``` +### Styles for the index page +``` css +.search-container { + display: flex; + flex-direction: column; + gap: 5rem; + justify-content: center; + align-items: center; +} + +.search-container div { + display: flex; +} +``` +### Styles for the search box and search button +``` css +.search_bar { + display: flex; +} + +.search_bar input { + padding: 1rem; + width: 50rem; + height: 3rem; + outline: none; + border: none; + box-shadow: rgba(0, 0, 0, 1); + background: var(--fg); +} + +.search_bar button { + padding: 1rem; + border-radius: 0; + height: 3rem; + display: flex; + justify-content: center; + align-items: center; + outline: none; + border: none; + gap: 0; + background: var(--bg); + color: var(--3); + font-weight: 600; + letter-spacing: 0.1rem; +} + +.search_bar button:active, +.search_bar button:hover { + filter: brightness(1.2); +} +``` +### Styles for the footer and header +``` css +header { + background: var(--bg); + width: 100%; + display: flex; + justify-content: right; + align-items: center; + padding: 1rem; +} + +header ul, +footer ul { + list-style: none; + display: flex; + justify-content: space-around; + align-items: center; + font-size: 1.5rem; + gap: 2rem; +} + +header ul li a, +footer ul li a, +header ul li a:visited, +footer ul li a:visited { + text-decoration: none; + color: var(--2); + text-transform: capitalize; + letter-spacing: 0.1rem; +} + +header ul li a { + font-weight: 600; +} + +header ul li a:hover, +footer ul li a:hover { + color: var(--5); +} + +footer div span { + font-size: 1.5rem; + color: var(--4); +} + +footer div { + display: flex; + gap: 1rem; +} + +footer { + background: var(--bg); + width: 100%; + padding: 1rem; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} +``` +### Styles for the search page +``` css +.results { + width: 90%; + display: flex; + flex-direction: column; + justify-content: space-around; +} + +.results .search_bar { + margin: 1rem 0; +} + +.results_aggregated { + display: flex; + flex-direction: column; + justify-content: space-between; + margin: 2rem 0; +} + +.results_aggregated .result { + display: flex; + flex-direction: column; + margin-top: 1rem; +} + +.results_aggregated .result h1 a { + font-size: 1.5rem; + color: var(--2); + text-decoration: none; + letter-spacing: 0.1rem; +} + +.results_aggregated .result h1 a:hover { + color: var(--5); +} + +.results_aggregated .result h1 a:visited { + color: var(--bg); +} + +.results_aggregated .result small { + color: var(--3); + font-size: 1.1rem; + word-wrap: break-word; + line-break: anywhere; +} + +.results_aggregated .result p { + color: var(--fg); + font-size: 1.2rem; + margin-top: 0.3rem; + word-wrap: break-word; + line-break: anywhere; +} + +.results_aggregated .result .upstream_engines { + text-align: right; + font-size: 1.2rem; + padding: 1rem; + color: var(--5); +} +``` + +### Styles for the 404 page + +``` css +.error_container { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + gap: 5rem; +} + +.error_container img { + width: 30%; +} + +.error_content { + display: flex; + flex-direction: column; + justify-content: center; + gap: 1rem; +} + +.error_content h1, +.error_content h2 { + letter-spacing: 0.1rem; +} + +.error_content h1 { + font-size: 3rem; +} + +.error_content h2 { + font-size: 2rem; +} + +.error_content p { + font-size: 1.2rem; +} + +.error_content p a, +.error_content p a:visited { + color: var(--2); + text-decoration: none; +} + +.error_content p a:hover { + color: var(--5); +} +``` +### Styles for the previous and next button on the search page +``` css +.page_navigation { + padding: 0 0 2rem 0; + display: flex; + justify-content: space-between; + align-items: center; +} + +.page_navigation button { + background: var(--bg); + color: var(--fg); + padding: 1rem; + border-radius: 0.5rem; + outline: none; + border: none; +} + +.page_navigation button:active { + filter: brightness(1.2); +} +``` + +[⬅️ Go back to Home](https://github.com/neon-mmd/websurfx/wiki). diff --git a/images/websurfx_docs_image.png b/images/websurfx_docs_image.png new file mode 100644 index 0000000000000000000000000000000000000000..386dedf6a137ac4130921b28986e672046fb1b39 GIT binary patch literal 5533 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 IFJ%$-Km4xXQ2+n{ literal 0 HcmV?d00001 From 0187d1f0fa7384ead3077dc1c251bda1a2f9609c Mon Sep 17 00:00:00 2001 From: Aadit Palande Date: Thu, 25 May 2023 14:44:56 +0000 Subject: [PATCH 12/21] Solves #56 Updated the Why Websurf section under FAQ section --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 47a30fe..5e3dd4e 100644 --- a/README.md +++ b/README.md @@ -192,7 +192,7 @@ At present, we only support x86_64 architecture systems, but we would love to ha ## Why Websurfx? -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. 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. +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). ## Why AGPLv3? From 287797093505f588638cb1622ee06e04c7e3d345 Mon Sep 17 00:00:00 2001 From: Aadit Palande Date: Thu, 25 May 2023 20:31:27 +0530 Subject: [PATCH 13/21] Update README.md Co-authored-by: neon_arch --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5e3dd4e..1ea56f7 100644 --- a/README.md +++ b/README.md @@ -192,7 +192,7 @@ At present, we only support x86_64 architecture systems, but we would love to ha ## Why Websurfx? -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). +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). ## Why AGPLv3? From de3d88c476c8b1d883749d850cdbfb468d6ad540 Mon Sep 17 00:00:00 2001 From: sathiyaIbe Date: Fri, 26 May 2023 11:38:53 +0530 Subject: [PATCH 14/21] fix issue: #56 removed the meta seach engine link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1ea56f7..5e3dd4e 100644 --- a/README.md +++ b/README.md @@ -192,7 +192,7 @@ At present, we only support x86_64 architecture systems, but we would love to ha ## Why Websurfx? -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). +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). ## Why AGPLv3? From eee06b92d7fd4e6accd53122361de7a94b73adc3 Mon Sep 17 00:00:00 2001 From: neon_arch Date: Fri, 26 May 2023 12:50:50 +0300 Subject: [PATCH 15/21] docs: revise and improve the documentation --- docs/configuration.md | 14 ++++++++++-- docs/faq.md | 4 ++-- docs/installation.md | 53 ++++++++++++++++++++++++++++++++++++------- docs/introduction.md | 2 +- docs/theming.md | 43 ++++++++++++++++++++++++++++++++++- 5 files changed, 102 insertions(+), 14 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index be0325a..bb10ba6 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1,6 +1,15 @@ # Configuration -Everything in websurfx can be configured through the config file located at `websurfx/config.lua`. +## Installed From Source + +If you have built `websurfx` from source then the configuration file will be located under project directory (codebase) at `websurfx/` + +> **Note** +> 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_. + +## Installed From Package + +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. Some of the configuration options provided in the file are stated below. These are subdivided into three categories: @@ -12,6 +21,7 @@ Some of the configuration options provided in the file are stated below. These a - **port:** Port number on which server should be launched. - **binding_ip_addr:** IP address on the which server should be launched. +- **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**. ## Website @@ -39,4 +49,4 @@ Some of the configuration options provided in the file are stated below. These a - **redis_connection_url:** Redis connection url address on which the client should connect on. -[⬅️ Go back to Home](https://github.com/neon-mmd/websurfx/wiki). +[⬅️ Go back to Home](./README.md) diff --git a/docs/faq.md b/docs/faq.md index 1805487..cbd3582 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -2,7 +2,7 @@ ## Why Websurfx? -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. +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). ## Why AGPLv3? @@ -12,4 +12,4 @@ Websurfx is released under the AGPLv3 license to ensure that the source code rem 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. -[⬅️ Go back to Home](https://github.com/neon-mmd/websurfx/wiki). +[⬅️ Go back to Home](./README.md) diff --git a/docs/installation.md b/docs/installation.md index c9aa6f1..050be70 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -1,16 +1,47 @@ -# Stable +# Install From Package -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 run the websurfx server and redis server using the following commands: +## Arch Linux + +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)): + +```bash +paru -S websurfx-edge-git +``` + +After installing it you can run the websurfx server by running the following commands: + +``` bash +redis-server --port 8082 & +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. + +If you want to change the port or the ip or any other configuration setting checkout the [configuration docs](./configuration.md). + +## Other Distros + +The package is currently not available on other Linux distros. With contribution and support it can be made available on other distros as well 🙂. + +# Install From Source + +## Stable + +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: ```shell git clone https://github.com/neon-mmd/websurfx.git cd websurfx -cargo build +cargo build -r redis-server --port 8082 & ./target/debug/websurfx ``` -# Rolling/Edge/Unstable +Once you have started the server, open your preferred web browser and navigate to http://127.0.0.1:8080/ to start using Websurfx. + +If you want to change the port or the ip or any other configuration setting checkout the [configuration docs](./configuration.md). + +## Rolling/Edge/Unstable If you want to use the rolling/edge branch, run the following commands instead: @@ -18,13 +49,15 @@ If you want to use the rolling/edge branch, run the following commands instead: git clone https://github.com/neon-mmd/websurfx.git cd websurfx git checkout rolling -cargo build +cargo build -r redis-server --port 8082 & ./target/debug/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. +If you want to change the port or the ip or any other configuration setting checkout the [configuration docs](./configuration.md). + # Docker Deployment Before you start, you will need [Docker](https://docs.docker.com/get-docker/) installed on your system first. @@ -61,7 +94,11 @@ colorscheme = "catppuccin-mocha" -- the colorscheme name which should be used fo theme = "simple" -- the theme name which should be used for the website -- Caching -redis_connection_url = "redis://redis:6379" -- redis connection url address on which the client should connect on. +redis_connection_url = "redis://127.0.0.1:8082" -- redis connection url address on which the client should connect on. + +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) +-- 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. ``` After this run the following command to deploy the app: @@ -74,7 +111,7 @@ This will take around 5-10 mins for first deployment, afterwards the docker buil ## Unstable/Edge/Rolling -For the unstable/rolling/edge version, follow the same steps as above with an addition of one command for cloning the repository which makes the cloning step as follows: +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: ```bash git clone https://github.com/neon-mmd/websurfx.git @@ -82,4 +119,4 @@ cd websurfx git checkout rolling ``` -[⬅️ Go back to Home](https://github.com/neon-mmd/websurfx/wiki). +[⬅️ Go back to Home](./README.md) diff --git a/docs/introduction.md b/docs/introduction.md index 476f509..7b540fb 100644 --- a/docs/introduction.md +++ b/docs/introduction.md @@ -10,4 +10,4 @@ Most meta search engines tend to be slow, lack high level of customization and m Websurfx is a project which seeks to provide privacy, security, speed and all the features which the user wants. -[⬅️ Go back to Home](https://github.com/neon-mmd/websurfx/wiki). +[⬅️ Go back to Home](./README.md) diff --git a/docs/theming.md b/docs/theming.md index 95ff7ff..49f3f22 100644 --- a/docs/theming.md +++ b/docs/theming.md @@ -321,4 +321,45 @@ footer { } ``` -[⬅️ Go back to Home](https://github.com/neon-mmd/websurfx/wiki). +### Styles for the about page + +This part is only available right now in the **rolling/edge/unstable** version + +```css +.about-container article{ + font-size: 1.5rem; + color:var(--fg); + padding-bottom: 10px; + } + +.about-container article h1{ + color: var(--2); + font-size: 2.8rem; + } + +.about-container article div{ + padding-bottom: 15px; + } + +.about-container a{ + color:var(--3); +} + +.about-container article h2{ + color: var(--3); + font-size: 1.8rem; + padding-bottom: 10px; +} + +.about-container p{ + color:var(--fg); + font-size: 1.6rem; + padding-bottom: 10px; +} + +.about-container h3{ + font-size: 1.5rem; +} +``` + +[⬅️ Go back to Home](./README.md) From 34ae87e4a43c6849cd986f94b0498166d7fbec4f Mon Sep 17 00:00:00 2001 From: neon_arch Date: Fri, 26 May 2023 13:15:39 +0300 Subject: [PATCH 16/21] chore: revise and improve the readme --- README.md | 82 +++++++++++-------------------------------- images/main_page.png | Bin 36381 -> 37287 bytes 2 files changed, 20 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index 5e3dd4e..a7483a6 100644 --- a/README.md +++ b/README.md @@ -5,68 +5,26 @@ Readme | Discord | GitHub | - Documentation + Documentation

- - GitHub - - - GitHub Repo stars - - - GitHub forks - GitHub code size in bytes - - GitHub issues - - - GitHub pull requests - GitHub Workflow Status - - GitHub release (latest by date including pre-releases) - Maintenance - - GitHub contributors - Gitpod -**[⬆️ Back to Top](#websurfx)** +**[⬆️ Back to Top](#--)** # Features 🚀 @@ -136,11 +94,11 @@ - 💨 Ad-free and clean results - 🌟 and lots more... -**[⬆️ Back to Top](#websurfx)** +**[⬆️ Back to Top](#--)** # Installation and Testing 🛠️ -> For full setup instructions, see: [**Installation**](https://github.com/neon-mmd/websurfx/wiki/installation) +> For full setup instructions, see: [**Installation**](./docs/installation.md) To get started with Websurfx, clone the repository, edit the config file, which is located in the `websurfx`{.verbatim} 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: @@ -157,36 +115,36 @@ Once you have started the server, open your preferred web browser and navigate t > **Warning** > Please be aware that the project is still in the testing phase and is not ready for production use. -**[⬆️ Back to Top](#websurfx)** +**[⬆️ Back to Top](#--)** # Configuration 🔧 -> For full configuration instructions, see: [**Configuration**](https://github.com/neon-mmd/websurfx/wiki/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](#websurfx)** +**[⬆️ Back to Top](#--)** # Theming 🎨 -> For full theming and customization instructions, see: [**Theming**](https://github.com/neon-mmd/websurfx/wiki/theming) +> For full theming and customization instructions, see: [**Theming**](./docs/theming.md) 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. -**[⬆️ Back to Top](#websurfx)** +**[⬆️ Back to Top](#--)** # Multi-Language Support 🌍 > **Note** > 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. -**[⬆️ Back to Top](#websurfx)** +**[⬆️ 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](#websurfx)** +**[⬆️ Back to Top](#--)** # FAQ (Frequently Asked Questions) 🗨️ @@ -202,13 +160,13 @@ Websurfx is distributed under the **AGPLv3** license to keep the source code ope 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. -**[⬆️ Back to Top](#websurfx)** +**[⬆️ 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](#websurfx)** +**[⬆️ Back to Top](#--)** # Supporting Websurfx 💖 @@ -224,20 +182,20 @@ Several areas that we need a bit of help with at the moment are: - Submit a PR to add a new feature, fix a bug, update the docs, add a theme, widget, or something else. - Star Websurfx on GitHub. -**[⬆️ Back to Top](#websurfx)** +**[⬆️ Back to Top](#--)** # Documentation 📘 > **Note** -> We welcome any contributions to the [documentation](https://github.com/neon-mmd/websurfx/wiki) as this will benefit everyone who uses this project. +> We welcome any contributions to the [documentation](./docs/) as this will benefit everyone who uses this project. -**[⬆️ Back to Top](#websurfx)** +**[⬆️ Back to Top](#--)** # Roadmap 🛣️ > Coming soon!! 🙂. -**[⬆️ Back to Top](#websurfx)** +**[⬆️ Back to Top](#--)** # Contributing 🙋 @@ -251,13 +209,13 @@ Check out this [video](https://youtu.be/FccdqCucVSI) by Mr. Nick on how to contr If you are a developer, have a look at the [CONTRIBUTING.org](CONTRIBUTING.md) document for more information. -**[⬆️ Back to Top](#websurfx)** +**[⬆️ Back to Top](#--)** # License 📜 Websurfx is licensed under the [AGPLv3](LICENSE) license. -**[⬆️ Back to Top](#websurfx)** +**[⬆️ Back to Top](#--)** # Credits 🤝 @@ -271,7 +229,7 @@ We would like to thank the following people for their contributions and support:

-**[⬆️ Back to Top](#websurfx)** +**[⬆️ Back to Top](#--)** --- diff --git a/images/main_page.png b/images/main_page.png index 0db122276d62253adb3fa0c081ddf0766f88fb5e..337eac53e8d38050e9e29e1aeccdaa4d4a8e5a45 100644 GIT binary patch literal 37287 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 F{{cG|*GT{X From 1bf2e0e6f90a84ae5c9b9d65677bd3214287917c Mon Sep 17 00:00:00 2001 From: neon_arch Date: Fri, 26 May 2023 13:29:17 +0300 Subject: [PATCH 17/21] docs: add instructions on how to install cargo --- docs/installation.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/installation.md b/docs/installation.md index 050be70..1e23aec 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -25,6 +25,8 @@ The package is currently not available on other Linux distros. With contribution # Install From Source +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). + ## Stable 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: From 995b9ae42f838c8ad5e59c000de998f358834f2e Mon Sep 17 00:00:00 2001 From: neon_arch Date: Fri, 26 May 2023 13:34:14 +0300 Subject: [PATCH 18/21] chore: add installation intructions on how to install cargo --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a7483a6..055d5c2 100644 --- a/README.md +++ b/README.md @@ -100,12 +100,14 @@ > For full setup instructions, see: [**Installation**](./docs/installation.md) -To get started with Websurfx, clone the repository, edit the config file, which is located in the `websurfx`{.verbatim} 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: +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 -cargo build +cargo build -r redis-server --port 8082 & ./target/debug/websurfx ``` From 175e0c25b3aa57e111c064cfc9dc7cc040778724 Mon Sep 17 00:00:00 2001 From: neon_arch Date: Sat, 27 May 2023 07:06:03 +0000 Subject: [PATCH 19/21] docs: fix the installation instructions under install from source Co-authored-by: zhou fan <1247714429@qq.com> --- docs/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/installation.md b/docs/installation.md index 1e23aec..44d5c74 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -36,7 +36,7 @@ git clone https://github.com/neon-mmd/websurfx.git cd websurfx cargo build -r redis-server --port 8082 & -./target/debug/websurfx +./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. From be453e665346dc03210165687f9112b792b568fc Mon Sep 17 00:00:00 2001 From: neon_arch Date: Sat, 27 May 2023 07:06:45 +0000 Subject: [PATCH 20/21] docs: fix the installation instructions under install from source for rolling subsection Co-authored-by: zhou fan <1247714429@qq.com> --- docs/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/installation.md b/docs/installation.md index 44d5c74..4719ddc 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -53,7 +53,7 @@ cd websurfx git checkout rolling cargo build -r redis-server --port 8082 & -./target/debug/websurfx +./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. From 5b706701d03d99170ea7be892671f5a6902d05b2 Mon Sep 17 00:00:00 2001 From: neon_arch Date: Sat, 27 May 2023 10:11:42 +0300 Subject: [PATCH 21/21] chore: fix the installation instructions under installation section --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 055d5c2..95d4d21 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,7 @@ git clone https://github.com/neon-mmd/websurfx.git cd websurfx cargo build -r redis-server --port 8082 & -./target/debug/websurfx +./target/release/websurfx ``` Once you have started the server, open your preferred web browser and navigate to to start using Websurfx.

- Readme | + Readme | Discord | GitHub | Documentation @@ -73,7 +73,7 @@ >meta search 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 + provides a quick and secure search experience while maintaining user privacy.