diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..c0de684 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,15 @@ +# Protect build scripts +*.js @tycrek + +# Protect NPM files +*.json @tycrek + +# Protect MIRRORS.md +/MIRRORS.md @tycrek + +# Protect .github & others +/.github/ @tycrek +/.gitattributes @tycrek + +# Protect README.md (restricted to degoogle-bot) +/README.md @degoogle-bot diff --git a/.github/ISSUE_TEMPLATE/1-new-alternative.yml b/.github/ISSUE_TEMPLATE/1-new-alternative.yml index c3def0c..c1defa4 100644 --- a/.github/ISSUE_TEMPLATE/1-new-alternative.yml +++ b/.github/ISSUE_TEMPLATE/1-new-alternative.yml @@ -19,7 +19,6 @@ body: options: - label: "**I have read the guidelines in [CONTRIBUTING.md](../blob/master/CONTRIBUTING.md)**" required: true - - label: Include my name in [CONTRIBUTORS.md](../blob/master/CONTRIBUTORS.md) - label: I am affiliated with this alternative - type: input id: name @@ -32,7 +31,7 @@ body: id: section attributes: label: Section - description: Please also include the section you feel it belongs best in + description: Also include the section you feel it belongs best in multiple: true options: - Browser extensions @@ -46,7 +45,7 @@ body: attributes: label: Description description: | - Please provide a brief description of the alternative, + Provide a brief description of the alternative, one to 5 sentences which will be displayed along with the name. validations: required: true @@ -86,7 +85,7 @@ body: attributes: label: Is this alternative hosted in a country that performs surveillance? description: | - For more info on 5/9/14 eyes, please check here: https://restoreprivacy.com/5-eyes-9-eyes-14-eyes/ + For more info on 5/9/14 eyes, visit: https://restoreprivacy.com/5-eyes-9-eyes-14-eyes/ Usually only one applies, but you may select more than one. options: - label: 5 Eyes @@ -103,7 +102,7 @@ body: - type: dropdown id: self-hosting attributes: - label: Please indicate if self-hosting is possible, not possible, or the only option + label: Indicate if self-hosting is possible, not possible, or the only option options: - Possible - Not possible diff --git a/.github/ISSUE_TEMPLATE/2-fix-update-alternative.yml b/.github/ISSUE_TEMPLATE/2-fix-update-alternative.yml index d4a8a90..8b4f3aa 100644 --- a/.github/ISSUE_TEMPLATE/2-fix-update-alternative.yml +++ b/.github/ISSUE_TEMPLATE/2-fix-update-alternative.yml @@ -19,7 +19,6 @@ body: options: - label: "**I have read the guidelines in [CONTRIBUTING.md](../blob/master/CONTRIBUTING.md)**" required: true - - label: Include my name in [CONTRIBUTORS.md](../blob/master/CONTRIBUTORS.md) - label: I am affiliated with this alternative - type: input id: alternative_name diff --git a/.github/ISSUE_TEMPLATE/3-remove-alternative.yml b/.github/ISSUE_TEMPLATE/3-remove-alternative.yml index f62e754..99b1c43 100644 --- a/.github/ISSUE_TEMPLATE/3-remove-alternative.yml +++ b/.github/ISSUE_TEMPLATE/3-remove-alternative.yml @@ -18,7 +18,6 @@ body: options: - label: "**I have read the guidelines in [CONTRIBUTING.md](../blob/master/CONTRIBUTING.md)**" required: true - - label: Include my name in [CONTRIBUTORS.md](../blob/master/CONTRIBUTORS.md) - label: I am affiliated with this alternative - type: input id: alternative_name diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index bf936fc..7efddae 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,15 +1,13 @@ -| Checklist | | -| --------- | - | -| **I have read the guidelines in [CONTRIBUTING.md]** | yes/no | -| Include my name in [CONTRIBUTORS.md] | yes/no | -| I am affiliated with this alternative (if applicable) | yes/no | +### Checklist +- __I have read the guidelines in [CONTRIBUTING.md]__: yes/no +- __I am affiliated with this alternative (if applicable)__: yes/no ### Details + [CONTRIBUTING.md]: ../blob/master/CONTRIBUTING.md -[CONTRIBUTORS.md]: ../blob/master/CONTRIBUTORS.md diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a04feeb..c1261f7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,36 +3,34 @@ on: push: branches: - master - paths: - - yaml/*.yml - - md/*.md - - _build.js - - _wiki.js + paths: # Only build if these files were modified + - src/yaml/*.yml + - src/md/*.md + - src/_build.js + - src/_wiki.js jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 + - uses: actions/checkout@v4 with: - node-version: 13.x - - name: Install dependencies - run: npm i - - name: Build - run: node _build.js - - name: Commit + # GH_PAT must be a PAT for repo owner + token: ${{ secrets.GH_PAT }} + - uses: actions/setup-node@v3 + with: + node-version: 20.x + - name: Build README + run: npm i && node src/_build.js + - name: Commit & Push + # GH_NAME/GH_EMAIL can be any collaborator account with Force Push access run: | git add README.md - git config --local user.email "action@github.com" - git config --local user.name "GitHub Action" + git config --local user.name "${{ vars.GH_NAME }}" + git config --local user.email "${{ vars.GH_EMAIL }}" git commit --allow-empty -m "Generated README.md" - - name: Push - uses: ad-m/github-push-action@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: master - - name: Wiki - run: node _wiki.js + git push --force-with-lease + - name: Publish Reddit Wiki + run: node src/_wiki.js env: REDDIT_USER: ${{ secrets.REDDIT_USER}} REDDIT_PASS: ${{ secrets.REDDIT_PASS}} diff --git a/.github/workflows/readme-protection.yml b/.github/workflows/readme-protection.yml new file mode 100644 index 0000000..5c921ed --- /dev/null +++ b/.github/workflows/readme-protection.yml @@ -0,0 +1,25 @@ +name: README Edit Protection + +on: + pull_request_target: + +jobs: + check: + name: 'File check' + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 2 + - name: Get changed files + id: changed-files + uses: tj-actions/changed-files@v39 + - name: Check if README included + run: | + for file in ${{ steps.changed-files.outputs. modified_files }}; do + if [[ $file == 'README.md' ]]; then + echo "[!] README.md was edited, blocking!" + exit 1 + fi + done diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 512ed4f..0c7a701 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,21 +1,19 @@ # Contributing -###### Last revised: August 9th, 2021 - -###### Templates revised: August 9th, 2021 - ## General rules 1. **English only** for issues & pull requests. -2. **Do not edit `README.md`!** This file is automatically generated. -3. Personal opinions will **not** be considered when adding or removing an alternative. Instead, provide links to articles with details. +2. **Do not edit README.md!** This file is automatically generated. Instead, use: + - [`src/yaml/`](https://github.com/tycrek/degoogle/tree/master/src/yaml) for structured data + - [`src/md/`](https://github.com/tycrek/degoogle/tree/master/src/md) for regular text +3. Personal opinions will **not** be considered. Instead, provide detailed links as supporting evidence. 4. **Use the templates** when submitting an Issue or Pull Request. Blank Issues/PRs are not allowed. ## How to submit a change ### A: I am not familiar with GitHub or Pull Requests -1. Open a [new Issue]. +1. Open a [new Issue](https://github.com/tycrek/degoogle/issues/new/choose). 2. Select a template to use. If in doubt, use **Other**. 3. Fill out the information to the best of your ability. 4. When you are finished, click **Submit new issue**. @@ -23,13 +21,6 @@ ### B: I have used GitHub Pull Requests 1. Create your Pull Request with your changes. - - Remember to **not** edit `README.md`! + - Remember to **not** edit README.md! - As with Issues, fill out the template as best you can. -2. For PR's relating to alternatives, please follow the steps above to also create an Issue for discussion. Simple PR's that are unrelated to a specific alternative may not require an Issue. If in doubt, create an **Other** Issue. - -## I contributed but I am not in the list (or) I do not want to be in the list anymore - -If you submitted a change that made it into the guide but don't have your Reddit or GitHub username in the [CONTRIBUTORS.md] list, open an issue or pull request so I can fix it. Alternatively, if your username is on the list and you do *not* want it there, feel free to request this as well. - -[new Issue]: https://github.com/tycrek/degoogle/issues/new/choose -[CONTRIBUTORS.md]: https://github.com/tycrek/degoogle/blob/master/CONTRIBUTORS.md +2. For PR's relating to alternatives, you must also follow the steps above to create an Issue for discussion. Simple PR's that are unrelated to a specific alternative may not require an Issue. If in doubt, create an **Other** Issue. diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 2ed576a..57bab47 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -86,6 +86,7 @@ Thanks to everyone here for contributing in some way! (usernames are in no parti - [@julianfairfax](https://github.com/julianfairfax) - [@ACK-J](https://github.com/ACK-J) - [@joebudi](https://github.com/joebudi) +- [@mniehe](https://github.com/mniehe) ### Reddit: diff --git a/MIRRORS.md b/MIRRORS.md index 932c679..b1e2f8f 100644 --- a/MIRRORS.md +++ b/MIRRORS.md @@ -1,8 +1,6 @@ # Degoogle Mirrors -If you host a mirror, let me know through an Issue or PR so it can be added to the community mirrors list. It would be prefered if your mirror is auto-updating. - -Official mirrors are the main sources and are maintained by me (@tycrek). Community mirrors are other Git instances run by other users that I can't control. +Official mirrors are managed by me ([@tycrek](https://github.com/tycrek)). Community mirrors are Git instances run by other users that I can't control (they may be out of date as well). ## Official mirrors @@ -13,7 +11,7 @@ Official mirrors are the main sources and are maintained by me (@tycrek). Commun - [Gitea mirror](https://git.mirkodi.eu/mirk0dex/degoogle) from [@mirk0dex (Gitea)](https://git.mirkodi.eu/mirk0dex) -## Non-english mirrors +### Non-english mirrors - [Turkish/Türk](https://github.com/melikechan/degoogle-turkish) from [@melikechan](https://github.com/melikechan) - [Italian/Italiano](https://gitea.it/devol/degooglizzazione) from [@devol (Gitea)](https://gitea.it/devol) diff --git a/README.md b/README.md index 82a52fa..67c2688 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,35 @@ +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) -[//]: # (NOTE: Please do NOT directly edit this file! Instead, edit) -[//]: # (either degoogle.yml or any Markdown file in the md/ directory) +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) + + + +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) + + + +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) + + + +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) + + + +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) @@ -20,7 +38,7 @@ ### *I don't have anything to hide, but I don't have anything to show you either.* -![Updated](https://img.shields.io/static/v1?label=updated&message=October%2018th%202023&color=388E3C&style=flat-square) +![Updated](https://img.shields.io/static/v1?label=updated&message=October%2019,%202023&color=388E3C&style=flat-square) ![License](https://img.shields.io/badge/License-CC--BY--SA%204.0-green.svg?style=flat-square) ![GitHub stars](https://img.shields.io/github/stars/tycrek/degoogle?style=flat-square) @@ -47,18 +65,18 @@ 5. [The lighter side](#the-lighter-side) 6. [Closing remarks](#closing-remarks) + # Contributing -If you want to help out with the project, here are some ideas (submit **Issues** & **Pull Requests** on the [GitHub page](https://github.com/tycrek/degoogle)): +If you want to help out with the project, here are some ideas: -- **iOS app alternatives!** I don't have an iOS device to find alternatives with. I would highly appreciate any help with this. -- Clean up/improve the Markdown. +- Find more iOS app alternatives - Provide more information on services with little info or where *help requested!* is shown. - Suggest new services or provide info for removing existing services. -- Host a mirror or clone the [repo](https://github.com/tycrek/degoogle). If you host a mirror, let me know and I can add it to the mirrors list. +- Host a mirror or fork the repo. If you host a mirror, let me know and I can add it to the mirrors list. - Anything else relating to any part of this guide, whether it's Google related or not. -When contributing, **please follow the rules outlined in [CONTRIBUTING.md](https://github.com/tycrek/degoogle/blob/master/CONTRIBUTING.md)**. +When contributing, **follow the rules outlined in [CONTRIBUTING.md](https://github.com/tycrek/degoogle/blob/master/CONTRIBUTING.md)**. # Browser extensions @@ -124,7 +142,7 @@ When contributing, **please follow the rules outlined in [CONTRIBUTING.md](https | [Swisscows](https://swisscows.ch) | | A Swiss search engine that offers a unique search experience for the web, images, videos, music, and more. They are currently funding a mail service. Read through their [datacenter about page](https://swisscows.ch/en/datacenter), it's really interesting. | | [Mojeek](https://www.mojeek.com/) | **5-eyes** | Unlike other privacy search engines which act as a "middle man" between you and Google/Bing/Yahoo, Mojeek has their own crawler and index. The results aren't as complete as some of the others, but it is still impressive and they are actively building their index to include more results with better accuracy. | | [Ekoru](https://ekoru.org/) | | Privacy focused search engine that also aims to clean up the oceans. Thanks @mynamesleon | -| [Cyberd](https://cyber.page/)
[![Repo](https://img.shields.io/badge/open-source-3DA639?style=flat-square&logo=github)](https://github.com/cybercongress/cyb)
![GitHub Repo stars](https://img.shields.io/github/stars/cybercongress/cyb?logo=github&style=flat-square) | | Decentralized Google. A web 3 alternative for the Google search engine. In Beta testing mode. Uses IPFS and Tendermint consensus for security and economic incentives. Please see their [ELI-5 FAQ](https://github.com/cybercongress/congress/blob/master/ecosystem/ELI-5%20FAQ.md) for more info. | +| [Cyberd](https://cyber.page/)
[![Repo](https://img.shields.io/badge/open-source-3DA639?style=flat-square&logo=github)](https://github.com/cybercongress/cyb)
![GitHub Repo stars](https://img.shields.io/github/stars/cybercongress/cyb?logo=github&style=flat-square) | | Decentralized Google. A web 3 alternative for the Google search engine. In Beta testing mode. Uses IPFS and Tendermint consensus for security and economic incentives. Visit their [ELI-5 FAQ](https://github.com/cybercongress/congress/blob/master/ecosystem/ELI-5%20FAQ.md) for more info. | | [Infinity Search](https://infinitysearch.co/)
[![Repo](https://img.shields.io/badge/open-source-3DA639?style=flat-square&logo=gitlab)](https://gitlab.com/infinitysearch/infinity-search)
| **5-eyes** | Infinity Search is a privacy metasearch engine that does not log any information about its users. In terms of privacy, it works the same way as DuckDuckGo. It is free to use and is funded by non-tracking advertisements and affiliate links. It is also completely open-source. | | [Runnaroo](https://www.runnaroo.com/) | **5-eyes** | "Runnaroo was built from the ground up to provide an all around better search experience." Thanks @codingepaduli | @@ -218,7 +236,7 @@ When contributing, **please follow the rules outlined in [CONTRIBUTING.md](https | [Noblogs](https://noblogs.org/) | **9-eyes** | A privacy/security focused blogging platform. | | [Ghost](https://ghost.org/)
[![Repo](https://img.shields.io/badge/open-source-3DA639?style=flat-square&logo=github)](https://github.com/TryGhost/Ghost)
![GitHub Repo stars](https://img.shields.io/github/stars/TryGhost/Ghost?logo=github&style=flat-square) | | Open-source modern CMS. Boasts "over 19x faster than WordPress". Thanks @peterge1998 | | [Bear](https://bearblog.dev/) | **5-eyes** | Free, no-nonsense, super-fast blogging. No javascript, no stylesheets, no trackers. Just your words. | -| [Simpleblogs](https://simpleblogs.org/) | | FLOSS blogging platform with a focus on privacy. Easy to self-host (standard rails app, ships with AWS deployment scripts. AWS is not required). Access restricted to accounts which you create and hand out. Good for private blogs but not for commercial/public blogging. | +| [Haven](https://havenweb.org/)
[![Repo](https://img.shields.io/badge/open-source-3DA639?style=flat-square&logo=github)](https://github.com/havenweb/haven)
![GitHub Repo stars](https://img.shields.io/github/stars/havenweb/haven?logo=github&style=flat-square) | | FLOSS private blogging platform. Easy to self-host (standard rails app, ships with AWS and Raspberry Pi deployment scripts. AWS is not required). Access restricted to accounts which you create and hand out. Good for private blogs but not for commercial/public blogging. Built-in feed reader. | @@ -257,6 +275,7 @@ When contributing, **please follow the rules outlined in [CONTRIBUTING.md](https | [PhotoStructure](https://photostructure.com/) | | Self-hosted photo and video manager. Cross-platform (macOS, Windows, Linux, Docker). Scales to millions of assets, with automatic organization, auto-transcoding, and advanced de-duplication. | | [Lychee](https://lycheeorg.github.io/)
[![Repo](https://img.shields.io/badge/open-source-3DA639?style=flat-square&logo=github)](https://github.com/LycheeOrg/Lychee)
![GitHub Repo stars](https://img.shields.io/github/stars/LycheeOrg/Lychee?logo=github&style=flat-square) | | An open-source self-hosted photo-management tool that includes built-in support for videos. Thanks @m0yP | | [ente](https://ente.io/)
[![Repo](https://img.shields.io/badge/open-source-3DA639?style=flat-square&logo=github)](https://github.com/ente-io/)
| **5-eyes** | A paid, cloud-based, open-source photo storage app with a focus on security and privacy. Apps are available for iOS, Android, web and desktop. | +| [Photoview](https://photoview.github.io/)
[![Repo](https://img.shields.io/badge/open-source-3DA639?style=flat-square&logo=github)](https://github.com/photoview/photoview)
![GitHub Repo stars](https://img.shields.io/github/stars/photoview/photoview?logo=github&style=flat-square) | | Self-hosted and open-source Personal Photo Management with options for face grouping, albums, sharing, automatic thumbnail generation, and map pins. | @@ -360,7 +379,7 @@ When contributing, **please follow the rules outlined in [CONTRIBUTING.md](https | Name | Eyes | Description | | ---- | ---- | ----------- | | [Forward Email](https://forwardemail.net/)
[![Repo](https://img.shields.io/badge/open-source-3DA639?style=flat-square&logo=github)](https://github.com/forwardemail)
| | A free and open-source email forwarding service focused on a user's right to privacy. | -| [Protonmail](https://protonmail.com/) | | One of the top privacy-focused email providers. Servers are in Switzerland in an underground guarded bunker that they claim can "survive a nuclear attack". **Privacy note:** Please see [Issue \#258](https://github.com/tycrek/degoogle/issues/258) for info on ProtonMail privacy & integrity concerns. | +| [Protonmail](https://protonmail.com/) | | One of the top privacy-focused email providers. Servers are in Switzerland in an underground guarded bunker that they claim can "survive a nuclear attack". **Privacy note:** Visit [Issue \#258](https://github.com/tycrek/degoogle/issues/258) for info on ProtonMail privacy & integrity concerns. | | [Tutanota](https://tutanota.com/)
[![Repo](https://img.shields.io/badge/open-source-3DA639?style=flat-square&logo=github)](https://github.com/tutao/tutanota)
![GitHub Repo stars](https://img.shields.io/github/stars/tutao/tutanota?logo=github&style=flat-square) | **14-eyes** | Open-source and one one of the top rated privacy-focused email providers. Located in Germany. | | [Posteo](https://posteo.de/en) | **14-eyes** | Completely anonymous mail provider located in Germany. | | [mailbox.org](https://mailbox.org/en/) | **14-eyes** | Paid email provider, also located in Germany. | @@ -499,7 +518,8 @@ No known alternatives. | [DivestOS](https://divestos.org/)
[![Repo](https://img.shields.io/badge/open-source-3DA639?style=flat-square&logo=github)](https://github.com/divested-mobile)
| | DivestOS is an alternative Android ROM with enhanced privacy and security along with support for many older devices. It is an unofficial soft fork of LineageOS. Website also [available through Tor](http://divestoseb5nncsydt7zzf5hrfg44md4bxqjs5ifcv4t7gt7u6ohjyyd.onion/). | - *You'll either need a rooted device with an unlocked bootloader, or a specific device depending on which OS you like.* -- *Please see [Issue \#55](https://github.com/tycrek/degoogle/issues/55) for details on /e/.* +- *You can use [Anarchy-Droid](https://anarchy-droid.com) to install a new operating system on many Android devices.* +- *Visit [Issue \#55](https://github.com/tycrek/degoogle/issues/55) for details on /e/.* - *You can use [Plexus](https://plexus.techlore.tech/) to check android app compatibility on degoogled Android operating systems.* @@ -1037,20 +1057,20 @@ Everything you need to become a privacy wizard. This section has two subsections # The lighter side -- Movies & TV: +- **Movies & TV** - *Snowden (2016)* - Based on the true story of Edward Snowden, the CIA/NSA/etc whistleblower. Directed by Oliver Stone. - *Deep Web (2015)* - Documentary (narrated by Keanu Reeves) about Ross Ulbricht aka. Dread Pirate Roberts and the infamous "Silk Road" dark market. Directed by Alex Winter. - *The Great Hack (2019)* - Documentary about the Facebook–Cambridge Analytica data scandal. Thanks @woutfeys - *Mr. Robot* - Hacker-drama starring Rami Malek. Producers hired actual hackers as consultants to ensure the show is as accurate as possible; real-world tools used in the show. - *Silicon Valley* - Satirical tech comedy about a compression startup struggling to take off in Silicon Valley, California. - *Shoshana Zuboff on surveillance capitalism | VPRO Documentary* - [Invidious instance](https://yewtu.be/watch?v=hIXhnWUmMvw) and [Hooktube](https://hooktube.com/watch?v=hIXhnWUmMvw) -- Podcasts: +- **Podcasts** - [Darknet Diaries](https://darknetdiaries.com/) (by Jack Rhysider) - Highlights real-life hackers and their stories. Covers privacy topics a fair bit. - [The WAN Show](https://youtube.com/playlist?list=PL8mG-RkN2uTw7PhlnAr4pZZz2QubIbujH) (Linus Tech Tips) - Not specifically privacy, but they cover all sorts of tech news. - [The Privacy, Security, & OSINT Show](https://inteltechniques.com/podcast.html) - "This weekly podcast presents ideas to help you become digitally invisible, stay secure from cyber threats, and make you a better online investigator." - [Security Now!](https://www.grc.com/SecurityNow.htm) - "TechTV's Leo Laporte and I spend somewhat shy of two hours each week to discuss important issues of personal computer security." (Thanks u/Abaddon182) - [Surveillance Report](https://surveillancereport.tech/) - "Weekly security and privacy news - Presented by Techlore & The New Oil " -- Other: +- **Other** - [xkcd](https://xkcd.com/) - They have comics for *everything*. - System32 Comics [Instagram](https://www.instagram.com/system32comics/) and [Reddit](https://www.reddit.com/r/System32Comics/) - Comedic computer comics. @@ -1072,8 +1092,6 @@ Good luck and stay safe! This project is licensed under the **Creative Commons Attribution-ShareAlike 4.0 International License** ([CC-BY-SA 4.0]). -#### Summary - - **Attribution:** You are free to: - **Share:** Copy and redistribute the material in any medium or format. - **Adapt:** Remix, transform, and build upon the material for any purpose, even commercially. @@ -1082,6 +1100,6 @@ This project is licensed under the **Creative Commons Attribution-ShareAlike 4.0 - **Attribution:** You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. - **ShareAlike:** If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. -For a full legal text of the license, please visit [Creative Commons Attribution-ShareAlike 4.0 International License][CC-BY-SA 4.0]. +For a full legal text of the license, visit [Creative Commons Attribution-ShareAlike 4.0 International License][CC-BY-SA 4.0]. [CC-BY-SA 4.0]: https://creativecommons.org/licenses/by-sa/4.0/ diff --git a/md/_contributing.md b/md/_contributing.md deleted file mode 100644 index b0afcd8..0000000 --- a/md/_contributing.md +++ /dev/null @@ -1,12 +0,0 @@ -# Contributing - -If you want to help out with the project, here are some ideas (submit **Issues** & **Pull Requests** on the [GitHub page](https://github.com/tycrek/degoogle)): - -- **iOS app alternatives!** I don't have an iOS device to find alternatives with. I would highly appreciate any help with this. -- Clean up/improve the Markdown. -- Provide more information on services with little info or where *help requested!* is shown. -- Suggest new services or provide info for removing existing services. -- Host a mirror or clone the [repo](https://github.com/tycrek/degoogle). If you host a mirror, let me know and I can add it to the mirrors list. -- Anything else relating to any part of this guide, whether it's Google related or not. - -When contributing, **please follow the rules outlined in [CONTRIBUTING.md](https://github.com/tycrek/degoogle/blob/master/CONTRIBUTING.md)**. diff --git a/_build.js b/src/_build.js similarity index 98% rename from _build.js rename to src/_build.js index d1c76f0..631b47f 100644 --- a/_build.js +++ b/src/_build.js @@ -1,10 +1,10 @@ // Build tool for generating README.md -const { EOL } = require('os'); -const path = require('path'); const fs = require('fs-extra'); -const { DateTime } = require('luxon'); +const path = require('path'); const YAML = require('yaml'); +const { EOL } = require('os'); +const { DateTime } = require('luxon'); const BUILD_SECTION = { header: () => readFile('md/_header.md').replace('{{DATE}}', DateTime.now().toFormat('MMMM dd, yyyy').replace(/ /g, '%20')), @@ -175,5 +175,5 @@ function generatePublications(pubTitle, filename) { } // ! Generate README.md -fs.writeFileSync(path.join(__dirname, 'README.md'), Object.values(BUILD_SECTION).map((section) => section()).join(`${EOL}${EOL}`)); +fs.writeFileSync(path.join(process.cwd(), 'README.md'), Object.values(BUILD_SECTION).map((section) => section()).join(`${EOL}${EOL}`)); console.log('Done!'); diff --git a/_wiki.js b/src/_wiki.js similarity index 52% rename from _wiki.js rename to src/_wiki.js index 3d98d9d..7151e62 100644 --- a/_wiki.js +++ b/src/_wiki.js @@ -1,33 +1,26 @@ +// Build tool for uploading generated README.md to Reddit Wiki + +const qs = require('qs'); const fs = require('fs-extra'); const path = require('path'); const fetch = require('node-fetch'); -const qs = require('qs'); const { DateTime } = require('luxon'); -// REDDIT_: For authentication with Reddit API. Oauth MUST be used. ID and Secret come from a "script" app type. -const REDDIT_USER = process.env.REDDIT_USER || 'username'; -const REDDIT_PASS = process.env.REDDIT_PASS || 'password'; -const REDDIT_CLIENT_ID = process.env.REDDIT_CLIENT_ID || 'clientid'; -const REDDIT_CLIENT_SECRET = process.env.REDDIT_CLIENT_SECRET || 'clientsecret'; - -// Initial basic authorization for getting the Oauth token -const BASIC_AUTH = `Basic ${Buffer.from(REDDIT_CLIENT_ID + ':' + REDDIT_CLIENT_SECRET).toString('base64')}`; - -// WIKI_: For the Reddit Wiki -const WIKI_SUBREDDIT = 'privacy'; -const WIKI_PAGE = 'de-google'; -const WIKI_REASON = 'Automated edit from GitHub repo: https://github.com/tycrek/degoogle'; +// REDDIT.: For authentication with Reddit API. Oauth MUST be used. ID and Secret come from a "script" app type. +const REDDIT = { + USER: process.env.REDDIT_USER || 'username', + PASS: process.env.REDDIT_PASS || 'password', + CLIENT_ID: process.env.REDDIT_CLIENT_ID || 'clientid', + CLIENT_SECRET: process.env.REDDIT_CLIENT_SECRET || 'clientsecret', +}; // Endpoints for each of our fetches to Reddit const ENDPOINTS = { - revisions: `https://old.reddit.com/r/${WIKI_SUBREDDIT}/wiki/revisions/${WIKI_PAGE}.json`, + revisions: `https://old.reddit.com/r/privacy/wiki/revisions/de-google.json`, token: 'https://www.reddit.com/api/v1/access_token', - edit: `https://oauth.reddit.com/r/${WIKI_SUBREDDIT}/api/wiki/edit` + edit: `https://oauth.reddit.com/r/privacy/api/wiki/edit` }; -// Helps POST data be submitted properly -const CONTENT_TYPE = 'application/x-www-form-urlencoded'; - // Update the wiki Promise.all([getLastRevision(), getToken()]) .then(([lastId, token]) => putWiki(lastId, token)) @@ -52,8 +45,15 @@ function getToken() { return new Promise((resolve, reject) => fetch(ENDPOINTS.token, { method: 'POST', - headers: { 'Authorization': BASIC_AUTH, 'Content-Type': CONTENT_TYPE }, - body: qs.stringify({ grant_type: 'password', username: REDDIT_USER, password: REDDIT_PASS }) + headers: { + 'Authorization': `Basic ${Buffer.from(`${REDDIT.CLIENT_ID}:${REDDIT.CLIENT_SECRET}`).toString('base64')}`, + 'Content-Type': 'application/x-www-form-urlencoded' + }, + body: qs.stringify({ + grant_type: 'password', + username: REDDIT.USER, + password: REDDIT.PASS + }) }) .then((response) => response.json()) .then(({ access_token }) => resolve(access_token)) @@ -69,11 +69,14 @@ function putWiki(lastId, token) { return new Promise((resolve, reject) => fetch(ENDPOINTS.edit, { method: 'POST', - headers: { 'Authorization': `bearer ${token}`, 'Content-Type': CONTENT_TYPE }, + headers: { + 'Authorization': `bearer ${token}`, + 'Content-Type': 'application/x-www-form-urlencoded' + }, body: qs.stringify({ - content: fixContent(fs.readFileSync(path.join(__dirname, 'README.md')).toString()), - page: WIKI_PAGE, - reason: WIKI_REASON, + content: fixContent(fs.readFileSync(path.join(process.cwd(), 'README.md')).toString()), + page: 'de-google', + reason: 'Automated edit from GitHub repo: https://github.com/tycrek/degoogle', previous: lastId }) }) @@ -90,12 +93,12 @@ function putWiki(lastId, token) { * @param {String} content The content in README.md */ function fixContent(content) { - // Fix updated timestamp - content = content.replace(/\!\[Updated\](.*?)square\)/g, `#### Updated: ${DateTime.now().toFormat('MMMM dd, yyyy')}`); + return content - // Fix published timestamps - content = content.replace(/\!\[Published\]\(https\:\/\/img\.shields\.io\/badge\//g, '**'); - content = content.replace(/-informational\?style=flat-square\)/g, '**'); + // Fix updated timestamp + .replace(/\!\[Updated\](.*?)square\)/g, `#### Updated: ${DateTime.now().toFormat('MMMM dd, yyyy')}`) - return content; -} // * If this is highlighted weirdly, it's because of the 'updated timestamp' regex, don't worry about it + // Fix published timestamps + .replace(/\!\[Published\]\(https\:\/\/img\.shields\.io\/badge\//g, '**') + .replace(/-informational\?style=flat-square\)/g, '**'); +} diff --git a/md/_closingRemarks.md b/src/md/_closingRemarks.md similarity index 100% rename from md/_closingRemarks.md rename to src/md/_closingRemarks.md diff --git a/src/md/_contributing.md b/src/md/_contributing.md new file mode 100644 index 0000000..294d775 --- /dev/null +++ b/src/md/_contributing.md @@ -0,0 +1,11 @@ +# Contributing + +If you want to help out with the project, here are some ideas: + +- Find more iOS app alternatives +- Provide more information on services with little info or where *help requested!* is shown. +- Suggest new services or provide info for removing existing services. +- Host a mirror or fork the repo. If you host a mirror, let me know and I can add it to the mirrors list. +- Anything else relating to any part of this guide, whether it's Google related or not. + +When contributing, **follow the rules outlined in [CONTRIBUTING.md](https://github.com/tycrek/degoogle/blob/master/CONTRIBUTING.md)**. diff --git a/md/_disclaimer.md b/src/md/_disclaimer.md similarity index 100% rename from md/_disclaimer.md rename to src/md/_disclaimer.md diff --git a/md/_header.md b/src/md/_header.md similarity index 63% rename from md/_header.md rename to src/md/_header.md index 4b26d2a..a693d44 100644 --- a/md/_header.md +++ b/src/md/_header.md @@ -1,17 +1,35 @@ +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) -[//]: # (NOTE: Please do NOT directly edit this file! Instead, edit) -[//]: # (either degoogle.yml or any Markdown file in the md/ directory) +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) + + + +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) + + + +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) + + + +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) + + + +[//]: # ( !!! DO NOT EDIT THIS FILE !!! ) diff --git a/md/_index.md b/src/md/_index.md similarity index 94% rename from md/_index.md rename to src/md/_index.md index d38153e..496b016 100644 --- a/md/_index.md +++ b/src/md/_index.md @@ -15,4 +15,4 @@ 1. [Blog posts](#blog-posts) 1. [News articles](#news-articles) 5. [The lighter side](#the-lighter-side) -6. [Closing remarks](#closing-remarks) \ No newline at end of file +6. [Closing remarks](#closing-remarks) diff --git a/md/_license.md b/src/md/_license.md similarity index 84% rename from md/_license.md rename to src/md/_license.md index 05affbb..126d77f 100644 --- a/md/_license.md +++ b/src/md/_license.md @@ -2,8 +2,6 @@ This project is licensed under the **Creative Commons Attribution-ShareAlike 4.0 International License** ([CC-BY-SA 4.0]). -#### Summary - - **Attribution:** You are free to: - **Share:** Copy and redistribute the material in any medium or format. - **Adapt:** Remix, transform, and build upon the material for any purpose, even commercially. @@ -12,6 +10,6 @@ This project is licensed under the **Creative Commons Attribution-ShareAlike 4.0 - **Attribution:** You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. - **ShareAlike:** If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. -For a full legal text of the license, please visit [Creative Commons Attribution-ShareAlike 4.0 International License][CC-BY-SA 4.0]. +For a full legal text of the license, visit [Creative Commons Attribution-ShareAlike 4.0 International License][CC-BY-SA 4.0]. [CC-BY-SA 4.0]: https://creativecommons.org/licenses/by-sa/4.0/ diff --git a/md/_lighterSide.md b/src/md/_lighterSide.md similarity index 97% rename from md/_lighterSide.md rename to src/md/_lighterSide.md index 5cbb093..ec78ada 100644 --- a/md/_lighterSide.md +++ b/src/md/_lighterSide.md @@ -1,18 +1,18 @@ # The lighter side -- Movies & TV: +- **Movies & TV** - *Snowden (2016)* - Based on the true story of Edward Snowden, the CIA/NSA/etc whistleblower. Directed by Oliver Stone. - *Deep Web (2015)* - Documentary (narrated by Keanu Reeves) about Ross Ulbricht aka. Dread Pirate Roberts and the infamous "Silk Road" dark market. Directed by Alex Winter. - *The Great Hack (2019)* - Documentary about the Facebook–Cambridge Analytica data scandal. Thanks @woutfeys - *Mr. Robot* - Hacker-drama starring Rami Malek. Producers hired actual hackers as consultants to ensure the show is as accurate as possible; real-world tools used in the show. - *Silicon Valley* - Satirical tech comedy about a compression startup struggling to take off in Silicon Valley, California. - *Shoshana Zuboff on surveillance capitalism | VPRO Documentary* - [Invidious instance](https://yewtu.be/watch?v=hIXhnWUmMvw) and [Hooktube](https://hooktube.com/watch?v=hIXhnWUmMvw) -- Podcasts: +- **Podcasts** - [Darknet Diaries](https://darknetdiaries.com/) (by Jack Rhysider) - Highlights real-life hackers and their stories. Covers privacy topics a fair bit. - [The WAN Show](https://youtube.com/playlist?list=PL8mG-RkN2uTw7PhlnAr4pZZz2QubIbujH) (Linus Tech Tips) - Not specifically privacy, but they cover all sorts of tech news. - [The Privacy, Security, & OSINT Show](https://inteltechniques.com/podcast.html) - "This weekly podcast presents ideas to help you become digitally invisible, stay secure from cyber threats, and make you a better online investigator." - [Security Now!](https://www.grc.com/SecurityNow.htm) - "TechTV's Leo Laporte and I spend somewhat shy of two hours each week to discuss important issues of personal computer security." (Thanks u/Abaddon182) - [Surveillance Report](https://surveillancereport.tech/) - "Weekly security and privacy news - Presented by Techlore & The New Oil " -- Other: +- **Other** - [xkcd](https://xkcd.com/) - They have comics for *everything*. - System32 Comics [Instagram](https://www.instagram.com/system32comics/) and [Reddit](https://www.reddit.com/r/System32Comics/) - Comedic computer comics. diff --git a/md/_resources.md b/src/md/_resources.md similarity index 100% rename from md/_resources.md rename to src/md/_resources.md diff --git a/yaml/blogs.yml b/src/yaml/blogs.yml similarity index 100% rename from yaml/blogs.yml rename to src/yaml/blogs.yml diff --git a/yaml/books.yml b/src/yaml/books.yml similarity index 100% rename from yaml/books.yml rename to src/yaml/books.yml diff --git a/yaml/browserExtensions.yml b/src/yaml/browserExtensions.yml similarity index 100% rename from yaml/browserExtensions.yml rename to src/yaml/browserExtensions.yml diff --git a/yaml/degoogle.yml b/src/yaml/degoogle.yml similarity index 98% rename from yaml/degoogle.yml rename to src/yaml/degoogle.yml index 03208f2..0f5af78 100644 --- a/yaml/degoogle.yml +++ b/src/yaml/degoogle.yml @@ -64,7 +64,7 @@ web based products: eyes: null text: > Decentralized Google. A web 3 alternative for the Google search engine. In Beta testing mode. - Uses IPFS and Tendermint consensus for security and economic incentives. Please see their + Uses IPFS and Tendermint consensus for security and economic incentives. Visit their [ELI-5 FAQ](https://github.com/cybercongress/congress/blob/master/ecosystem/ELI-5%20FAQ.md) for more info. - name: Infinity Search @@ -317,13 +317,14 @@ web based products: eyes: 5 text: > Free, no-nonsense, super-fast blogging. No javascript, no stylesheets, no trackers. Just your words. - - name: Simpleblogs - url: https://simpleblogs.org/ + - name: Haven + url: https://havenweb.org/ + repo: https://github.com/havenweb/haven eyes: null text: > - FLOSS blogging platform with a focus on privacy. Easy to self-host (standard rails app, ships - with AWS deployment scripts. AWS is not required). Access restricted to accounts which you - create and hand out. Good for private blogs but not for commercial/public blogging. + FLOSS private blogging platform. Easy to self-host (standard rails app, ships with AWS and Raspberry + Pi deployment scripts. AWS is not required). Access restricted to accounts which you create and + hand out. Good for private blogs but not for commercial/public blogging. Built-in feed reader. analytics: - title: Analytics - name: Matomo @@ -478,6 +479,12 @@ web based products: eyes: 5 text: > A paid, cloud-based, open-source photo storage app with a focus on security and privacy. Apps are available for iOS, Android, web and desktop. + - name: Photoview + url: https://photoview.github.io/ + repo: https://github.com/photoview/photoview + eyes: null + text: > + Self-hosted and open-source Personal Photo Management with options for face grouping, albums, sharing, automatic thumbnail generation, and map pins. calendar: - title: Calendar - name: Lightning Calendar (Thunderbird) @@ -804,7 +811,7 @@ web based products: text: > One of the top privacy-focused email providers. Servers are in Switzerland in an underground guarded bunker that they claim can "survive a nuclear attack". - **Privacy note:** Please see [Issue \#258](https://github.com/tycrek/degoogle/issues/258) for + **Privacy note:** Visit [Issue \#258](https://github.com/tycrek/degoogle/issues/258) for info on ProtonMail privacy & integrity concerns. - name: Tutanota url: https://tutanota.com/ @@ -1107,7 +1114,8 @@ operating systems: - > You'll either need a rooted device with an unlocked bootloader, or a specific device depending on which OS you like. - - Please see [Issue \#55](https://github.com/tycrek/degoogle/issues/55) for details on /e/. + - You can use [Anarchy-Droid](https://anarchy-droid.com) to install a new operating system on many Android devices. + - Visit [Issue \#55](https://github.com/tycrek/degoogle/issues/55) for details on /e/. - You can use [Plexus](https://plexus.techlore.tech/) to check android app compatibility on degoogled Android operating systems. - name: Ubuntu Touch url: https://ubuntu-touch.io/ diff --git a/yaml/news.yml b/src/yaml/news.yml similarity index 100% rename from yaml/news.yml rename to src/yaml/news.yml