This commit is contained in:
parent
9bb07b365a
commit
c304e46290
25 changed files with 1693 additions and 17 deletions
16
docs/.pages
Normal file
16
docs/.pages
Normal file
|
@ -0,0 +1,16 @@
|
|||
hide: true
|
||||
|
||||
nav:
|
||||
- Home: index.md
|
||||
- Fallstudien: fallstudien
|
||||
- Tools: tools
|
||||
- Installation: installation
|
||||
- Releases: releases
|
||||
- Organisation: organisation
|
||||
- Glossar: glossar
|
||||
- FAQ: faq.md
|
||||
- Kontakt: feedback.md
|
||||
- Source Code (Gitea): https://git.local-it.org
|
||||
- Rechtliches:
|
||||
- Datenschutz: https://local-it.org/datenschutzerklaerung/
|
||||
- Impressum: https://local-it.org/datenschutzerklaerung/
|
1
docs/assets/.pages
Normal file
1
docs/assets/.pages
Normal file
|
@ -0,0 +1 @@
|
|||
hide: true
|
7
docs/fallstudien/.pages
Normal file
7
docs/fallstudien/.pages
Normal file
|
@ -0,0 +1,7 @@
|
|||
hide: true
|
||||
|
||||
nav:
|
||||
- Todo: .
|
||||
# - Holsteincloud: holsteincloud.md
|
||||
# - Wandelgut: wandelgut.md
|
||||
# - ...
|
116
docs/fallstudien/holsteincloud.md
Normal file
116
docs/fallstudien/holsteincloud.md
Normal file
|
@ -0,0 +1,116 @@
|
|||
---
|
||||
status: draft
|
||||
---
|
||||
|
||||
# Holsteincloud 3.0 2021
|
||||
|
||||
Durch regionale Fördergelder konnten die Stadtwerke Eutin
|
||||
uns beauftragen, pilothaft für zwei Vereine eine kollaborationsplattform
|
||||
einzuführen und zu betreiben. Darunter gab es die Hospiz Initative Euin und
|
||||
die Freiwillige Feuerwehr Eutin, Fissau und Neubar . # TODO
|
||||
|
||||
### Hospizinitative Eutin
|
||||
|
||||
Kontakt entstand durch die Stadtwerke Eutin.
|
||||
Verein mit hauptamtlichen und ehrenamtlichen.
|
||||
hohes durchschnittsalter, gerine it-affinität
|
||||
|
||||
Nutzen bisher Whatsapp, E-Mail, Dropbox, Google Kalendar,
|
||||
IT-Dienstleister für Website,
|
||||
|
||||
Haben Bedarf an Dateiaustausch für Dokumente, Bilder, gemeinsame Dokumentenbearbeitung, Projektmanagementtool für Feierlichkeit
|
||||
|
||||
25 User:innen
|
||||
|
||||
|
||||
#### Ablauf
|
||||
|
||||
|
||||
1. Auftakt Veranstaltung, Vorstellung, **Anforderungs Workshops**
|
||||
Welche digitalen Tools möchte der Verein gerne nutzen?
|
||||
|
||||
2. Bereitstellung einer Pilotinstanz mit Authentik, Nextcloud, Wekan.
|
||||
Verbindung per SSO
|
||||
Installation von Authentik, Nextcloud, Onlyoffice, Wekan
|
||||
Integration per openid connect
|
||||
automatisierung, erstellen von coopcloud recipes
|
||||
Integration von Backupbot
|
||||
|
||||
3. Einführungsworkshop in die Tools
|
||||
|
||||
4. Supportphase (Updates und Hilfe bei Anfragen) und regelmäßige Feedbackgespräche
|
||||
|
||||
|
||||
#### Learnings
|
||||
|
||||
* viel Früher Feedback von Einzelnen aus Pilotgruppe einholen
|
||||
* Schulung mit kleinerer Gruppe machen
|
||||
* Zur Bedarfsabfrage schon Demo-Zugang bereitstellen
|
||||
* mehr Zeit mit Vereinen einplanen für Planung
|
||||
* Nextcloud (Dateiverwaltung und Kalendar) kommt gut an und wird genutzt.
|
||||
* Wekan wird nicht genutzt, weil es als zu kompliziert wahrgenommen wird.
|
||||
Kamen vorher von linearer Projektmanagement. Kennen die Kanban Arbeitsweise nicht
|
||||
* Im Workshop auch Mobilnutzung vorstellen
|
||||
* Gruppenfunktionalität in Wekan fehlt
|
||||
* Userbootstrapping noch schwierig
|
||||
Wenn User selbst anlegen, nicht einheitliche user-namen
|
||||
Wegen openid Anbindung werden User erst beim ersten login an die Apps übertragen
|
||||
|
||||
|
||||
### Feuerwehr
|
||||
|
||||
#### Ablauf
|
||||
|
||||
1.
|
||||
2. Workshopreihe
|
||||
1. Beispielszenarien und Erster Input
|
||||
2. Admin Workshop, Userverwaltung und Inhalte erstellen
|
||||
3. Reale Nutzung und Multiplikatoren Schulung
|
||||
3.
|
||||
4.
|
||||
|
||||
#### Nutzung
|
||||
|
||||
* Wekan als Reperaturbuch vom hauptamtlichen Gerätewart
|
||||
* Lehrsaalnutzung und Fahrzeugnutzung und Werkstattnutzung
|
||||
* Nextcloud als Dateiablage für Weiterbildungsunterlagen und Protokolle für den Vorstand
|
||||
* gemeinsame Dokumentenbearbeitung für die Grundausbildung als Anwesenheitsliste und in der Ausbildung
|
||||
|
||||
|
||||
Verbesserung von SSO in Wekan
|
||||
|
||||
|
||||
|
||||
#### Learning
|
||||
|
||||
* Haben es anderen Feuerwehren schon empfohlen!
|
||||
|
||||
##### Wekan
|
||||
* leichte Start-Schwierigkeiten, wegen falschen Berechtigungen (konnten sie selbst klären)
|
||||
* Frage gehabt wie Benachrichtigungssystem funktioniert
|
||||
|
||||
* LDAP
|
||||
* Nutzungsszenarien gemeinsam in Workshop erarbeiten
|
||||
Fast Organisationsberatung
|
||||
* Direkt eigene Instanz bereitstellen und an produktiv
|
||||
Szenarien testen lassen
|
||||
* Wartungsfenster planen und kommunizieren
|
||||
|
||||
|
||||
|
||||
Läuft Weiter mit Supportkontingent und 40€ Pro Instanz
|
||||
Stadtwerke übernehmen 1. Level Support
|
||||
|
||||
|
||||
|
||||
# fragen
|
||||
|
||||
wie viele feedback gespräche haben stattgefunden und war das feedback so hilfreich?
|
||||
oder brauchen wir vllt auch noch andere feedback technik? users in the wild
|
||||
|
||||
warum eig kein bedarf an chat?
|
||||
|
||||
Warum hat hospiz eig noch google kalender auf homepage?
|
||||
|
||||
nutzt die hospiz auch onlyoffice?
|
||||
|
0
docs/fallstudien/wandelgut.md
Normal file
0
docs/fallstudien/wandelgut.md
Normal file
18
docs/feedback.md
Normal file
18
docs/feedback.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
* Website: [local-it.org](https://local-it.org)
|
||||
* Mail: [support@local-it.org](mailto:support@local-it.org)
|
||||
* <button id="feedback-form">[Feedback-Formular]()</button>
|
||||
|
||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||
|
||||
<script id="zammad_form_script" src="https://support.local-it.org/assets/form/form.js"></script>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$('#feedback-form').ZammadForm({
|
||||
messageTitle: 'Feedback-Formular',
|
||||
messageSubmit: 'Übermitteln',
|
||||
messageThankYou: 'Vielen Dank für Ihre Anfrage (#%s). Wir melden uns umgehend.',
|
||||
modal: true,
|
||||
attachmentSupport: true });
|
||||
});
|
||||
</script>
|
1
docs/glossar/.pages
Normal file
1
docs/glossar/.pages
Normal file
|
@ -0,0 +1 @@
|
|||
hide: true
|
18
docs/glossar/index.md
Normal file
18
docs/glossar/index.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
|
||||
Was ist eine Instanz von einem Tool / Föderierbarkeit
|
||||
|
||||
Was ist open-source / was ist FOSS (Mona am Anfang warum foss)
|
||||
|
||||
p2p, server-client
|
||||
|
||||
VM, Port, HTTPS,
|
||||
|
||||
LDAP: Das Lightweight Directory Access Protocol (LDAP), ist ein Netzwerkprotokoll zur Abfrage und Änderung von Informationen verteilter Verzeichnisdienste.
|
||||
|
||||
Reverse Proxy:
|
||||
|
||||
Ports: Ist ein teil der Netzwerk-Adresse, der die Zuordnung einer Netzwerk-Verbindung zu einem Programm durch das Betriebssystem bewirkt.
|
||||
|
||||
SSO: Single Sign On ist der zentrale Login eine:r User:in für unterschiedliche Anwendungen
|
||||
|
||||
- Fork = Abspaltung von Entwicklern aus einem Software-Projekt. Hier wird eine Tool mit einem bestimmten Versionsstand übernommen und üblicherweise unter anderem Namen und mit anderen Prioritäten weiter entwickelt.
|
|
@ -38,9 +38,3 @@ check that user 991 has ownership of /data/media_store
|
|||
https://www.matrix.org/docs/api/#overview
|
||||
|
||||
https://www.matrix.org/docs/guides/client-server-api
|
||||
|
||||
|
||||
curl -X POST -d '{"type":"m.login.password", "user":"admin", "password":""}' http://localhost:8008/_matrix/client/r0/login
|
||||
{"user_id":"@admin:matrix.local-it.org","access_token":"syt_YWRtaW4_nNAvEJZqiMqOCOqizuIQ_1oR29V","home_server":"matrix.local-it.org","device_id":"YSZDLGKMQI","well_known":{"m.homeserver":{"base_url":"https://matrix.local-it.org/"}}}
|
||||
|
||||
curl --header "Authorization: Bearer secretsecret" -X POST -d '{"user_id": "@yksflip:matrix.kaputt.cloud"}' http://localhost:8008/_synapse/admin/v1/rooms/\!TvsvJVDwEFtMnPCbkA:matrix.local-it.org/make_room_admin
|
2
docs/organisation/entscheidungen/.pages
Normal file
2
docs/organisation/entscheidungen/.pages
Normal file
|
@ -0,0 +1,2 @@
|
|||
nav:
|
||||
- ...
|
|
@ -0,0 +1,104 @@
|
|||
---
|
||||
title: "2022-09-07 Zurück Button, Dashboard"
|
||||
---
|
||||
|
||||
|
||||
Datum: 2022-09-07
|
||||
|
||||
Beteiligt: pf, pr, jh, mh
|
||||
|
||||
[Issue](https://git.local-it.org/local-it/ska/issues/5)
|
||||
|
||||
|
||||
Infos
|
||||
-----
|
||||
|
||||
??? example "fork"
|
||||
|
||||
pros:
|
||||
|
||||
* theming teilsweise auch als plugin möglich (nextcloud)
|
||||
* evtl. müssen wir das eh irgendwann, wenn wir sehr viel ui anpassen wollen?
|
||||
* meiste kontrolle
|
||||
* müssen vllt trotzdem nen fork maintainen
|
||||
|
||||
cons:
|
||||
|
||||
* Fork maintainen (upgrades, ...) (kann aber vllt automatisiert werden?)
|
||||
* Einarbeitungsaufwand in alle Apps
|
||||
|
||||
|
||||
??? example "iframe"
|
||||
|
||||
|
||||
pros:
|
||||
|
||||
* (perspektivisch frontend, das viel mehr werden kann)
|
||||
* relativ geringer aufwand
|
||||
|
||||
cons:
|
||||
|
||||
* x-frame-options headers, csp
|
||||
müssen in allen apps gesetzt werden (recipes anpassen)
|
||||
* share-links (z.B nextcloud) referenzieren nicht auf dashboard. sondern auf app direkt, dh. kein Zurückbutton mehr
|
||||
url kann nicht gebookmarkt werden
|
||||
(vllt über reverse-proxy hacken?)
|
||||
* nicht so einfach zu sylen (damits auch mobil gut aussieht)
|
||||
|
||||
|
||||
??? example "nextcloud als dashboard"
|
||||
|
||||
auch iframes,
|
||||
framing um nextcloud
|
||||
könnte auch noch mal exploriert werden
|
||||
|
||||
pros:
|
||||
|
||||
* sehr simpel
|
||||
|
||||
cons:
|
||||
|
||||
* nicht so hübsch
|
||||
|
||||
|
||||
??? example "CSS Injection "yunohost""
|
||||
|
||||
* bischen hacky, aber auch cool
|
||||
* funktioniert mit traefik nicht mehr?
|
||||
|
||||
??? example "browser plugin"
|
||||
|
||||
pros:
|
||||
|
||||
* schnell umzusetzen
|
||||
* könnte das link teilen problem vllt lösen
|
||||
(rewrite von .local-it.org domains)
|
||||
|
||||
cons:
|
||||
|
||||
* muss extra installiert werden
|
||||
* sogar vom store verifiziert werden
|
||||
* portabilität
|
||||
für mehrere browser unterschiedlich
|
||||
* mobil schwierig
|
||||
* security/privacy (plugin hat viel mehr rechte im browser)
|
||||
kann ein ungutes gefühl machen
|
||||
*
|
||||
|
||||
??? example "desktop / mobile app"
|
||||
|
||||
vllt garnicht so schwer mit integrierter webapp
|
||||
|
||||
|
||||
pros:
|
||||
* leichtere zugänglichkeit / onboarding
|
||||
|
||||
cons:
|
||||
* gleiches "link teilen" problem
|
||||
|
||||
|
||||
Entscheidung
|
||||
------------
|
||||
|
||||
Wir bauen ein Dashboard das Wekan und Nextcloud als Iframe einbindet, Nextcloud als Dashboard wird als variante nochmal betrachtet.
|
||||
Parallel explorieren wir forks (Aufwand, technische Umsetzung).
|
3
docs/releases/.pages
Normal file
3
docs/releases/.pages
Normal file
|
@ -0,0 +1,3 @@
|
|||
nav:
|
||||
- Next:
|
||||
- v0.1.md
|
30
docs/releases/v0.1.md
Normal file
30
docs/releases/v0.1.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
status: draft
|
||||
---
|
||||
|
||||
## v0.1
|
||||
|
||||
### Allgemein
|
||||
|
||||
* Liste mit kollaborativen Tools gibt es [hier](./../tools/)
|
||||
|
||||
### Wekan
|
||||
|
||||
* Update auf v6.31
|
||||
* Vor dem Schließen Dialog für ungespeicherte Änderungen von Kartenbeschreibungen anzeigen [#4598](https://github.com/wekan/wekan/pull/4598)
|
||||
* Verbesserungen der openid-connect Anbindung für SSO
|
||||
[#4379](https://github.com/wekan/wekan/pull/4379)
|
||||
[#4392](https://github.com/wekan/wekan/pull/4392)
|
||||
[#4404](https://github.com/wekan/wekan/pull/4404)
|
||||
[#4588](https://github.com/wekan/wekan/pull/4588)
|
||||
* Labels können per Shortcut zugewiesen werden [#4377](https://github.com/wekan/wekan/pull/4377)
|
||||
|
||||
### Nextcloud
|
||||
|
||||
* Update auf v24.03
|
||||
* Verbesserung der Automatisierten Installation und Konfiguration
|
||||
|
||||
### Authentik
|
||||
|
||||
* Update auf v.
|
||||
*
|
7
docs/scratch/.pages
Normal file
7
docs/scratch/.pages
Normal file
|
@ -0,0 +1,7 @@
|
|||
hide: true
|
||||
|
||||
nav:
|
||||
- Todo: .
|
||||
# - Holsteincloud: holsteincloud.md
|
||||
# - Wandelgut: wandelgut.md
|
||||
# - ...
|
1000
docs/scratch/Architekturdiagram.drawio
Normal file
1000
docs/scratch/Architekturdiagram.drawio
Normal file
File diff suppressed because it is too large
Load diff
78
docs/scratch/coopcloud_recipe_detail.drawio
Normal file
78
docs/scratch/coopcloud_recipe_detail.drawio
Normal file
|
@ -0,0 +1,78 @@
|
|||
<mxfile host="65bd71144e">
|
||||
<diagram id="ATGd5KFnuRH4DHzgC8hQ" name="Page-1">
|
||||
<mxGraphModel dx="1138" dy="616" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<mxCell id="2" value="" style="group" vertex="1" connectable="0" parent="1">
|
||||
<mxGeometry x="40" y="390" width="150" height="250" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="3" value="<b><u>Recipe</u></b>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalAlign=top;" vertex="1" parent="2">
|
||||
<mxGeometry width="150" height="250" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="4" value="compose.yml" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalAlign=top;" vertex="1" parent="2">
|
||||
<mxGeometry x="10" y="60" width="130" height="120" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="5" value=".env.sample" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="2">
|
||||
<mxGeometry x="10" y="180" width="130" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="6" value="abra.sh" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="2">
|
||||
<mxGeometry x="10" y="210" width="130" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="7" value="proxy labels" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=10;" vertex="1" parent="2">
|
||||
<mxGeometry x="65" y="110" width="70" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="8" value="README.md" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="2">
|
||||
<mxGeometry x="10" y="30" width="130" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="9" value="" style="group;fontSize=9;" vertex="1" connectable="0" parent="2">
|
||||
<mxGeometry x="15" y="90" width="120" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="10" value="secrets" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=10;" vertex="1" parent="9">
|
||||
<mxGeometry x="50" width="70" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="11" value="configs" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=10;" vertex="1" parent="9">
|
||||
<mxGeometry y="40" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="12" value="app / db" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=10;" vertex="1" parent="9">
|
||||
<mxGeometry width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="13" value="healthchecks" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=10;" vertex="1" parent="9">
|
||||
<mxGeometry x="50" y="40" width="70" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="14" value="volumes" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=10;" vertex="1" parent="9">
|
||||
<mxGeometry y="20" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="15" value="..." style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="9">
|
||||
<mxGeometry y="60" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="16" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="9">
|
||||
<mxGeometry x="50" y="60" width="70" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="21" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="9" source="16" target="16">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="17" value="" style="shape=flexArrow;endArrow=classic;html=1;fontSize=10;endSize=6;strokeWidth=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="3" target="20">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="230" y="514.71" as="sourcePoint"/>
|
||||
<mxPoint x="390" y="515" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="340" y="514.71"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="18" style="edgeStyle=none;shape=flexArrow;html=1;fontSize=10;endSize=6;strokeWidth=1;" edge="1" parent="1" source="19">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="285" y="510" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="19" value="app config (.env)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="225" y="440" width="120" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="20" value="Deployment" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="385" y="505" width="120" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
BIN
docs/scratch/coopcloud_recipe_detail.png
Normal file
BIN
docs/scratch/coopcloud_recipe_detail.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
68
docs/scratch/coopcloud_recipe_flow_0.drawio
Normal file
68
docs/scratch/coopcloud_recipe_flow_0.drawio
Normal file
|
@ -0,0 +1,68 @@
|
|||
<mxfile host="65bd71144e">
|
||||
<diagram id="f4NK6hI8uXz64EpirnBs" name="Page-1">
|
||||
<mxGraphModel dx="1035" dy="560" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<mxCell id="2" style="edgeStyle=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="12">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="390" y="240" as="sourcePoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="445" y="240"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="3" value="Deploys<br>Upgrades<br>Removes" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="2">
|
||||
<mxGeometry x="0.0296" relative="1" as="geometry">
|
||||
<mxPoint as="offset"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="4" value="Operator" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="310" y="260" width="30" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="5" style="edgeStyle=none;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="7" target="10">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="6" value="Pulled" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="5">
|
||||
<mxGeometry x="-0.5103" relative="1" as="geometry">
|
||||
<mxPoint as="offset"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="7" value="Co-op Cloud<br>Catalogue" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="45" y="80" width="170" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="8" style="edgeStyle=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="10">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="270" y="240" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="220" y="240"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="9" value="Configured" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="8">
|
||||
<mxGeometry x="-0.1379" y="-1" relative="1" as="geometry">
|
||||
<mxPoint as="offset"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="10" value="Recipes" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="70" y="210" width="120" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="11" value="" style="group" vertex="1" connectable="0" parent="1">
|
||||
<mxGeometry x="482" y="210" width="140" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="12" value="Server / Instance" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="11">
|
||||
<mxGeometry width="120" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="13" value="Server / Instance" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="11">
|
||||
<mxGeometry x="10" y="10" width="120" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="14" value="Apps on Server" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="11">
|
||||
<mxGeometry x="20" y="20" width="120" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="15" value="Abra CLI" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="270" y="230" width="120" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
BIN
docs/scratch/coopcloud_recipe_flow_0.png
Normal file
BIN
docs/scratch/coopcloud_recipe_flow_0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
58
docs/scratch/komponenten.drawio
Normal file
58
docs/scratch/komponenten.drawio
Normal file
|
@ -0,0 +1,58 @@
|
|||
<mxfile host="65bd71144e">
|
||||
<diagram id="fuMNI3ppRvgRGqRnb3_P" name="Page-1">
|
||||
<mxGraphModel dx="690" dy="373" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<mxCell id="99" value="Reverse Proxy / Traefik" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
|
||||
<mxGeometry x="450" y="890" width="140" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="100" value="Dashboard / SSO" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
|
||||
<mxGeometry x="310" y="850" width="140" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="101" value="Nextcloud" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="450" y="870" width="140" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="102" value="Projektboard" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
|
||||
<mxGeometry x="590" y="850" width="140" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="103" value="Backupbot" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
|
||||
<mxGeometry x="310" y="890" width="140" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="104" value="..." style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
|
||||
<mxGeometry x="590" y="890" width="140" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="106" value="Container Engine / Docker Swarm" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1">
|
||||
<mxGeometry x="310" y="910.5" width="420" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="111" value="Services" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
|
||||
<mxGeometry x="750" y="892" width="140" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="112" value="Applikation" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
|
||||
<mxGeometry x="750" y="872" width="140" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="114" value="Infrastructure" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1">
|
||||
<mxGeometry x="750" y="913" width="140" height="57" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="115" value="Hypervisor / Proxmox" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1">
|
||||
<mxGeometry x="310" y="950.5" width="420" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="118" value="Authentik" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="310" y="870" width="140" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="119" value="Dateiablage" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
|
||||
<mxGeometry x="450" y="850" width="140" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="120" value="Wekan" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="590" y="870" width="140" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="121" value="Fachliche Anwendung" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
|
||||
<mxGeometry x="750" y="852" width="140" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="124" value="VM, OS / Debian" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1">
|
||||
<mxGeometry x="310" y="930.5" width="420" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
BIN
docs/scratch/komponenten.png
Normal file
BIN
docs/scratch/komponenten.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
136
docs/scratch/layesrs.drawio
Normal file
136
docs/scratch/layesrs.drawio
Normal file
|
@ -0,0 +1,136 @@
|
|||
<mxfile host="65bd71144e">
|
||||
<diagram id="7GobyHKVbDCegFxbpN8C" name="Page-1">
|
||||
<mxGraphModel dx="1988" dy="766" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<mxCell id="26" value="Instanz 2" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;" parent="1" vertex="1">
|
||||
<mxGeometry x="440" y="60" width="110" height="360" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="19" value="Instanz 1" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;" parent="1" vertex="1">
|
||||
<mxGeometry x="-50" y="60" width="480" height="360" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="9" value="Nextcloud" style="rounded=1;whiteSpace=wrap;html=1;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="172" y="180" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="10" value="Migration" style="rounded=1;whiteSpace=wrap;html=1;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="234" y="251" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="11" value="ERP" style="rounded=1;whiteSpace=wrap;html=1;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="110" y="180" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="14" value="..." style="rounded=1;whiteSpace=wrap;html=1;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="234" y="180" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="15" value="Backup" style="rounded=1;whiteSpace=wrap;html=1;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="110" y="251" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="16" value="Autoupdate" style="rounded=1;whiteSpace=wrap;html=1;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="172" y="251" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="17" value="operator<br>Dashboard" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="-40" y="420" width="680" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="20" value="Menu / Dashboard" style="rounded=1;whiteSpace=wrap;html=1;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="297" y="180" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="21" value="Zielverfolung<br style="font-size: 10px;">KPI" style="rounded=1;whiteSpace=wrap;html=1;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="297" y="150" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="27" value="Langfristiges Projekt" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="140" y="100" width="150" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="28" value="SSO" style="rounded=1;whiteSpace=wrap;html=1;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="110" y="215" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="29" value="Operators" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="305" y="500" width="90" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="30" value="Maintainers" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="395" y="500" width="90" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="31" value="Devs" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="485" y="500" width="90" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="33" value="" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="265" y="520" width="20" height="35" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="35" value="" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="322" y="97.5" width="20" height="35" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="36" value="coopcloud, abra, recipes, wiki, kopiervorlage tech-cooperative" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="-40" y="460" width="680" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="37" value="Dateiablage" style="rounded=1;whiteSpace=wrap;html=1;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="172" y="150" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="38" value="Workflows" style="rounded=1;whiteSpace=wrap;html=1;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="234" y="150" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="40" value="Instanz 2" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;" parent="1" vertex="1">
|
||||
<mxGeometry x="500" y="60" width="110" height="360" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="41" value="Instanz n+x" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;" parent="1" vertex="1">
|
||||
<mxGeometry x="530" y="60" width="110" height="360" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="47" value="Integrate" style="rounded=1;whiteSpace=wrap;html=1;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="172" y="215" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="48" value="Services" style="rounded=1;whiteSpace=wrap;html=1;dashed=1;dashPattern=1 2;fillColor=default;strokeColor=none;align=right;" parent="1" vertex="1">
|
||||
<mxGeometry x="22.5" y="251" width="80" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="49" value="Infrastructure" style="rounded=1;whiteSpace=wrap;html=1;dashed=1;dashPattern=1 2;fillColor=default;strokeColor=none;" parent="1" vertex="1">
|
||||
<mxGeometry x="22.5" y="281" width="80" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="50" value="docker" style="rounded=1;whiteSpace=wrap;html=1;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="110" y="281" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="51" value="proxmox" style="rounded=1;whiteSpace=wrap;html=1;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="110" y="311" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="52" value="customer<br>management" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="-140" y="522.5" width="70" height="37.5" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="53" value="webshop" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="-140" y="560" width="70" height="37.5" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="55" value="" style="group" parent="1" vertex="1" connectable="0">
|
||||
<mxGeometry x="-40" y="100" width="60" height="280" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="7" value="Technischer<br>generischer Blick" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="55" vertex="1">
|
||||
<mxGeometry y="250" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="8" value="User<br>Perspektive" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="55" vertex="1">
|
||||
<mxGeometry width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="54" value="" style="group" parent="55" vertex="1" connectable="0">
|
||||
<mxGeometry x="29.58" y="40" width="0.4200000000000017" height="190" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="4" value="" style="shape=flexArrow;endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="54" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint as="sourcePoint"/>
|
||||
<mxPoint x="0.4200000000000017" y="80" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="6" value="" style="shape=flexArrow;endArrow=classic;html=1;" parent="54" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="0.4200000000000017" y="190" as="sourcePoint"/>
|
||||
<mxPoint y="80" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="58" value="foo" style="rounded=1;whiteSpace=wrap;html=1;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="110" y="150" width="60" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="22" value="Fachliche Anwendung" style="rounded=1;whiteSpace=wrap;html=1;dashed=1;dashPattern=1 2;fillColor=default;strokeColor=none;align=right;" parent="1" vertex="1">
|
||||
<mxGeometry x="22.5" y="150" width="80" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="23" value="1. Apps" style="rounded=1;whiteSpace=wrap;html=1;dashed=1;dashPattern=1 2;fillColor=default;strokeColor=none;align=right;" parent="1" vertex="1">
|
||||
<mxGeometry x="22.5" y="180" width="80" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="46" value="Glue" style="rounded=1;whiteSpace=wrap;html=1;dashed=1;dashPattern=1 2;fillColor=default;strokeColor=none;align=right;" parent="1" vertex="1">
|
||||
<mxGeometry x="22.5" y="215" width="80" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
25
docs/scratch/organisationell.drawio
Normal file
25
docs/scratch/organisationell.drawio
Normal file
File diff suppressed because one or more lines are too long
10
mkdocs.yml
10
mkdocs.yml
|
@ -27,14 +27,8 @@ repo_name: LIT/docs
|
|||
repo_url: https://git.local-it.org/local-it/docs
|
||||
edit_uri: _edit/main/docs/
|
||||
|
||||
nav:
|
||||
- Home: index.md
|
||||
- ...
|
||||
- FAQ: faq.md
|
||||
- Source Code (Gitea): https://git.local-it.org
|
||||
- Rechtliches:
|
||||
- Datenschutz: https://local-it.org/datenschutzerklaerung/
|
||||
- Impressum: https://local-it.org/datenschutzerklaerung/
|
||||
# nav:
|
||||
# - Fallstudien: fallstudien
|
||||
|
||||
|
||||
extra_css:
|
||||
|
|
Loading…
Reference in a new issue