1
0
mirror of https://github.com/privacyguides/privacyguides.org.git synced 2025-07-03 01:52:39 +00:00

Compare commits

...

16 Commits

Author SHA1 Message Date
2ec3efb9d0 Optimize SVGs 2025-06-13 01:52:36 +09:30
d3fd1d3dbf update: Remove text that references content moved to diff page
Signed-off-by: redoomed1 <redoomed1@privacyguides.org>
2025-06-13 01:52:36 +09:30
2e246fea4a style: Remove unnecessary comma
Signed-off-by: redoomed1 <redoomed1@privacyguides.org>
2025-06-13 01:52:36 +09:30
edfa00a5a9 update!: Add DNS Filtering page to sidebar
Signed-off-by: redoomed1 <redoomed1@privacyguides.org>
2025-06-13 01:52:36 +09:30
667a77950b update: Move Vaultwarden from the Password Managers page to Self-Hosting index
Signed-off-by: redoomed1 <redoomed1@privacyguides.org>
2025-06-13 01:52:36 +09:30
d51af09335 style: "Self-hosted" to "self-hosting"
Signed-off-by: redoomed1 <redoomed1@privacyguides.org>
2025-06-13 01:52:35 +09:30
e99d4c6fb8 style: Rearrange sections and reword "Self-hosted" to "self-hosting"
Signed-off-by: redoomed1 <redoomed1@privacyguides.org>
2025-06-13 01:52:35 +09:30
612d1d5b82 style: "Self-hosted" to "self-hosting"
Signed-off-by: redoomed1 <redoomed1@privacyguides.org>
2025-06-13 01:52:35 +09:30
01749f9518 style: Make minor changes
Signed-off-by: redoomed1 <redoomed1@privacyguides.org>
2025-06-13 01:52:35 +09:30
35f17d6e7c update!: Move Self-Hosted DNS from recommendation page to new page
Signed-off-by: redoomed1 <redoomed1@privacyguides.org>
2025-06-13 01:52:35 +09:30
7cbd6bff81 update: Move Self-Hosted DNS from tools.md to Self-Hosting index
Signed-off-by: redoomed1 <redoomed1@privacyguides.org>
2025-06-13 01:52:35 +09:30
8e60a0ad79 update: Add Vaultwarden logos
Signed-off-by: redoomed1 <redoomed1@privacyguides.org>
2025-06-13 01:52:35 +09:30
017d00c769 update!: Add DNS Filtering section and Vaultwarden to Self-Hosting index
Signed-off-by: redoomed1 <redoomed1@privacyguides.org>
2025-06-13 01:52:35 +09:30
3a5655d3e8 refactor: Move Pi-hole logo to Self-Hosting directory
Signed-off-by: redoomed1 <redoomed1@privacyguides.org>
2025-06-13 01:52:35 +09:30
a0f00e684f refactor: Move Adguard Home logo to Self-Hosting directory
Signed-off-by: redoomed1 <redoomed1@privacyguides.org>
2025-06-13 01:52:35 +09:30
fde87b8892 feat!: Add Self-Hosted DNS page
Signed-off-by: redoomed1 <redoomed1@privacyguides.org>
2025-06-13 01:52:32 +09:30
11 changed files with 100 additions and 75 deletions

View File

@ -1,5 +1,5 @@
---
title: "DNS Resolvers"
title: DNS Resolvers
icon: material/dns
description: We recommend choosing these encrypted DNS providers to replace your ISP's default configuration.
cover: dns.webp
@ -10,7 +10,7 @@ global:
- [:material-account-cash: Surveillance Capitalism](basics/common-threats.md#surveillance-as-a-business-model){ .pg-brown }
Encrypted DNS with third-party servers should only be used to get around basic [DNS blocking](https://en.wikipedia.org/wiki/DNS_blocking) when you can be sure there won't be any consequences. Encrypted DNS will not help you hide any of your browsing activity.
Encrypted **DNS** with third-party servers should only be used to get around basic [DNS blocking](https://en.wikipedia.org/wiki/DNS_blocking) when you can be sure there won't be any consequences. Encrypted DNS will not help you hide any of your browsing activity.
[Learn more about DNS :material-arrow-right-drop-circle:](advanced/dns-overview.md){ .md-button }
@ -54,52 +54,9 @@ These are our favorite public DNS resolvers based on their privacy and security
Quad9: [*Data and Privacy Policy*](https://quad9.net/privacy/policy)
## Self-Hosted DNS Filtering
A self-hosted DNS solution is useful for providing filtering on controlled platforms, such as Smart TVs and other IoT devices, as no client-side software is needed.
### Pi-hole
<div class="admonition recommendation" markdown>
![Pi-hole logo](assets/img/dns/pi-hole.svg){ align=right }
**Pi-hole** is an open-source [DNS-sinkhole](https://en.wikipedia.org/wiki/DNS_sinkhole) which uses [DNS filtering](https://cloudflare.com/learning/access-management/what-is-dns-filtering) to block unwanted web content, such as advertisements.
Pi-hole is designed to be hosted on a Raspberry Pi, but it is not limited to such hardware. The software features a friendly web interface to view insights and manage blocked content.
[:octicons-home-16: Homepage](https://pi-hole.net){ .md-button .md-button--primary }
[:octicons-eye-16:](https://pi-hole.net/privacy){ .card-link title="Privacy Policy" }
[:octicons-info-16:](https://docs.pi-hole.net){ .card-link title=Documentation}
[:octicons-code-16:](https://github.com/pi-hole/pi-hole){ .card-link title="Source Code" }
[:octicons-heart-16:](https://pi-hole.net/donate){ .card-link title=Contribute }
</details>
</div>
### AdGuard Home
<div class="admonition recommendation" markdown>
![AdGuard Home logo](assets/img/dns/adguard-home.svg){ align=right }
**AdGuard Home** is an open-source [DNS-sinkhole](https://en.wikipedia.org/wiki/DNS_sinkhole) which uses [DNS filtering](https://cloudflare.com/learning/access-management/what-is-dns-filtering) to block unwanted web content, such as advertisements.
AdGuard Home features a polished web interface to view insights and manage blocked content.
[:octicons-home-16: Homepage](https://adguard.com/adguard-home/overview.html){ .md-button .md-button--primary }
[:octicons-eye-16:](https://adguard.com/privacy/home.html){ .card-link title="Privacy Policy" }
[:octicons-info-16:](https://github.com/AdguardTeam/AdGuardHome/wiki){ .card-link title=Documentation}
[:octicons-code-16:](https://github.com/AdguardTeam/AdGuardHome){ .card-link title="Source Code" }
</details>
</div>
## Cloud-Based DNS Filtering
These DNS filtering solutions offer a web dashboard where you can customize the block lists to your exact needs, similarly to a Pi-hole. These services are usually easier to set up and configure than self-hosted services like the ones above, and can be used more easily across multiple networks (self-hosted solutions are typically restricted to your home/local network unless you set up a more advanced configuration).
These DNS filtering solutions offer a web dashboard where you can customize the block lists to your exact needs. These services can be used easily across multiple networks.
### Control D
@ -107,7 +64,9 @@ These DNS filtering solutions offer a web dashboard where you can customize the
![Control D logo](assets/img/dns/control-d.svg){ align=right }
**Control D** is a customizable DNS service which lets you block security threats, unwanted content, and advertisements on a DNS level. In addition to their paid plans, they offer a number of preconfigured DNS resolvers you can use for free.
**Control D** is a customizable DNS service which lets you block security threats, unwanted content, and advertisements on a DNS level.
In addition to their paid plans, they offer a number of preconfigured DNS resolvers you can use for free.
[:octicons-home-16: Homepage](https://controld.com){ .md-button .md-button--primary }
[:octicons-eye-16:](https://controld.com/privacy){ .card-link title="Privacy Policy" }
@ -134,7 +93,9 @@ These DNS filtering solutions offer a web dashboard where you can customize the
![NextDNS logo](assets/img/dns/nextdns.svg){ align=right }
**NextDNS** is a customizable DNS service which lets you block security threats, unwanted content, and advertisements on a DNS level. They offer a fully functional free plan for limited use.
**NextDNS** is a customizable DNS service which lets you block security threats, unwanted content, and advertisements on a DNS level.
They offer a fully functional free plan for limited use.
[:octicons-home-16: Homepage](https://nextdns.io){ .md-button .md-button--primary }
[:octicons-eye-16:](https://nextdns.io/privacy){ .card-link title="Privacy Policy" }

View File

@ -1,6 +1,6 @@
---
meta_title: "The Best Password Managers to Protect Your Privacy and Security - Privacy Guides"
title: "Password Managers"
title: Password Managers
icon: material/form-textbox-password
description: Password managers allow you to securely store and manage passwords and other credentials.
cover: passwords.webp
@ -176,17 +176,10 @@ These password managers sync your passwords to a cloud server for easy accessibi
Bitwarden uses [PBKDF2](https://bitwarden.com/help/kdf-algorithms/#pbkdf2) as its key derivation function (KDF) algorithm by default. It also offers [Argon2](https://bitwarden.com/help/kdf-algorithms/#argon2id), which is more secure, as an alternative. You can change your account's KDF algorithm in the web vault:
- [x] Select **Settings > Security > Keys > KDF algorithm > Argon2id**
- [x] Select **Settings Security Keys KDF algorithm Argon2id**
Bitwarden's server-side code is [open source](https://github.com/bitwarden/server), so if you don't want to use the Bitwarden cloud, you can easily host your own Bitwarden sync server.
**Vaultwarden** is an alternative implementation of Bitwarden's sync server written in Rust and compatible with official Bitwarden clients, perfect for self-hosted deployment where running the resource-heavy official service might not be ideal. If you are looking to self-host Bitwarden on your own server, you almost certainly want to use Vaultwarden over Bitwarden's official server code.
[:octicons-repo-16: Vaultwarden Repository](https://github.com/dani-garcia/vaultwarden){ .md-button }
[:octicons-info-16:](https://github.com/dani-garcia/vaultwarden/wiki){ .card-link title="Documentation" }
[:octicons-code-16:](https://github.com/dani-garcia/vaultwarden){ .card-link title="Source Code" }
[:octicons-heart-16:](https://github.com/sponsors/dani-garcia){ .card-link title="Contribute" }
### Proton Pass
<div class="admonition recommendation" markdown>

View File

@ -0,0 +1,48 @@
---
title: DNS Filtering
meta_title: "Self-Hosting DNS Solutions - Privacy Guides"
icon: material/dns
description: For our more technical readers, self-hosting a DNS solution can provide filtering for devices not covered by cloud-based DNS solutions.
cover: dns.webp
---
<small>Protects against the following threat(s):</small>
- [:material-server-network: Service Providers](../basics/common-threats.md#privacy-from-service-providers){ .pg-teal }
- [:material-account-cash: Surveillance Capitalism](../basics/common-threats.md#surveillance-as-a-business-model){ .pg-brown }
**Self-hosting DNS** is useful for providing [DNS filtering](https://cloudflare.com/learning/access-management/what-is-dns-filtering) on controlled platforms, such as smart TVs and other IoT devices, as no client-side software is needed. Keep in mind that the DNS solutions below are typically restricted to your home or local network unless you set up a more advanced configuration.
## DNS Sinkholes
[**DNS sinkholes**](https://en.wikipedia.org/wiki/DNS_sinkhole) use DNS filtering to block unwanted web content such as advertisements.
### Pi-Hole
<div class="admonition recommendation" markdown>
![Pi-hole logo](../assets/img/self-hosting/pi-hole.svg){ align=right }
**Pi-hole** is an open-source DNS sinkhole which features a friendly web interface to view insights and manage blocked content. Pi-hole is designed to be hosted on a Raspberry Pi, but it is not limited to such hardware.
[:octicons-home-16: Homepage](https://pi-hole.net){ .md-button .md-button--primary }
[:octicons-eye-16:](https://pi-hole.net/privacy){ .card-link title="Privacy Policy" }
[:octicons-info-16:](https://docs.pi-hole.net){ .card-link title="Documentation" }
[:octicons-code-16:](https://github.com/pi-hole/pi-hole){ .card-link title="Source Code" }
[:octicons-heart-16:](https://pi-hole.net/donate){ .card-link title="Contribute" }
</div>
### AdGuard Home
<div class="admonition recommendation" markdown>
![AdGuard Home logo](../assets/img/self-hosting/adguard-home.svg){ align=right }
**AdGuard Home** is an open-source DNS sinkhole which features a polished web interface to view insights and manage blocked content.
[:octicons-home-16: Homepage](https://adguard.com/adguard-home/overview.html){ .md-button .md-button--primary }
[:octicons-eye-16:](https://adguard.com/privacy/home.html){ .card-link title="Privacy Policy" }
[:octicons-info-16:](https://github.com/AdguardTeam/AdGuardHome/wiki){ .card-link title="Documentation" }
[:octicons-code-16:](https://github.com/AdguardTeam/AdGuardHome){ .card-link title="Source Code" }
</div>

View File

@ -1,6 +1,6 @@
---
title: Email Servers
meta_title: "Self-Hosted Email - Privacy Guides"
meta_title: "Self-Hosting Email - Privacy Guides"
icon: material/email
description: For our more technical readers, self-hosting your own email can provide additional privacy assurances by having maximum control over your data.
cover: email.webp
@ -9,7 +9,7 @@ cover: email.webp
- [:material-server-network: Service Providers](../basics/common-threats.md#privacy-from-service-providers){ .pg-teal }
Advanced system administrators may consider setting up their own email server. Mail servers require attention and continuous maintenance in order to keep things secure and mail delivery reliable. In addition to the "all-in-one" solutions below, we've picked out a few articles that cover a more manual approach:
Advanced system administrators may consider setting up their own **email server**. Mail servers require attention and continuous maintenance in order to keep things secure and mail delivery reliable. In addition to the "all-in-one" solutions below, we've picked out a few articles that cover a more manual approach:
- [Setting up a mail server with OpenSMTPD, Dovecot and Rspamd](https://poolp.org/posts/2019-09-14/setting-up-a-mail-server-with-opensmtpd-dovecot-and-rspamd) (2019)
- [How To Run Your Own Mail Server](https://www.c0ffee.net/blog/mail-server-guide) (August 2017)

View File

@ -1,14 +1,14 @@
---
title: Self-Hosting
meta_title: "Self-Hosted Software and Services - Privacy Guides"
description: For our more technical readers, self-hosted software and services can provide additional privacy assurances since you have maximum control over your data.
meta_title: "Self-Hosting Software and Services - Privacy Guides"
description: For our more technical readers, self-hosting software and services can provide additional privacy assurances since you have maximum control over your data.
cover: router.webp
---
<small>Protects against the following threat(s):</small>
- [:material-server-network: Service Providers](../basics/common-threats.md#privacy-from-service-providers){ .pg-teal }
Using **self-hosted software and services** can be a way to achieve a higher level of privacy through digital sovereignty, particularly independence from cloud servers controlled by product developers or vendors. By self-hosting, we mean hosting applications and data on your own hardware.
**Self-hosting** software and services can be a way to achieve a higher level of privacy through digital sovereignty, particularly independence from cloud servers controlled by product developers or vendors. By self-hosting, we mean hosting applications and data on your own hardware.
Self-hosting your own solutions requires advanced technical knowledge and a deep understanding of the associated risks. By becoming the host for yourself and possibly others, you take on responsibilities you might not otherwise have. Self-hosting privacy software improperly can leave you worse off than using e.g. an end-to-end encrypted service provider, so it is best avoided if you are not already comfortable doing so.
@ -24,6 +24,35 @@ Self-hosting your own solutions requires advanced technical knowledge and a deep
[Learn more :material-arrow-right-drop-circle:](email-servers.md)
## :material-dns: DNS Filtering
<div class="grid cards" markdown>
- ![AdGuard Home logo](../assets/img/self-hosting/adguard-home.svg){ .twemoji loading=lazy } [AdGuard Home](dns-filtering.md#adguard-home)
- ![Pi-Hole logo](../assets/img/self-hosting/pi-hole.svg){ .twemoji loading=lazy } [Pi-Hole](dns-filtering.md#pi-hole)
</div>
[Learn more :material-arrow-right-drop-circle:](dns-filtering.md)
## :material-form-textbox-password: Password Management
### Vaultwarden
<div class="admonition recommendation" markdown>
![Vaultwarden logo](../assets/img/self-hosting/vaultwarden.svg#only-light){ align=right }
![Vaultwarden logo](../assets/img/self-hosting/vaultwarden-dark.svg#only-dark){ align=right }
**Vaultwarden** is an alternative implementation of [Bitwarden](../passwords.md#bitwarden)'s sync server written in Rust and compatible with official Bitwarden clients, perfect for self-hosted deployment where running the resource-heavy, [official service](https://github.com/bitwarden/server) might not be ideal.
[:octicons-repo-16: Repository](https://github.com/dani-garcia/vaultwarden#readme){ .md-button .md-button--primary }
[:octicons-info-16:](https://github.com/dani-garcia/vaultwarden/wiki){ .card-link title="Documentation" }
[:octicons-code-16:](https://github.com/dani-garcia/vaultwarden){ .card-link title="Source Code" }
[:octicons-heart-16:](https://github.com/sponsors/dani-garcia){ .card-link title="Contribute" }
</div>
## :material-account-supervisor-circle-outline: Social Networks
Self-hosting your own instance of a social network software can help circumvent potential [censorship on a server level](../social-networks.md#censorship-resistance) by a public server's administrator or admin team.

View File

@ -299,17 +299,6 @@ We [recommend](dns.md#recommended-providers) a number of encrypted DNS servers b
[Learn more :material-arrow-right-drop-circle:](dns.md#encrypted-dns-proxies)
#### Self-hosted Solutions
<div class="grid cards" markdown>
- ![AdGuard Home logo](assets/img/dns/adguard-home.svg){ .twemoji loading=lazy } [AdGuard Home](dns.md#adguard-home)
- ![Pi-hole logo](assets/img/dns/pi-hole.svg){ .twemoji loading=lazy } [Pi-hole](dns.md#pi-hole)
</div>
[Learn more :material-arrow-right-drop-circle:](dns.md#self-hosted-dns-filtering)
### Financial Services
#### Payment Masking Services

View File

@ -396,6 +396,7 @@ nav:
- !ENV [NAV_SELF_HOSTING, "Self-Hosting"]:
- "self-hosting/index.md"
- "self-hosting/email-servers.md"
- "self-hosting/dns-filtering.md"
- !ENV [NAV_INTERNET_BROWSING, "Internet Browsing"]:
- "tor.md"
- "desktop-browsers.md"

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 33.867 33.867"><g fill="none"><path fill="#68bc71" d="M16.933 0C11.703 0 5.393 1.214.2 3.887c0 5.773-.071 20.154 16.734 29.98C33.74 24.041 33.668 9.66 33.668 3.887 28.474 1.214 22.164 0 16.933 0z"/><path fill="#67b279" d="M16.916 33.857C.128 24.031.199 9.658.199 3.887 5.388 1.217 11.69.003 16.916 0z"/><path fill="#fff" d="m16.323 22.597 10.12-13.465c-.742-.586-1.393-.172-1.75.148l-.014.001-8.437 8.666-3.18-3.777c-1.516-1.73-3.577-.41-4.06-.062l7.32 8.49"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 33.867 33.867"><g fill="none"><path fill="#68bc71" d="M16.933 0C11.703 0 5.393 1.214.2 3.887c0 5.773-.071 20.154 16.734 29.98C33.74 24.041 33.668 9.66 33.668 3.887 28.474 1.214 22.164 0 16.933 0z"/><path fill="#67b279" d="M16.916 33.857C.128 24.031.199 9.658.199 3.887 5.388 1.217 11.69.003 16.916 0z"/><path fill="#fff" d="m16.323 22.597 10.12-13.465c-.742-.586-1.393-.172-1.75.148l-.014.001-8.437 8.666-3.18-3.777c-1.516-1.73-3.577-.41-4.06-.062l7.32 8.49"/></g></svg>

Before

Width:  |  Height:  |  Size: 523 B

After

Width:  |  Height:  |  Size: 524 B

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89 130"><defs><linearGradient id="a" x1="0%" x2="100%" y1="49.975%" y2="49.975%"><stop offset="0%" stop-color="#12B212"/><stop offset="100%" stop-color="#0F0"/></linearGradient></defs><g fill="none" fill-rule="nonzero"><path fill="url(#a)" d="M36.56 39.93C20.34 38.2 4 25.94 2.71 0c25.17 0 38.63 14.9 39.93 38.51 4.76-28.32 27.07-25 27.07-25 1.06 16.05-12.12 25.78-27.07 26.59-4.2-8.85-29.36-30.56-29.36-30.56a.07.07 0 0 0-.11.08s24.28 21.15 23.39 30.31"/><path fill="#980200" d="M44.16 129.93c-1.57-.09-16.22-.65-17.11-17.11-.72-10 7.18-17.37 7.18-27.08C32.44 61.53 0 64.53 0 85.74a19.94 19.94 0 0 0 5.83 14.14L30 124.06a19.94 19.94 0 0 0 14.14 5.83"/><path fill="red" d="M88.32 85.75c-.09 1.57-.65 16.22-17.11 17.11-10 .72-17.38-7.18-27.08-7.18-24.21 1.79-21.21 34.22 0 34.22a19.94 19.94 0 0 0 14.14-5.83L82.46 99.9a19.94 19.94 0 0 0 5.83-14.14"/><path fill="#980200" d="M44.16 41.59c1.57.09 16.22.65 17.11 17.11.72 10-7.18 17.37-7.18 27.08 1.79 24.21 34.22 21.21 34.22 0a19.94 19.94 0 0 0-5.83-14.14L58.3 47.45a19.94 19.94 0 0 0-14.14-5.83"/><path fill="red" d="M.08 85.75c.09-1.57.65-16.22 17.11-17.11 10-.72 17.38 7.18 27.08 7.18 24.21-1.82 21.21-34.22 0-34.22a19.94 19.94 0 0 0-14.14 5.83L5.94 71.61A19.94 19.94 0 0 0 .11 85.75"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89 130"><defs><linearGradient id="a" x1="0%" x2="100%" y1="49.975%" y2="49.975%"><stop offset="0%" stop-color="#12B212"/><stop offset="100%" stop-color="#0F0"/></linearGradient></defs><g fill="none" fill-rule="nonzero"><path fill="url(#a)" d="M36.56 39.93C20.34 38.2 4 25.94 2.71 0c25.17 0 38.63 14.9 39.93 38.51 4.76-28.32 27.07-25 27.07-25 1.06 16.05-12.12 25.78-27.07 26.59-4.2-8.85-29.36-30.56-29.36-30.56a.07.07 0 0 0-.11.08s24.28 21.15 23.39 30.31"/><path fill="#980200" d="M44.16 129.93c-1.57-.09-16.22-.65-17.11-17.11-.72-10 7.18-17.37 7.18-27.08C32.44 61.53 0 64.53 0 85.74a19.94 19.94 0 0 0 5.83 14.14L30 124.06a19.94 19.94 0 0 0 14.14 5.83"/><path fill="red" d="M88.32 85.75c-.09 1.57-.65 16.22-17.11 17.11-10 .72-17.38-7.18-27.08-7.18-24.21 1.79-21.21 34.22 0 34.22a19.94 19.94 0 0 0 14.14-5.83L82.46 99.9a19.94 19.94 0 0 0 5.83-14.14"/><path fill="#980200" d="M44.16 41.59c1.57.09 16.22.65 17.11 17.11.72 10-7.18 17.37-7.18 27.08 1.79 24.21 34.22 21.21 34.22 0a19.94 19.94 0 0 0-5.83-14.14L58.3 47.45a19.94 19.94 0 0 0-14.14-5.83"/><path fill="red" d="M.08 85.75c.09-1.57.65-16.22 17.11-17.11 10-.72 17.38 7.18 27.08 7.18 24.21-1.82 21.21-34.22 0-34.22a19.94 19.94 0 0 0-14.14 5.83L5.94 71.61A19.94 19.94 0 0 0 .11 85.75"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><mask id="holes"><rect x="-60" y="-60" width="120" height="120" fill="#fff"/><circle id="hole" cy="-40" r="3"/><use transform="rotate(72)" xlink:href="#hole"/><use transform="rotate(144)" xlink:href="#hole"/><use transform="rotate(216)" xlink:href="#hole"/><use transform="rotate(-72)" xlink:href="#hole"/></mask></defs><g id="logo" transform="matrix(.32254 0 0 .32254 16.933 16.933)"><g id="gear" mask="url(#holes)" stroke="#fff"><path d="m-31.172-33.813 26.496 74.189h9.3515l26.496-74.189h-9.7672l-16.729 47.589q-1.6625 4.5719-2.8055 8.6242-1.143 3.9484-1.8703 7.5851-0.72734-3.6367-1.8703-7.689-1.143-4.0523-2.8055-8.7281l-16.625-47.381z" fill="#fff" stroke-width="4.5117"/><circle transform="scale(-1,1)" r="43" fill="none" stroke-width="9"/><g id="cogs" transform="scale(-1,1)"><polygon id="cog" points="46 3 51 0 46 -3" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="3"/><g fill="#fff" stroke="#fff"><use transform="rotate(11.25)" xlink:href="#cog"/><use transform="rotate(22.5)" xlink:href="#cog"/><use transform="rotate(33.75)" xlink:href="#cog"/><use transform="rotate(45)" xlink:href="#cog"/><use transform="rotate(56.25)" xlink:href="#cog"/><use transform="rotate(67.5)" xlink:href="#cog"/><use transform="rotate(78.75)" xlink:href="#cog"/><use transform="rotate(90)" xlink:href="#cog"/><use transform="rotate(101.25)" xlink:href="#cog"/><use transform="rotate(112.5)" xlink:href="#cog"/><use transform="rotate(123.75)" xlink:href="#cog"/><use transform="rotate(135)" xlink:href="#cog"/><use transform="rotate(146.25)" xlink:href="#cog"/><use transform="rotate(157.5)" xlink:href="#cog"/><use transform="rotate(168.75)" xlink:href="#cog"/><use transform="scale(-1)" xlink:href="#cog"/><use transform="rotate(191.25)" xlink:href="#cog"/><use transform="rotate(202.5)" xlink:href="#cog"/><use transform="rotate(213.75)" xlink:href="#cog"/><use transform="rotate(225)" xlink:href="#cog"/><use transform="rotate(236.25)" xlink:href="#cog"/><use transform="rotate(247.5)" xlink:href="#cog"/><use transform="rotate(258.75)" xlink:href="#cog"/><use transform="rotate(-90)" xlink:href="#cog"/><use transform="rotate(-78.75)" xlink:href="#cog"/><use transform="rotate(-67.5)" xlink:href="#cog"/><use transform="rotate(-56.25)" xlink:href="#cog"/><use transform="rotate(-45)" xlink:href="#cog"/><use transform="rotate(-33.75)" xlink:href="#cog"/><use transform="rotate(-22.5)" xlink:href="#cog"/><use transform="rotate(-11.25)" xlink:href="#cog"/></g></g><g id="mounts" transform="scale(-1,1)"><polygon id="mount" points="-7 -42 0 -35 7 -42" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="6"/><g fill="#fff" stroke="#fff"><use transform="rotate(72)" xlink:href="#mount"/><use transform="rotate(144)" xlink:href="#mount"/><use transform="rotate(216)" xlink:href="#mount"/><use transform="rotate(-72)" xlink:href="#mount"/></g></g></g><mask><rect x="-60" y="-60" width="120" height="120" fill="#fff"/><circle cy="-40" r="3"/><use transform="rotate(72)" xlink:href="#hole"/><use transform="rotate(144)" xlink:href="#hole"/><use transform="rotate(216)" xlink:href="#hole"/><use transform="rotate(-72)" xlink:href="#hole"/></mask></g></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><mask id="holes"><rect x="-60" y="-60" width="120" height="120" fill="#fff"/><circle id="hole" cy="-40" r="3"/><use transform="rotate(72)" xlink:href="#hole"/><use transform="rotate(144)" xlink:href="#hole"/><use transform="rotate(216)" xlink:href="#hole"/><use transform="rotate(-72)" xlink:href="#hole"/></mask></defs><g id="logo" transform="matrix(.32254 0 0 .32254 16.933 16.933)"><g id="gear" mask="url(#holes)"><path d="m-31.172-33.813 26.496 74.189h9.3515l26.496-74.189h-9.7672l-16.729 47.589q-1.6625 4.5719-2.8055 8.6242-1.143 3.9484-1.8703 7.5851-0.72734-3.6367-1.8703-7.689-1.143-4.0523-2.8055-8.7281l-16.625-47.381z" stroke="#000" stroke-width="4.5117"/><circle transform="scale(-1,1)" r="43" fill="none" stroke="#000" stroke-width="9"/><g id="cogs" transform="scale(-1,1)"><polygon id="cog" points="46 -3 46 3 51 0" stroke="#000" stroke-linejoin="round" stroke-width="3"/><use transform="rotate(11.25)" xlink:href="#cog"/><use transform="rotate(22.5)" xlink:href="#cog"/><use transform="rotate(33.75)" xlink:href="#cog"/><use transform="rotate(45)" xlink:href="#cog"/><use transform="rotate(56.25)" xlink:href="#cog"/><use transform="rotate(67.5)" xlink:href="#cog"/><use transform="rotate(78.75)" xlink:href="#cog"/><use transform="rotate(90)" xlink:href="#cog"/><use transform="rotate(101.25)" xlink:href="#cog"/><use transform="rotate(112.5)" xlink:href="#cog"/><use transform="rotate(123.75)" xlink:href="#cog"/><use transform="rotate(135)" xlink:href="#cog"/><use transform="rotate(146.25)" xlink:href="#cog"/><use transform="rotate(157.5)" xlink:href="#cog"/><use transform="rotate(168.75)" xlink:href="#cog"/><use transform="scale(-1)" xlink:href="#cog"/><use transform="rotate(191.25)" xlink:href="#cog"/><use transform="rotate(202.5)" xlink:href="#cog"/><use transform="rotate(213.75)" xlink:href="#cog"/><use transform="rotate(225)" xlink:href="#cog"/><use transform="rotate(236.25)" xlink:href="#cog"/><use transform="rotate(247.5)" xlink:href="#cog"/><use transform="rotate(258.75)" xlink:href="#cog"/><use transform="rotate(-90)" xlink:href="#cog"/><use transform="rotate(-78.75)" xlink:href="#cog"/><use transform="rotate(-67.5)" xlink:href="#cog"/><use transform="rotate(-56.25)" xlink:href="#cog"/><use transform="rotate(-45)" xlink:href="#cog"/><use transform="rotate(-33.75)" xlink:href="#cog"/><use transform="rotate(-22.5)" xlink:href="#cog"/><use transform="rotate(-11.25)" xlink:href="#cog"/></g><g id="mounts" transform="scale(-1,1)"><polygon id="mount" points="7 -42 -7 -42 0 -35" stroke="#000" stroke-linejoin="round" stroke-width="6"/><use transform="rotate(72)" xlink:href="#mount"/><use transform="rotate(144)" xlink:href="#mount"/><use transform="rotate(216)" xlink:href="#mount"/><use transform="rotate(-72)" xlink:href="#mount"/></g></g><mask><rect x="-60" y="-60" width="120" height="120" fill="#fff"/><circle cy="-40" r="3"/><use transform="rotate(72)" xlink:href="#hole"/><use transform="rotate(144)" xlink:href="#hole"/><use transform="rotate(216)" xlink:href="#hole"/><use transform="rotate(-72)" xlink:href="#hole"/></mask></g></svg>

After

Width:  |  Height:  |  Size: 3.2 KiB