infra-praesi/source/data.json

418 lines
10 KiB
JSON
Raw Normal View History

2024-07-12 11:19:40 +02:00
{
"meta": {
"author": "Christian Fraß",
"date": "2024-07-11",
"title": "Digitale Infrastruktur für DIE LINKE.",
"contact": {
"email_address": "christian.frass@dielinke-glauchau.de"
}
},
"services": {
"theory": [
{
"text": "Wie setzt man einen Web-Dienst mit ausgelagerter Anmeldung auf?",
"image": "services-0"
},
{
"text": "Zunächst wird eine Datenbank eingerichtet",
"image": "services-1"
},
{
"text": "Weiterhin wird ein Web-Server benötigt",
"image": "services-2"
},
{
"text": "Zudem soll ein Authentifizierungs-Dienst zum Einsatz kommen",
"image": "services-3"
},
{
"text": "… dieser benötigt in der Regel eine Datenbank-Anbindung",
"image": "services-4"
},
{
"text": "… und soll über den Web-Server von außen erreichbar sein",
"image": "services-5"
},
{
"text": "Der eigentliche Dienst …",
"image": "services-6"
},
{
"text": "… benötigt ebenfalls eine Datenbank-Anbindung",
"image": "services-7"
},
{
"text": "… soll den Authentifizierungs-Dienst nutzen",
"image": "services-8"
},
{
"text": "… und über den Web-Server angesprochen werden",
"image": "services-9"
}
],
"practice": {
"example": {
"link": "https://linke.sx",
"label": "linke.sx"
},
"technologies": {
"pool": {
"debian": {
"name": "Debian GNU/Linux",
"link": "https://www.debian.org/",
"icon": null,
"desc": "Betriebssystem"
},
"ansible": {
"name": "Ansible",
"link": "https://www.ansible.com/",
"icon": null,
"desc": "IAC-Plattform"
},
"keepassxc": {
"name": "KeePassXC",
"link": "https://keepassxc.org/",
"icon": null,
"desc": "Passwort-Verwaltung"
},
"letsencrypt": {
"name": "Let's Encrypt",
"link": "https://letsencrypt.org/",
"icon": null,
"desc": "TLS-Zertifikats-Erstellung"
},
"inwx": {
"name": "INWX",
"link": "https://www.inwx.de/",
"icon": null,
"desc": "Domänen-Registrar"
}
},
"order": [
"debian",
"ansible",
"keepassxc",
"inwx",
"letsencrypt"
]
},
"basics": {
"pool": {
"postgresql": {
"name": "PostgreSQL",
"link": "https://www.postgresql.org/",
"icon": null,
"desc": "Datenbank-Server"
},
"nginx": {
"name": "nginx",
"link": "https://nginx.org/",
"icon": null,
"desc": "Web-Server und Lastenverteiler"
},
"authelia": {
"name": "Authelia",
"link": "https://www.authelia.com/",
"icon": null,
"desc": "Auth-Server"
}
},
"order": [
"postgresql",
"nginx",
"authelia"
]
},
"concrete_present": {
"pool": {
"synapse": {
"name": "Synapse",
"link": "https://github.com/element-hq/synapse",
"icon": "https://matrix.org/images/matrix-favicon.svg",
"desc": "Chat-Server"
},
"element": {
"name": "Element",
"link": "https://element.io/",
"icon": "https://element.io/images/webclip.png",
"desc": "Chat-Client für Browser"
},
"hedgedoc": {
"name": "Hedgedoc",
"link": "https://hedgedoc.org/",
"icon": "https://informatik-box.de/images/hedgedoc.png",
"desc": "Notizen"
},
"gitlab": {
"name": "GitLab",
"link": "https://about.gitlab.com/",
"icon": "https://about.gitlab.com/nuxt-images/ico/favicon-192x192.png",
"desc": "Code-Management und Aufgabenverwaltung",
"stat": "present"
},
"forgejo": {
"name": "Forgejo",
"link": "https://forgejo.org/",
"icon": "https://forgejo.org/favicon.png",
"desc": "Code-Management und Aufgabenverwaltung"
},
"vikunja": {
"name": "Vikunja",
"link": "https://vikunja.io/",
"icon": "https://vikunja.io/favicon.svg",
"desc": "Aufgabenverwaltung und Kalender"
},
"dokuwiki": {
"name": "Dokuwiki",
"link": "https://www.dokuwiki.org/dokuwiki",
"icon": "https://www.dokuwiki.org/lib/tpl/dokuwiki/images/logo.png",
"desc": "Wissensspeicher"
},
"owncloud": {
"name": "ownCloud",
"link": "https://owncloud.com/de/infinite-scale/",
"icon": "https://owncloud.com/wp-content/themes/ownCloud/dist/assets/img/favicon/apple-touch-icon.png",
"desc": "Datenablage"
},
"murmur": {
"name": "Murmur",
"link": "https://www.mumble.info/",
"icon": "https://www.mumble.info/css/mumble.svg",
"desc": "Audiokonferenzen (bislang ohne Authentifizierung)"
}
},
"order": [
"synapse",
"element",
"murmur",
"hedgedoc",
"dokuwiki",
"owncloud",
"vikunja",
"gitlab",
"forgejo"
]
},
"concrete_planned": {
"pool": {
"bigbluebutton": {
"name": "BigBlueButton",
"link": "https://bigbluebutton.org/",
"icon": null,
"desc": "Videokonferenzen",
"stat": "planned"
},
"mastodon": {
"name": "Mastodon",
"link": "https://joinmastodon.org",
"icon": "https://creazilla-store.fra1.digitaloceanspaces.com/icons/3204993/logo-mastodon-icon-sm.png",
"desc": "Microblogging",
"stat": "planned"
},
"grav": {
"name": "grav",
"link": "https://getgrav.org/",
"icon": "https://getgrav.org/user/themes/planetoid/images/favicon.png",
"desc": "Web-Inhaltsverwaltung",
"stat": "planned"
},
"dovecot": {
"name": "Dovecot",
"link": "https://doc.dovecot.org/",
"icon": "https://w2.influxdata.com/wp-content/uploads/dovecot-logo.png",
"desc": "E-Mail-Empfang",
"stat": "planned"
},
"postfix": {
"name": "Postfix",
"link": "https://www.postfix.org/",
"icon": "https://webhostinggeeks.com/howto/wp-content/uploads/2012/06/Posfix-Mail.jpg",
"desc": "E-Mail-Versand",
"stat": "planned"
}
},
"order": [
"postfix",
"dovecot",
"mastodon",
"grav"
]
}
},
"alternatives": {
"list": [
"MS Exchange",
"Google",
"facebook",
"WhatsApp/Telegram/Signal",
"Dropbox",
"Nextcloud",
"Humhub",
"Zetkin",
"…"
],
"problems": [
"zentralisiert",
"proprietär",
"datenschutzverletzend",
"zwielichtig",
"überladen",
"unterladen",
"kompliziert",
"unflexibel",
"kaputt"
]
}
},
"user_management": {
"schema": [
{
"text": "Die Dienste stehen bereit, aber wer darf sie verwenden?",
"image": "user_management-0"
},
{
"text": "Espe als Nutzerverwaltung …",
"image": "user_management-1"
},
{
"text": "… hat einen typischen technischen Aufbau",
"image": "user_management-2"
},
{
"text": "… und kann den Authentifizierungs-Dienst füttern",
"image": "user_management-3"
},
{
"text": "MGL …",
"image": "user_management-4"
},
{
"text": "… ist über den Browser bedienbar",
"image": "user_management-5"
},
{
"text": "… hat anscheinend auch einen typischen technischen Aufbau",
"image": "user_management-6"
},
{
"text": "… und kann erweitert werden :)",
"image": "user_management-7"
},
{
"text": "… und damit als Quelle für Espe und den Authentifizierungs-Dienst dienen",
"image": "user_management-8"
}
],
"processes": {
"entry": [
{
"text": "Bei Eintritt legt ein Mitgliederbeauftragter einen Datensatz in MGL an",
"image": "user_management-9"
},
{
"text": "Datensatz landet in MGL-BE/MGL-DB",
"image": "user_management-10"
},
{
"text": "Syncer liest Mitglieder aus und gleicht in Richtung Espe ab",
"image": "user_management-11"
},
{
"text": "Espe erzeugt für jeden neuen Nutzerdatensatz ein Passwort und sendet E-Mail",
"image": "user_management-12"
},
{
"text": "… und schickt die neue Nutzerliste an den Authentifizierungs-Dienst",
"image": "user_management-13"
}
]
},
"example": {
"link": "https://zackeneule.linke.sx/",
"label": "zackeneule.linke.sx",
"remark": " (keine MGL-Anbindung)"
}
},
"realization": {
"todos_technical": [
{
"name": "Entwickler gewinnen",
"link": null
},
{
"name": "Penetrationstests durchführen",
"link": "https://de.m.wikipedia.org/wiki/Penetrationstest_(Informatik)"
},
{
"name": "Lastverteilung vorsehen",
"link": "https://de.m.wikipedia.org/wiki/Lastverteilung_(Informatik)"
},
{
"name": "Datensicherung einrichten",
"link": "https://de.m.wikipedia.org/wiki/Datensicherung"
},
{
"name": "Überwachung einrichten",
"link": "https://de.m.wikipedia.org/wiki/Monitoring"
}
],
"todos_social": [
{
"name": "Kräfte bündeln",
"link": null
},
{
"name": "Tester gewinnen",
"link": null
},
{
"name": "Admins gewinnen",
"link": null
},
{
"name": "Überzeugungsarbeit leisten",
"link": null
}
]
},
"resources": [
{
"name": "Ansible-Rollen für Dienste",
"link": "https://gitlab.die-linke.cloud/misc/ansible-base"
},
{
"name": "Infrastruktur-Definition für LAG Netzpolitik Sachsen",
"link": "https://gitlab.die-linke.cloud/misc/infrastructure"
},
{
"name": "Espe | Datenmodell",
"link": "https://gitlab.die-linke.cloud/espe/datamodel"
},
{
"name": "Espe | Backend",
"link": "https://gitlab.die-linke.cloud/espe/backend"
},
{
"name": "Espe | Frontend | Web",
"link": "https://gitlab.die-linke.cloud/espe/frontend-zackeneule"
},
{
"name": "Espe | Frontend | CLI",
"link": "https://gitlab.die-linke.cloud/espe/frontend-mondvogel"
},
{
"name": "Espe | Ansible-Rollen",
"link": "https://gitlab.die-linke.cloud/espe/infrastructure"
},
{
"name": "MGL-CLI-Client",
"link": "https://gitlab.die-linke.cloud/misc/mgl-cli"
},
{
"name": "MGL-Espe-Syncer",
"link": "https://gitlab.die-linke.cloud/misc/mgl-espe-syncer"
}
]
}