develop #221

Merged
samuel-p merged 67 commits from develop into main 2024-04-01 14:00:02 +00:00
30 changed files with 315 additions and 349 deletions
Showing only changes of commit 51f9a85aa0 - Show all commits

View file

@ -17,17 +17,17 @@
},
"content": {
"de": "<p>Seit Anfang 2020 betreibe ich einen öffentlichen Matrix-Server: <a href=\"https://matrix.sp-codes.de\">matrix.sp-codes.de</a> und eine öffentliche Element-Web Instanz: <a href=\"https://chat.sp-codes.de\" target=\"_blank\">chat.sp-codes.de</a></p><div class=\"text-center mt-2\"><a class=\"btn btn-primary\" target=\"_blank\" href=\"https://chat.sp-codes.de/#/register\">Jetzt registrieren</a></div>",
"en": ""
"en": "<p>Since the beginning of 2020 I run a public Matrix server: <a href=\"https://matrix.sp-codes.de\">matrix.sp-codes.de</a> and a public Element-Web instance: <a href=\"https://chat.sp-codes.de\" target=\"_blank\">chat.sp-codes.de</a></p><div class=\"text-center mt-2\"><a class=\"btn btn-primary\" target=\"_blank\" href=\"https://chat.sp-codes.de/#/register\">Register now</a></div>"
}
},
{
"title": {
"de": "Einstieg",
"en": ""
"en": "Getting started"
},
"content": {
"de": "<p>Hier findest du eine Artikelserie für einen einfachen Einstieg in Matrix:</p><ol><li><a href=\"/de/services/matrix/setup/part-1/\">Werde Teil der Matrix</a></li><li><a href=\"/de/services/matrix/setup/part-2/\">Sichere Chats mit Matrix</a></li></ol>",
"en": ""
"en": "<p>Here you will find an article series (German) for an easy start to Matrix:</p><ol><li><a href=\"/de/services/matrix/setup/part-1/\">Werde Teil der Matrix</a></li><li><a href=\"/de/services/matrix/setup/part-2/\">Sichere Chats mit Matrix</a></li></ol>"
}
},
{
@ -59,7 +59,7 @@
},
"content": {
"de": "<p>Seit Juli 2020 betreibe ich eine eigene Jitsi-Meet Instanz. Du findest sie unter <a href=\"https://jitsi.sp-codes.de\">jitsi.sp-codes.de</a>.</p><div class=\"text-center mt-2\"><a class=\"btn btn-primary\" target=\"_blank\" href=\"https://jitsi.sp-codes.de\">Meeting starten</a></div>",
"en": ""
"en": "<p>Since July 2020 I run my own Jitsi-Meet instance. You can find it at <a href=\"https://jitsi.sp-codes.de/\">jitsi.sp-codes.de</a>.</p><div class=\"text-center mt-2\"><a class=\"btn btn-primary\" target=\"_blank\" href=\"https://jitsi.sp-codes.de\">Start meeting</a></div>"
}
},
{
@ -68,7 +68,7 @@
},
"content": {
"de": "Wenn du einen eigenen Jitsi-Server für dich, deine Familie oder deine Firma betreiben willst, unterstütze ich dich gerne mit meiner Firma Ossrox damit. Schau dir gerne unser Angebot dazu auf unserer Webseite an oder schreib mir eine Nachricht dazu.",
"en": ""
"en": "If you want to have your own Jitsi server for you, your family or your company, I would be happy to support you with my company Ossrox. Please have a look at our services on our website or send me a message."
}
}
]
@ -91,7 +91,7 @@
},
"content": {
"de": "<p>Seit Mai 2021 betreibe ich eine öffentliche Mastodon-Instanz: <a href=\"https://social.sp-codes.de\">social.sp-codes.de</a></p><div class=\"text-center mt-2\"><a class=\"btn btn-primary\" target=\"_blank\" href=\"https://social.sp-codes.de/auth/sign_up\">Jetzt registrieren</a></div>",
"en": ""
"en": "<p>Since May 2021 I run a public Mastodon instance: <a href=\"https://social.sp-codes.de/\">social.sp-codes.de</a></p><div class=\"text-center mt-2\"><a class=\"btn btn-primary\" target=\"_blank\" href=\"https://social.sp-codes.de/auth/sign_up\">Register now</a></div>"
}
},
{
@ -100,7 +100,7 @@
},
"content": {
"de": "Wenn du einen eigenen Mastodon-Server für dich, deine Familie oder deine Firma betreiben willst, unterstütze ich dich gerne mit meiner Firma Ossrox damit. Schau dir gerne unser Angebot dazu auf unserer Webseite an oder schreib mir eine Nachricht dazu.",
"en": ""
"en": "If you want to have your own mastodon server for you, your family or your company, I would be happy to support you with my company Ossrox. Please have a look at our services on our website or send me a message."
}
}
]
@ -123,7 +123,7 @@
},
"content": {
"de": "<p>Seit August 2021 betreibe ich eine öffentliche PeerTube-Instanz: <a href=\"https://tube.sp-codes.de\">tube.sp-codes.de</a></p><div class=\"text-center mt-2\"><a class=\"btn btn-primary\" target=\"_blank\" href=\"https://tube.sp-codes.de/signup\">Jetzt registrieren</a></div>",
"en": ""
"en": "<p>Since August 2021 I run a public PeerTube instance: <a href=\"https://tube.sp-codes.de/\">tube.sp-codes.de</a></p><div class=\"text-center mt-2\"><a class=\"btn btn-primary\" target=\"_blank\" href=\"https://tube.sp-codes.de/signup\">Register now</a></div>"
}
},
{
@ -131,8 +131,8 @@
"url": "https://ossrox.org/store"
},
"content": {
"de": "Wenn du einen eigenen Peertube-Server betreiben willst, um deine Plattform für Videos und Live-Streams zu starten, unterstütze ich dich gerne mit meiner Firma Ossrox damit. Schau dir gerne unser Angebot dazu auf unserer Webseite an oder schreib mir eine Nachricht dazu.",
"en": ""
"de": "Wenn du einen eigenen PeerTube-Server betreiben willst, um deine Plattform für Videos und Live-Streams zu starten, unterstütze ich dich gerne mit meiner Firma Ossrox damit. Schau dir gerne unser Angebot dazu auf unserer Webseite an oder schreib mir eine Nachricht dazu.",
"en": "If you want to run your own PeerTube server to start your platform for videos and live streams, I would be happy to support you with my company Ossrox. Take a look at our offer on our website or write me a message."
}
}
]
@ -167,7 +167,7 @@
},
"content": {
"de": "<p>Seit Ende 2019 betreibe ich eine eigene Forgejo Instanz, in der ich meine Projekte verwalte. Hier geht's lang: <a href=\"https://git.sp-codes.de\">git.sp-codes.de</a></p><div class=\"text-center mt-2\"><a class=\"btn btn-primary\" target=\"_blank\" href=\"https://git.sp-codes.de/user/sign_up\">Jetzt registrieren</a></div>",
"en": ""
"en": "<p>Since the end of 2019, I have been running my own Forgejo instance where I manage my projects. This way: <a href=\"https://git.sp-codes.de\">git.sp-codes.de</a></p><div class=\"text-center mt-2\"><a class=\"btn btn-primary\" target=\"_blank\" href=\"https://git.sp-codes.de/user/sign_up\">Register now</a></div>"
}
},
{
@ -176,7 +176,7 @@
},
"content": {
"de": "Wenn du deine Projekte in einer eigenen Forgejo-, Gitea- oder GitLab-Instanz verwalten willst, unterstütze ich dich gerne mit meiner Firma Ossrox damit. Schau dir gerne unser Angebot dazu auf unserer Webseite an oder schreib mir eine Nachricht dazu.",
"en": ""
"en": "If you want to manage your projects in your own Forgejo, Gitea or GitLab instance, I will be happy to support you with my company Ossrox. Take a look at our offer on our website or write me a message."
}
}
]
@ -198,17 +198,17 @@
},
"content": {
"de": "<p>Seit Mitte 2019 stelle ich einen freien Captive Portal Check zur Verfügung: <a href=\"https://connectivitycheck.sp-codes.de/generate204\">https://connectivitycheck.sp-codes.de/generate204</a></p>",
"en": ""
"en": "<p>Since mid 2019 I provide a free Captive Portal Check: <a href=\"https://connectivitycheck.sp-codes.de/generate204\">https://connectivitycheck.sp-codes.de/generate204</a></p>"
}
},
{
"title": {
"de": "Einrichtung",
"en": ""
"en": "Setup"
},
"content": {
"de": "<p>Hier findest du einen Artikel, der dir die Einrichtung auf verschiedenen Geräten erklärt:</p><ul><li><a href=\"/de/services/connectivitycheck/setup/\">Captive Portal Check</a></li></ul>",
"en": ""
"de": "<p>Hier findest du einen Artikel, der dir die Einrichtung auf verschiedenen Geräten erklärt:</p><ul><li><a href=\"/de/services/connectivitycheck/setup/\">Einrichtung Captive Portal Check</a></li></ul>",
"en": "<p>Here you will find an article that explains how to set it up on various devices:</p><ul><li><a href=\"/en/services/connectivitycheck/setup/\">Setup Captive Portal Check</a></li></ul>"
}
}
]
@ -231,7 +231,7 @@
},
"content": {
"de": "<p>Seit Mai 2023 stelle ich ntfy zur freien Verfügung: <a href=\"https://ntfy.sp-codes.de\">ntfy.sp-codes.de</a></p><div>Gerne kannst du ntfy als Push-Provider für deine Apps nutzen, wenn du möchtest.</div>",
"en": ""
"en": "<p>Since May 2023 I provide ntfy for free: <a href=\"https://ntfy.sp-codes.de\">https://ntfy.sp-codes.de</a> You are welcome to use ntfy as push provider for your apps if you like.</p>"
}
}
]
@ -254,7 +254,7 @@
},
"content": {
"de": "<p>Seit Ende 2020 betreibe ich Etherpad: <a href=\"https://pad.sp-codes.de\">pad.sp-codes.de</a></p><div class=\"text-center mt-2\"><a class=\"btn btn-primary\" target=\"_blank\" href=\"https://pad.sp-codes.de\">Dokument öffnen</a></div>",
"en": ""
"en": "<p>I've been running Etherpad since the end of 2020: <a href=\"https://pad.sp-codes.de\">pad.sp-codes.de</a></p><div class=\"text-center mt-2\"><a class=\"btn btn-primary\" target=\"_blank\" href=\"https://pad.sp-codes.de\">Open document</a></div>"
}
}
]
@ -277,7 +277,7 @@
},
"content": {
"de": "<p>Seit August 2020 betreibe ich eine öffentliche Shields Instanz. Schau gerne mal rein: <a href=\"https://shields.sp-codes.de\">shields.sp-codes.de</a></p>",
"en": ""
"en": "<p>Since August 2020 I have been running a public Shields instance. Feel free to take a look: <a href=\"https://shields.sp-codes.de\">shields.sp-codes.de</a></p>"
}
}
]

View file

@ -18,4 +18,3 @@ module.exports = {
}
]
};

View file

@ -1,5 +1,6 @@
{
"menu": {
"title": {
"de": "Menü",
"en": "Menu"
},
@ -18,12 +19,10 @@
"stats": {
"de": "Statistiken",
"en": "Stats"
},
"supporters": {
"de": "Unterstützer:innen",
"en": "Supporters"
}
},
"state": {
"title": {
"de": "Status",
"en": "State"
},
@ -38,6 +37,12 @@
"maintenance": {
"de": "Wartung",
"en": "Maintenance"
}
},
"donations": {
"supporters": {
"de": "Unterstützende",
"en": "Supporters"
},
"date": {
"de": "Datum",
@ -87,4 +92,41 @@
"de": "Jahr",
"en": "Year"
}
},
"service": {
"overview": {
"de": "Zurück zur Übersicht",
"en": "Back to overview"
}
},
"article": {
"seriesParts": {
"de": "Alle Teile dieser Serie",
"en": "All parts of this series"
},
"relatedService": {
"de": "Zugehöriger Dienst",
"en": "Related Service"
},
"questions": {
"de": "Du hast eine Frage dazu?",
"en": "Do you have a question?"
},
"questionsContent": {
"de": "<p>Komm gerne in der Matrix-Gruppe vorbei und lass uns diskutieren. Ich freue mich auf dein Feedback!</p><a href=\"https://matrix.to/#/#sp-codes:matrix.sp-codes.de?via=matrix.sp-codes.de\">#sp-codes:matrix.sp-codes.de</a>",
"en": "<p>Join the Matrix group and let's discuss. I look forward to your feedback!</p><a href=\"https://matrix.to/#/#sp-codes:matrix.sp-codes.de?via=matrix.sp-codes.de\">#sp-codes:matrix.sp-codes.de</a>"
},
"aboutMe": {
"de": "Über mich",
"en": "About me"
},
"aboutMeContent": {
"de": "<p>Mein Name ist Samuel Philipp und ich bin ein Software Engineer aus Magdeburg. In meiner Freizeit hoste ich verschiedene freie <a href=\"/de/services/\">Dienste</a>. Hier schreibe ich Artikel rund um Sicherheit und Datenschutz.</p><a href=\"https://samuel-philipp.de\">Mehr erfahren</a>",
"en": "<p>My name is Samuel Philipp and I am a software engineer from Magdeburg, Germany. In my spare time, I host various free <a href=\"/en/services/\">services</a>. Here I write articles about security and privacy.</p><a href=\"https://samuel-philipp.com\">Read more</a>"
},
"yourOpinion": {
"de": "Schreib mir deine Meinung",
"en": "Send me your opinion"
}
}
}

View file

@ -2,10 +2,10 @@
<table class="table">
<thead>
<tr>
<th>{{strings.date[locale]}}</th>
<th>{{strings.via[locale]}}</th>
<th>{{strings.from[locale]}}</th>
<th>{{strings.amount[locale]}}</th>
<th>{{strings.donations.date[locale]}}</th>
<th>{{strings.donations.via[locale]}}</th>
<th>{{strings.donations.from[locale]}}</th>
<th>{{strings.donations.amount[locale]}}</th>
</tr>
</thead>
<tbody>
@ -28,7 +28,7 @@
</tbody>
<tfoot>
<tr>
<th colspan="3">{{strings.total[locale]}}</th>
<th colspan="3">{{strings.donations.total[locale]}}</th>
<th>{{donations[0].donations | sum | amount}} €</th>
</tr>
</tfoot>

View file

@ -5,10 +5,10 @@
<table class="table">
<thead>
<tr>
<th>{{strings.date[locale]}}</th>
<th>{{strings.via[locale]}}</th>
<th>{{strings.from[locale]}}</th>
<th>{{strings.amount[locale]}}</th>
<th>{{strings.donations.date[locale]}}</th>
<th>{{strings.donations.via[locale]}}</th>
<th>{{strings.donations.from[locale]}}</th>
<th>{{strings.donations.amount[locale]}}</th>
</tr>
</thead>
<tbody>
@ -31,7 +31,7 @@
</tbody>
<tfoot>
<tr>
<th colspan="3">{{strings.total[locale]}}</th>
<th colspan="3">{{strings.donations.total[locale]}}</th>
<th>{{year.donations | sum | amount}} €</th>
</tr>
</tfoot>

View file

@ -2,12 +2,12 @@
<table class="table">
<thead>
<tr>
<th>{{strings.name[locale]}}</th>
<th>{{strings.type[locale]}}</th>
<th>{{strings.provider[locale]}}</th>
<th>{{strings.location[locale]}}</th>
<th>{{strings.amount[locale]}} / {{strings.month[locale]}}</th>
<th>{{strings.amount[locale]}} / {{strings.year[locale]}}</th>
<th>{{strings.donations.name[locale]}}</th>
<th>{{strings.donations.type[locale]}}</th>
<th>{{strings.donations.provider[locale]}}</th>
<th>{{strings.donations.location[locale]}}</th>
<th>{{strings.donations.amount[locale]}} / {{strings.donations.month[locale]}}</th>
<th>{{strings.donations.amount[locale]}} / {{strings.donations.year[locale]}}</th>
</tr>
</thead>
<tbody>
@ -28,7 +28,7 @@
</tbody>
<tfoot>
<tr>
<th colspan="4">{{strings.total[locale]}}</th>
<th colspan="4">{{strings.donations.total[locale]}}</th>
<th>{{expenses | sum | amount}} €</th>
<th>{{expenses | sum | year | amount}} €</th>
</tr>

View file

@ -16,7 +16,7 @@ layout: base.njk
<div class="col-lg-4 col-12">
{% if series %}
<div class="tab-card">
<div class="title">Alle Teile dieser Serie</div>
<div class="title">{{ strings.article.seriesParts[locale] }}</div>
<div class="card">
{%- for post in collections.all %}
{% if post.data.series == series %}
@ -34,7 +34,7 @@ layout: base.njk
{% set service = services | getServiceById(service) %}
{% if service %}
<div class="tab-card">
<div class="title">Zugehöriger Dienst</div>
<div class="title">{{ strings.article.relatedService[locale] }}</div>
<div class="card service">
<a class="link" {% if service.beta !=true %} href="/{{locale}}/services/{{service.id}}" {% endif %}></a>
{% if service.beta == true %}
@ -48,7 +48,7 @@ layout: base.njk
{% if service.status %}
<div class="mb-2">
<a href="https://status.sp-codes.de" target="_blank">
<img alt="{{strings.state[locale]}}"
<img alt="{{strings.state.title[locale]}}"
src="https://status.sp-codes.de/api/badge/1/status?label=Status&upLabel=Online&downLabel=Ausfall&maintenanceLabel=Wartung">
</a>
</div>
@ -59,27 +59,15 @@ layout: base.njk
</div>
{% endif %}
<div class="tab-card">
<div class="title">Du hast eine Frage dazu?</div>
<div class="card">
<p>
Komm gerne in der Matrix-Gruppe vorbei und lass uns diskutieren. Ich freue mich auf dein Feedback!
</p>
<a href="https://matrix.to/#/#sp-codes:matrix.sp-codes.de?via=matrix.sp-codes.de">#sp-codes:matrix.sp-codes.de</a>
</div>
<div class="title">{{ strings.article.questions[locale] }}</div>
<div class="card">{{ strings.article.questionsContent[locale] | safe }}</div>
</div>
<div class="tab-card">
<div class="title">Über mich</div>
<div class="card">
<p>
Mein Name ist Samuel Philipp und ich bin ein Software Engineer aus Magdeburg. In meiner Freizeit
hoste ich verschiedene freie <a href="/de/services/">Dienste</a>. Hier schreibe ich Artikel rund um
Sicherheit und Datenschutz.
</p>
<a href="https://samuel-philipp.de">Mehr erfahren</a>
</div>
<div class="title">{{ strings.article.aboutMe[locale] }}</div>
<div class="card">{{ strings.article.aboutMeContent[locale] | safe }}</div>
</div>
<div class="tab-card">
<div class="title">Schreib mir deine Meinung</div>
<div class="title">{{ strings.article.yourOpinion[locale] }}</div>
<div class="card">
<div class="d-flex justify-content-center flex-wrap my-3 contact-links">
<div class="m-2"><a href="mailto:mail@sp-codes.de">

View file

@ -39,7 +39,7 @@ title: sp-codes
<body>
<nav class="nav menu border-bottom">
<div class="toggle">
<label for="menu" class="m-0"><span class="i-bars i-fw me-2"></span>{{ strings.menu[locale] }}</label>
<label for="menu" class="m-0"><span class="i-bars i-fw me-2"></span>{{ strings.menu.title[locale] }}</label>
<div class="flex-grow-1"></div>
@ -92,14 +92,14 @@ title: sp-codes
</div>
<div class="flex-sm-grow-1"></div>
<div class="d-flex justify-content-sm-start flex-wrap">
<div class="me-4"><a href="/{{locale}}/imprint"><span class="i-info-circle me-2"></span>{{strings.imprint[locale]}}</a>
<div class="me-4"><a href="/{{locale}}/imprint"><span class="i-info-circle me-2"></span>{{strings.menu.imprint[locale]}}</a>
</div>
<div class="me-4"><a href="/{{locale}}/privacy"><span class="i-user-secret me-2"></span>{{strings.privacy[locale]}}</a>
<div class="me-4"><a href="/{{locale}}/privacy"><span class="i-user-secret me-2"></span>{{strings.menu.privacy[locale]}}</a>
</div>
<div class="me-4"><a target="_blank" href="https://git.sp-codes.de/samuel-p/sp-codes.de"><span
class="i-code me-2"></span>{{strings.code[locale]}}</a></div>
class="i-code me-2"></span>{{strings.menu.code[locale]}}</a></div>
<div><a target="_blank" href="https://umami.sp-codes.de/share/gaJcXEyG/sp-codes.de"><span
class="i-chart-line me-2"></span>{{strings.stats[locale]}}</a></div>
class="i-chart-line me-2"></span>{{strings.menu.stats[locale]}}</a></div>
</div>
</div>
</body>

View file

@ -4,8 +4,8 @@ layout: base.njk
{% set service = services | getServiceById(key) %}
{% if service %}
<p class="small"><a href="/{{locale}}/services/">Zurück zur Übersicht</a></p>
<h1 class="clearfix"><i class="{{service.icon}}"></i> {{title}} <a href="https://status.sp-codes.de" class="float-end"><img alt="{{strings.state[locale]}}" src="https://status.sp-codes.de/api/badge/1/status?label=Status&upLabel=Online&downLabel=Ausfall&maintenanceLabel=Wartung"></a></h1>
<p class="small"><a href="/{{locale}}/services/">{{ strings.service.overview[locale] }}</a></p>
<h1 class="clearfix"><i class="{{service.icon}}"></i> {{title}} <a href="https://status.sp-codes.de" class="float-end"><img alt="{{strings.state.title[locale]}}" src="https://status.sp-codes.de/api/badge/{{service.status}}/status?label={{strings.state.title[locale]}}&upLabel={{strings.state.operational[locale]}}&downLabel={{strings.state.outage[locale]}}&maintenanceLabel={{strings.state.maintenance[locale]}}"></a></h1>
<div class="row">
<div class="col-lg-8 col-12">

View file

@ -1,10 +0,0 @@
---
layout: base.njk
---
<a class="float-end mt-3" href="https://status.sp-codes.de" target="_blank"><strong><i class="i-heartbeat me-2"></i>Status</strong></a>
{{ content | safe }}
<div class="row justify-content-center">
{% include "services-extended.html" %}
</div>

View file

@ -12,7 +12,7 @@
{% if service.status %}
<div class="mb-2">
<a href="https://status.sp-codes.de" target="_blank">
<img alt="{{strings.state[locale]}}" src="https://status.sp-codes.de/api/badge/{{service.status}}/status?label={{strings.state[locale]}}&upLabel={{strings.operational[locale]}}&downLabel={{strings.outage[locale]}}&maintenanceLabel={{strings.maintenance[locale]}}">
<img alt="{{strings.state.title[locale]}}" src="https://status.sp-codes.de/api/badge/{{service.status}}/status?label={{strings.state.title[locale]}}&upLabel={{strings.state.operational[locale]}}&downLabel={{strings.state.outage[locale]}}&maintenanceLabel={{strings.state.maintenance[locale]}}">
</a>
</div>
{% endif %}

View file

@ -1,15 +0,0 @@
{%- for service in services %}
<div class="col-12 col-md-6 col-lg-4 p-3">
<div class="card service flat">
<a class="link" href="/{{locale}}/services{% if service.beta != true %}/{{service.id}}{% endif %}"></a>
<div class="inner" href="/{{locale}}/services{% if service.beta != true %}/{{service.id}}{% endif %}">
{% if service.beta == true %}
<div class="beta">TEST-PHASE</div>
{% endif %}
<i class="{{service.icon}} i-2x i-fw"></i>
<h2 class="mt-2">{{service.name}}{% if service.url %} <a href="{{service.url}}" target="_blank"><i
class="i-external-link"></i></a>{% endif %}</h2>
</div>
</div>
</div>
{%- endfor %}

View file

@ -28,8 +28,8 @@ eleventyNavigation:
Ich schicke dir dann schnellstmöglich meine Bankverbindung zu. Ganz besonders freue ich mich auch über
einen Dauerauftrag.
<div class="mt-3 text-center">
<img alt="Banküberweisung {{ strings.supporters[locale] }}"
src="https://shields.sp-codes.de/badge/{{ strings.supporters[locale] }}-{{ donations | banktransfers }}-active">
<img alt="Banküberweisung {{ strings.donations.supporters[locale] }}"
src="https://shields.sp-codes.de/badge/{{ strings.donations.supporters[locale] }}-{{ donations | banktransfers }}-active">
</div>
</div>
</div>
@ -38,8 +38,8 @@ eleventyNavigation:
<div>Wer mir etwas Bargeld zukommen lassen möchte, darf das gerne an die Adresse aus dem <a
href="/{{locale}}/imprint">Impressum</a> senden.
<div class="mt-3 text-center">
<img alt="Bargeld {{ strings.supporters[locale] }}"
src="https://shields.sp-codes.de/badge/{{ strings.supporters[locale] }}-{{ donations | cash }}-inactive">
<img alt="Bargeld {{ strings.donations.supporters[locale] }}"
src="https://shields.sp-codes.de/badge/{{ strings.donations.supporters[locale] }}-{{ donations | cash }}-inactive">
</div>
</div>
</div>

View file

@ -1,5 +1,5 @@
---
layout: services.njk
layout: base.njk
key: services
title: Dienste
eleventyNavigation:
@ -8,6 +8,7 @@ eleventyNavigation:
icon: i-server
order: 2
---
<a class="float-end mt-3" href="https://status.sp-codes.de" target="_blank"><strong><i class="i-heartbeat me-2"></i>Status</strong></a>
<h1><i class="i-server"></i> Dienste</h1>
<p>In meiner Freizeit stelle ich eine Vielzahl von Open-Source-Diensten zur Verfügung, die kostenlos und werbe-frei
genutzt werden können. Hier findest du einen Überblick über die verschiedenen Services sowie entsprechende
@ -24,3 +25,7 @@ eleventyNavigation:
<h3 class="text-center"><a href="https://matrix.to/#/#sp-codes:matrix.sp-codes.de?via=matrix.sp-codes.de">#sp-codes:matrix.sp-codes.de</a>
</h3>
<div class="row justify-content-center">
{% include "services-extended.html" %}
</div>

View file

@ -10,6 +10,3 @@ Ein Captive Portal ist eine Anmeldeseite in öffentlichen WLAN-Netzwerken, um de
* [Captive Portal Wikipedia](https://de.wikipedia.org/wiki/Captive_Portal)
* [Quellcode](https://git.sp-codes.de/samuel-p/connectivity-check)
* [Docker Image](https://hub.docker.com/r/samuelph/connectivity-check)
* [Setup on Android](https://android.stackexchange.com/a/186995/288049)
* [Setup on Ubuntu](https://askubuntu.com/q/1167177/920103)
* [Captive Portal Kuketz Blog](https://www.kuketz-blog.de/android-captive-portal-check-204-http-antwort-von-captiveportal-kuketz-de/)

View file

@ -68,3 +68,9 @@ sudo service NetworkManager restart
## Firefox
Tippe [about:config](about:config) in die Adresszeile von Firefox und suche anschließend nach `captivedetect.canonicalURL` und `network.connectivity-service`. Setze die URL-Werte auf `https://connectivitycheck.sp-codes.de/generate204`, die Domain-Werte auf `connectivitycheck.sp-codes.de`. Das war es schon.
## Quellen
* [Setup on Android](https://android.stackexchange.com/a/186995/288049)
* [Setup on Ubuntu](https://askubuntu.com/q/1167177/920103)
* [Captive Portal Kuketz Blog](https://www.kuketz-blog.de/android-captive-portal-check-204-http-antwort-von-captiveportal-kuketz-de/)

View file

@ -7,7 +7,7 @@ Mastodon ist ein verteilter Mikroblogging-Dienst, ähnlich wie Twitter. Allerdin
Da Mastodon auf offenen Web-Protokollen und freier, quelloffener Software basiert, kann auch mit anderen Diensten, wie Pleroma, PeerTube, Pixelfed, Friendica oder Hubzilla kommuniziert werden. Nutzende können Text-, Bild-, Videonachrichten oder Umfragen also dienst- und serverübergreifend teilen.
Melde dich gerne auf meinem Server an oder suche dir einen aus den unten verlinkten Listen heraus. Ich freue mich auf deine Nachricht an [@samuel_p@matrix.sp-codes.de](https://social.sp-codes.de/@samuel_p).
Melde dich gerne auf meinem Server an oder suche dir einen aus den unten verlinkten Listen heraus. Ich freue mich auf deine Nachricht an [@samuel_p@social.sp-codes.de](https://social.sp-codes.de/@samuel_p).
## Server-Details

View file

@ -3,16 +3,9 @@ layout: service.njk
key: matrix
title: Matrix
---
[Matrix](https://matrix.org) ist eine moderne, quelloffene Software für dezentrale Kommunikation (wie E-Mail). Matrix bietet von Haus aus Sprach- und Videoanrufe, inklusive Ende-zu-Ende-Verschlüsselung und vieles mehr. Das Entscheidende ist, dass es nicht den einen Matrix-Server gibt, den alle Nutzende verwenden müssen, wie das beispielsweise bei WhatsApp, Telegram und vielen anderen verbreiteten Messengern der Fall ist.
[Matrix](https://matrix.org) ist eine moderne, quelloffene Software für dezentrale Kommunikation (wie E-Mail). Matrix
bietet von Haus aus Sprach- und Videoanrufe, inklusive Ende-zu-Ende-Verschlüsselung und vieles mehr. Das Entscheidende
ist, dass es nicht den einen Matrix-Server gibt, den alle Nutzende verwenden müssen, wie das beispielsweise bei
WhatsApp, Telegram und vielen anderen verbreiteten Messengern der Fall ist.
Da Matrix dezentral funktioniert, können sich alle einen öffentlichen Server aussuchen oder ihren eigenen
erstellen und trotzdem mit allen Personen kommunizieren, nicht nur mit denen, die den eigenen Server nutzen. Die
verschickten Nachrichten werden so nur auf den beteiligten Servern gespeichert. Auch die Anrufe laufen nur über die
beteiligten Server.
Da Matrix dezentral funktioniert, können sich alle einen öffentlichen Server aussuchen oder ihren eigenen erstellen und trotzdem mit allen Personen kommunizieren, nicht nur mit denen, die den eigenen Server nutzen. Die verschickten Nachrichten werden so nur auf den beteiligten Servern gespeichert. Auch die Anrufe laufen nur über die beteiligten Server.
Melde dich gerne auf meinem Server an oder suche dir einen aus den unten verlinkten Listen heraus. Ich freue mich auf deine Nachricht an <a href="https://matrix.to/#/@samuel-p:matrix.sp-codes.de?via=matrix.sp-codes.de" target="_blank">@samuel-p:matrix.sp-codes.de</a>.

View file

@ -26,8 +26,8 @@ eleventyNavigation:
<div>If you want to transfer some money to me, just write me a short <a href="/en/contact">message</a>. I
will then send you my bank details as soon as possible. I am especially happy about a standing order.
<div class="mt-3 text-center">
<img alt="Bank transfer {{ strings.supporters[locale] }}"
src="https://shields.sp-codes.de/badge/{{ strings.supporters[locale] }}-{{ donations | banktransfers }}-active">
<img alt="Bank transfer {{ strings.donations.supporters[locale] }}"
src="https://shields.sp-codes.de/badge/{{ strings.donations.supporters[locale] }}-{{ donations | banktransfers }}-active">
</div>
</div>
</div>
@ -36,8 +36,8 @@ eleventyNavigation:
<div>If you want to send me some cash, feel free to send it to the address provided in the <a
href="/en/imprint">imprint</a>.
<div class="mt-3 text-center">
<img alt="Cash {{ strings.supporters[locale] }}"
src="https://shields.sp-codes.de/badge/{{ strings.supporters[locale] }}-{{ donations | cash }}-inactive">
<img alt="Cash {{ strings.donations.supporters[locale] }}"
src="https://shields.sp-codes.de/badge/{{ strings.donations.supporters[locale] }}-{{ donations | cash }}-inactive">
</div>
</div>
</div>

View file

@ -1,5 +1,5 @@
---
layout: services.njk
layout: base.njk
key: services
title: Services
eleventyNavigation:
@ -8,6 +8,7 @@ eleventyNavigation:
icon: i-server
order: 2
---
<a class="float-end mt-3" href="https://status.sp-codes.de" target="_blank"><strong><i class="i-heartbeat me-2"></i>Status</strong></a>
<h1><i class="i-server"></i> Services</h1>
<p>In my spare time, I provide various open source services that can be used for free and without advertising. Here you
will find an overview of the different services as well as descriptions and instructions on how to use them. All
@ -23,3 +24,7 @@ eleventyNavigation:
<h3 class="text-center"><a href="https://matrix.to/#/#sp-codes:matrix.sp-codes.de?via=matrix.sp-codes.de">#sp-codes:matrix.sp-codes.de</a>
</h3>
<div class="row justify-content-center">
{% include "services-extended.html" %}
</div>

View file

@ -1,75 +1,12 @@
---
layout: base.njk
layout: service.njk
key: connectivitycheck
title: Captive Portal Check
---
# <i class="i-wifi"></i> Captive Portal Check
A captive portal is a login page in public WLAN networks to restrict Internet access to the approval of certain terms of use. When you see a login page on a public network, your device uses a captive portal check. This allows the device to find out whether you have direct Internet access or not. In Android, for example, your device sends a request to a Google server.
Since mid 2019 I provide a free Captive Portal Check: [https://connectivitycheck.sp-codes.de/generate204](https://connectivitycheck.sp-codes.de/generate204) You are welcome to use it.
## Setup in Android
To change the Captive Portal Check in Android, you need a terminal app or a connection via ADB to a computer.
To use `http` you can run the following commands with the respective method:
```
# settings put global captive_portal_use_https 0
# settings put global captive_portal_http_url "http://connectivitycheck.sp-codes.de/generate204"
```
To use `https` you can use the following two commands:
```
# settings put global captive_portal_use_https 1
# settings put global captive_portal_https_url "https://connectivitycheck.sp-codes.de/generate204"
```
Maybe you have to reboot your phone after updating the settings.
If you are using AFWall+ you need to give access to _[1000] Android-System_ and in some cases _[10040] CaptivePortalLogin_ to make it work.
## Setup in Ubuntu
In Ubuntu, the file `/etc/NetworkManager/NetworkManager.conf` must be changed. Add or change the following lines:
```
[connectivity]
uri=https://connectivitycheck.sp-codes.de/generate204
```
Restart the network-manager:
```
sudo service network-manager restart
```
## Setup in Fedora
In Fedora, the file `/etc/NetworkManager/NetworkManager.conf` must be changed. Add or change the following lines:
```
[connectivity]
uri=https://connectivitycheck.sp-codes.de/generate204
```
Restart the _NetworkManager_:
```
sudo service NetworkManager restart
```
## Setup in Firefox
Type [about:config](about:config) in the Firefox address bar and search for `captivedetect.canonicalURL` and `network.connectivity-service`. Set the URL values to `https://connectivitycheck.sp-codes.de/generate204`, the domain values to `connectivitycheck.sp-codes.de`. That's it.
## More useful links
* [Captive Portal Wikipedia](https://en.wikipedia.org/wiki/Captive_portal)
* [Source code](https://git.sp-codes.de/samuel-p/connectivity-check)
* [Docker Image](https://hub.docker.com/r/samuelph/connectivity-check)
* [Setup on Android](https://android.stackexchange.com/a/186995/288049)
* [Setup on Ubuntu](https://askubuntu.com/q/1167177/920103)
* [Captive Portal Kuketz Blog](https://www.kuketz-blog.de/android-captive-portal-check-204-http-antwort-von-captiveportal-kuketz-de/)

View file

@ -0,0 +1,74 @@
---
layout: article.njk
title: Setup Captive Portal Check
service: connectivitycheck
tags:
- Tutorial
- Captive Portal Check
---
# Setup Captive Portal Check
In this article, you will learn how to set up your own captive portal check on different devices.
## Android
To change the Captive Portal Check in Android, you need a terminal app or a connection via ADB to a computer.
To use `http` you can run the following commands with the respective method:
```
# settings put global captive_portal_use_https 0
# settings put global captive_portal_http_url "http://connectivitycheck.sp-codes.de/generate204"
```
To use `https` you can use the following two commands:
```
# settings put global captive_portal_use_https 1
# settings put global captive_portal_https_url "https://connectivitycheck.sp-codes.de/generate204"
```
Maybe you have to reboot your phone after updating the settings.
If you are using AFWall+ you need to give access to _[1000] Android-System_ and in some cases _[10040] CaptivePortalLogin_ to make it work.
## Ubuntu
In Ubuntu, the file `/etc/NetworkManager/NetworkManager.conf` must be changed. Add or change the following lines:
```
[connectivity]
uri=https://connectivitycheck.sp-codes.de/generate204
```
Restart the network-manager:
```
sudo service network-manager restart
```
## Fedora
In Fedora, the file `/etc/NetworkManager/NetworkManager.conf` must be changed. Add or change the following lines:
```
[connectivity]
uri=https://connectivitycheck.sp-codes.de/generate204
```
Restart the _NetworkManager_:
```
sudo service NetworkManager restart
```
## Firefox
Type [about:config](about:config) in the Firefox address bar and search for `captivedetect.canonicalURL` and `network.connectivity-service`. Set the URL values to `https://connectivitycheck.sp-codes.de/generate204`, the domain values to `connectivitycheck.sp-codes.de`. That's it.
## Sources
* [Setup on Android](https://android.stackexchange.com/a/186995/288049)
* [Setup on Ubuntu](https://askubuntu.com/q/1167177/920103)
* [Captive Portal Kuketz Blog](https://www.kuketz-blog.de/android-captive-portal-check-204-http-antwort-von-captiveportal-kuketz-de/)

View file

@ -1,17 +1,13 @@
---
layout: base.njk
layout: service.njk
key: etherpad
title: Etherpad
---
# <i class="i-pencil-square"></i> Etherpad
Etherpad is a web-based collaboration platform that allows users to edit text documents together in real time. Multiple users can simultaneously access the same Etherpad document, make changes, and see what others are writing. Etherpad provides a simple and effective way for teamwork, brainstorming, collaborative writing, and more, without version conflicts.
Etherpad is also embedded in Jitsi Meet. This allows for shared notes to be captured during a meeting.
__I've been running Etherpad since the end of 2020: [https://pad.sp-codes.de](https://pad.sp-codes.de)__ Feel free to use Etherpad for your notes as well.
## More useful links
* [Etherpad Webseite](https://etherpad.org)
* [Quellcode von Etherpad](https://github.com/ether/etherpad-lite)
* [Etherpad Website](https://etherpad.org)
* [Quell code of Etherpad](https://github.com/ether/etherpad-lite)

View file

@ -1,19 +1,15 @@
---
layout: base.njk
layout: service.njk
key: forgejo
title: Forgejo
---
# <i class="i-git"></i> Forgejo
Forgejo is a simple code hosting platform like GitHub or GitLab. It is open source and under continuous development. __Since the end of 2019 I have my own Forgejo instance, to manage my projects.__ For example this website. Feel free to have a look at the source code and leave some feedback.
In addition to Forgejo, I also run Woodpecker, a platform that extends Forgejo with many continuous integration features, such as automated builds and deploys.
Forgejo is a simple code hosting platform like GitHub or GitLab. It is open source and under continuous development. I like to use Forgejo myself to manage my own projects. For example, this website. Take a look at the source code and leave me some feedback: [git.sp-codes.de/samuel-p/sp-codes.de](https://git.sp-codes.de/samuel-p/sp-codes.de)
Feel free to visit and sign up if you're interested in developing a project. The registration is open since March 2020.
__To get to Forgejo click here: [git.sp-codes.de](https://git.sp-codes.de)__
## Server details
__If you want to check out Woodpecker, click here: [ci.sp-codes.de](https://ci.sp-codes.de)__
In addition to Forgejo, I also run Forgejo Actions, an add-on that extends the platform with numerous continuous integration functions. This makes it possible to create and deploy builds automatically. Forgejo Actions also enables automated tests. This allows changes to be continuously monitored in real time and errors to be detected at an early stage.
## More useful links

View file

@ -1,26 +1,21 @@
---
layout: base.njk
layout: service.njk
key: jitsi
title: Jitsi Meet
---
# <i class="i-users"></i> Jitsi Meet
Jitsi-Meet is a platform for video conferences. You can start fully encrypted video chats without registration. Additionally, Jitsi-Meet offers the possibility to share the screen with other participants, invite new users with a simple link and send messages in the integrated chat.
__Since July 2020 I run my own Jitsi-Meet instance. You can find it at [jitsi.sp-codes.de](https://jitsi.sp-codes.de/).__
Enjoy using the instance with other people. If things don't run smoothly here, try the Jitsi Random Redirect. This will redirect you to a random Jitsi instance: [jitsi.random-redirect.de](https://jitsi.random-redirect.de)
You are welcome to use the instance with other people.
## Server details
If you want to have your own Jitsi server for you, your family or your company, I would be happy to support you with my company <a href="https://ossrox.org" target="_blank">Ossrox</a>. Please have a look at our services on our website or send me a message.
Jitsi does not only offer the usual functions of other video conferencing tools such as changing the camera background, noise suppression and reactions, but also some additional features.
<div class="text-center mb-3">
<a href="https://ossrox.org/store/jitsi" target="_blank">
<img class="ossrox" src="/img/ossrox.svg" alt="Ossrox">
</a>
</div>
With the Jitsi-Meet instance provided, meetings can be streamed live directly on platforms such as YouTube or PeerTube. It is also possible to record web meetings locally. External videos can also be viewed together during a conference. Thanks to the direct integration of Etherpad, shared notes can be created during meetings.
## More useful links
* [Jitsi Website](https://jitsi.org/)
* [Source code of Jitsi](https://github.com/jitsi/jitsi-meet)
* [List of public Instances](https://github.com/jitsi/jitsi-meet/wiki/Jitsi-Meet-Instances)
* [Jitsi Random Redirect](https://jitsi.random-redirect.de/)

View file

@ -1,29 +1,17 @@
---
layout: base.njk
layout: service.njk
key: mastodon
title: Mastodon
---
# <i class="i-mastodon"></i> Mastodon
Mastodon is a federated microblogging service, similar to Twitter. However, the service is not based on a central platform, but consists of many, decentralized instances that are run independently by private individuals, associations or other organizations. This means that users are not locked into a single provider, but are free to decide with whom they share what information.
Since Mastodon is based on open web protocols and free, open source software, it is also possible to communicate with other services such as Pleroma, PeerTube, Pixelfed, Friendica or Hubzilla. Users can share text, image, video messages or polls across services and servers.
__Since May 2021 I run a public Mastodon instance: [social.sp-codes.de](https://social.sp-codes.de/)__
Feel free to register on my server or pick one from the lists linked below. I'm looking forward to your message to [@samuel_p@social.sp-codes.de](https://social.sp-codes.de/@samuel_p).
Feel free to read the server rules and more information [here](https://social.sp-codes.de/about/more) (German). Feel free to register on my server or pick one from the lists linked below. I'm looking forward to your message to [@samuel_p@matrix.sp-codes.de](https://social.sp-codes.de/@samuel_p).
## Server details
<div class="text-center mb-3">
<a class="card d-inline-block font-weight-bold" target="_blank" href="https://social.sp-codes.de/about">Register now</a>
</div>
If you want to have your own mastodon server for you, your family or your company, I would be happy to support you with my company <a href="https://ossrox.org" target="_blank">Ossrox</a>. Please have a look at our services on our website or send me a message.
<div class="text-center mb-3">
<a href="https://ossrox.org/store/mastodon" target="_blank">
<img class="ossrox" src="/img/ossrox.svg" alt="Ossrox">
</a>
</div>
Feel free to read the server rules and more information [here](https://social.sp-codes.de/about/more) (German). There you will also find an overview of all muted and blocked servers.
## Interesting Accounts

View file

@ -1,43 +1,23 @@
---
layout: base.njk
layout: service.njk
key: matrix
title: Matrix
---
[Matrix](https://matrix.org) is a modern, open source software for decentralized communication (like e-mail). Matrix offers end-to-end encryption, voice and video calls and much more. However, the most important thing is that there is not one Matrix server that all users have to use, like WhatsApp, Telegram and many other popular messengers.
Users can choose a public server or create their own and still communicate with all Matrix users, not just those on their own server. The messages are only stored on the participating servers. Calls also go only through the participating servers.
__Since the beginning of 2020 I run a public Matrix server: [matrix.sp-codes.de](https://matrix.sp-codes.de/) And a public Element-Web instance: [chat.sp-codes.de](https://chat.sp-codes.de/)__
Feel free to register on my server or choose one from the lists linked below. I look forward to your message to [@samuel-p:matrix.sp-codes.de](https://matrix.to/#/@samuel-p:matrix.sp-codes.de?via=matrix.sp-codes.de).
You can read the server rules [here](https://matrix.sp-codes.de/_matrix/consent) (German). Feel free to create an account on my server or choose one from the lists linked below. I look forward to hear from you [@samuel-p:matrix.sp-codes.de](https://matrix.to/#/@samuel-p:matrix.sp-codes.de?via=matrix.sp-codes.de).
## Server details
<div class="text-center mb-3">
<a class="card d-inline-block font-weight-bold" target="_blank" href="https://chat.sp-codes.de/#/register">Register now</a>
</div>
You can read the server rules [here](https://matrix.sp-codes.de/_matrix/consent) (German).
If you want to have your own matrix server for you, your family or your company, I would be happy to support you with my company <a href="https://ossrox.org" target="_blank">Ossrox</a>. Please have a look at our services on our website or send me a message.
**The limit for file uploads is 100 MB.** For larger files, please use a file sharing service.
<div class="text-center mb-3">
<a href="https://ossrox.org/store/matrix" target="_blank">
<img class="ossrox" src="/img/ossrox.svg" alt="Ossrox">
</a>
</div>
Old messages and files are automatically deleted in order to maintain the performance of the server and save disk space. **Messages are deleted after one year by default.** Depending on the app, you can also set a shorter period in the room settings. **Uploaded files are deleted from the server one year after the last access.**
Here you will find an article series (German) for an easy start to Matrix:
<div class="row justify-content-center">
<div class="col-12 col-md-10 col-lg-8">
<div class="card-list">
<div class="card">
<a href="/de/services/matrix/setup/part-1/">Part 1: Werde Teil der Matrix</a>
</div>
<div class="card">
<a href="/de/services/matrix/setup/part-2/">Part 2: Sichere Chats mit Matrix</a>
</div>
</div>
</div>
</div>
The Matrix server supports sliding sync, a beta feature of Matrix that significantly improves synchronization between client and server. Clients such as Element X already use this function.
## Why Matrix?

View file

@ -1,16 +1,12 @@
---
layout: base.njk
layout: service.njk
key: ntfy
title: ntfy
---
# <i class="i-cloud-download"></i> ntfy
ntfy is a versatile tool for notification about various events. It also supports UnifiedPush, an open protocol for real-time notifications.
To use ntfy as a central app for notifications, the app must first be installed on the phone. Then, apps that support UnifiedPush, such as Element, Fluffychat or Tusky can use ntfy as a push provider. This way, not all apps need to keep a connection open to the server and are more energy efficient as a result. In order for you to use my server, you must first set it up in the settings.
__Since May 2023 I provide ntfy for free: [https://ntfy.sp-codes.de](https://ntfy.sp-codes.de)__ You are welcome to use ntfy as push provider for your apps if you like.
## More useful links
* [ntfy Website](https://ntfy.sh)

View file

@ -1,21 +1,19 @@
---
layout: base.njk
key: mastodon
title: Mastodon
layout: service.njk
key: peertube
title: PeerTube
---
# <i class="i-peertube"></i> PeerTube
PeerTube is a network of several federated, interoperable video hosting providers, comparable to YouTube. However, the service is not based on a central platform, but consists of many, decentralized instances that are run independently by private individuals, associations or other organizations. This means that users are not locked into a single provider, but are free to decide with whom they share what information.
Since PeerTube is based on open web protocols and free, open source software, it is also possible to communicate with other services such as Mastodon, Pleroma, Pixelfed, Friendica or Hubzilla. Users can share text, image, video messages or polls across services and servers.
__Since August 2021 I run a public PeerTube instance: [tube.sp-codes.de](https://tube.sp-codes.de/)__
Feel free to register on my server or pick one from the lists linked below.
Feel free to read the server rules and more information [here](https://tube.sp-codes.de/about/instance) (German). Feel free to register on my server or pick one from the lists linked below.
## Server details
<div class="text-center mb-3">
<a class="card d-inline-block font-weight-bold" target="_blank" href="https://tube.sp-codes.de/signup">Register now</a>
</div>
You can read the server rules and more information [here](https://tube.sp-codes.de/about/instance) (German).
The PeerTube instance provided can also be used for live streams. Each account receives 20 GB of storage space and is limited to a daily upload limit of 2 GB. The first uploaded videos are activated manually to ensure compliance with the server rules.
## Interesting Channels

View file

@ -1,15 +1,11 @@
---
layout: base.njk
layout: service.njk
key: shields
title: Shields
---
# <i class="i-tags"></i> Shields
Shields is a service for concise, consistent and legible badges in SVG and raster format. Via a URL they can be easily embedded in readmes or any other website. In addition, integrations to various services or networks are provided.
__Since August 2020 I run a public Shields instance.__ Feel free to visit it and use the bagdes in your own projects. It is possible that not all integrations are activated.
__Here is the link to Shields: [shields.sp-codes.de](https://shields.sp-codes.de)__
Take a look and use the bagdes in your own projects. It is possible that not all integrations are activated. If you have any problems, feel free to contact me.
## More useful links