diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..4bc8bcb
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,11 @@
+{
+ "spellright.language": [
+ "German_de_DE"
+ ],
+ "spellright.documentTypes": [
+ "html",
+ "markdown",
+ "latex",
+ "plaintext"
+ ]
+}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 65f161d..c40aa15 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2624,6 +2624,15 @@
"integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
"dev": true
},
+ "angularx-qrcode": {
+ "version": "10.0.11",
+ "resolved": "https://registry.npmjs.org/angularx-qrcode/-/angularx-qrcode-10.0.11.tgz",
+ "integrity": "sha512-sbtqdqAboEFNoyxgG4FQYPZDzwX9TlICT2mLpsC/Se3OuT+HntW56q8E/i1BL1fJhx7zt0JJR7bc7LfofUeAlQ==",
+ "requires": {
+ "qrcode": "1.4.2",
+ "tslib": "^2.0.0"
+ }
+ },
"ansi-colors": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
@@ -2655,7 +2664,6 @@
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
"requires": {
"color-convert": "^1.9.0"
}
@@ -3628,7 +3636,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
"integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
- "dev": true,
"requires": {
"string-width": "^3.1.0",
"strip-ansi": "^5.2.0",
@@ -3638,14 +3645,12 @@
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
},
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
"requires": {
"ansi-regex": "^4.1.0"
}
@@ -3747,7 +3752,6 @@
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
"requires": {
"color-name": "1.1.3"
}
@@ -3755,8 +3759,7 @@
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"color-string": {
"version": "1.5.4",
@@ -4472,8 +4475,7 @@
"decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "dev": true
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
},
"decode-uri-component": {
"version": "0.2.0",
@@ -4715,6 +4717,11 @@
}
}
},
+ "dijkstrajs": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.1.tgz",
+ "integrity": "sha1-082BIh4+pAdCz83lVtTpnpjdxxs="
+ },
"dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -4870,8 +4877,7 @@
"emoji-regex": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
- "dev": true
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
},
"emojis-list": {
"version": "3.0.0",
@@ -5695,7 +5701,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
"requires": {
"locate-path": "^3.0.0"
}
@@ -5842,8 +5847,7 @@
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
},
"get-stream": {
"version": "4.1.0",
@@ -6825,8 +6829,7 @@
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
},
"is-glob": {
"version": "4.0.1",
@@ -7661,7 +7664,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
"requires": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
@@ -8966,7 +8968,6 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
"requires": {
"p-try": "^2.0.0"
}
@@ -8975,7 +8976,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
"requires": {
"p-limit": "^2.0.0"
}
@@ -9001,8 +9001,7 @@
"p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
},
"pacote": {
"version": "9.5.12",
@@ -9284,8 +9283,7 @@
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
},
"path-is-absolute": {
"version": "1.0.1",
@@ -9378,6 +9376,11 @@
"find-up": "^3.0.0"
}
},
+ "pngjs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
+ "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
+ },
"pnp-webpack-plugin": {
"version": "1.6.4",
"resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz",
@@ -10542,6 +10545,24 @@
"integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==",
"dev": true
},
+ "qrcode": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.4.2.tgz",
+ "integrity": "sha512-eR6RgxFYPDFH+zFLTJKtoNP/RlsHANQb52AUmQ2bGDPMuUw7jJb0F+DNEgx7qQGIElrbFxWYMc0/B91zLZPF9Q==",
+ "requires": {
+ "dijkstrajs": "^1.0.1",
+ "isarray": "^2.0.1",
+ "pngjs": "^3.3.0",
+ "yargs": "^13.2.4"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
+ }
+ }
+ },
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
@@ -10893,14 +10914,12 @@
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "dev": true
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
},
"require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
"requires-port": {
"version": "1.0.0",
@@ -11431,8 +11450,7 @@
"set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
- "dev": true
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"set-immediate-shim": {
"version": "1.0.1",
@@ -12213,7 +12231,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "dev": true,
"requires": {
"emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^2.0.0",
@@ -12223,14 +12240,12 @@
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
},
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
"requires": {
"ansi-regex": "^4.1.0"
}
@@ -14117,8 +14132,7 @@
"which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
- "dev": true
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
"worker-farm": {
"version": "1.7.0",
@@ -14164,7 +14178,6 @@
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
"integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
- "dev": true,
"requires": {
"ansi-styles": "^3.2.0",
"string-width": "^3.0.0",
@@ -14174,14 +14187,12 @@
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
},
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
"requires": {
"ansi-regex": "^4.1.0"
}
@@ -14244,8 +14255,7 @@
"y18n": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
- "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
- "dev": true
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
},
"yallist": {
"version": "4.0.0",
@@ -14257,7 +14267,6 @@
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
"integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
- "dev": true,
"requires": {
"cliui": "^5.0.0",
"find-up": "^3.0.0",
@@ -14275,7 +14284,6 @@
"version": "13.1.2",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
"integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
- "dev": true,
"requires": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
@@ -14284,8 +14292,7 @@
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
}
}
},
diff --git a/package.json b/package.json
index 6972949..a7dfb9e 100644
--- a/package.json
+++ b/package.json
@@ -21,6 +21,7 @@
"@angular/platform-browser": "~10.1.5",
"@angular/platform-browser-dynamic": "~10.1.5",
"@angular/router": "~10.1.5",
+ "angularx-qrcode": "^10.0.11",
"openpgp": "^4.10.8",
"rxjs": "~6.6.0",
"tslib": "^2.0.0",
diff --git a/src/.vscode/settings.json b/src/.vscode/settings.json
new file mode 100644
index 0000000..198e71e
--- /dev/null
+++ b/src/.vscode/settings.json
@@ -0,0 +1,12 @@
+{
+ "spellright.language": [
+ "English (British)",
+ "German_de_DE"
+ ],
+ "spellright.documentTypes": [
+ "html",
+ "markdown",
+ "latex",
+ "plaintext"
+ ]
+}
\ No newline at end of file
diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index 82df071..52682b6 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -2,10 +2,17 @@ import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { AuthGuard, AuthUpdateGuard, AuthenticatedGuard, AnonymousGuard } from './auth/auth.guard';
-import { HomeComponent } from './pages/home/home.component';
+import { HomeComponent, ImprintComponent, PrivacyPolicyComponent } from './pages/home/home.component';
+import { HomeClubComponent } from './pages/home/club/home-club.component';
+import { HomeGeneralComponent } from './pages/home/general/home-general.component';
+import { HomePrivacyComponent } from './pages/home/privacy/home-privacy.component';
+import { HomeServicesComponent } from './pages/home/services/home-services.component';
import { LoginComponent } from './pages/login/login.component';
+import { LoginTotpComponent } from './pages/login-totp/login-totp.component';
import { FormLoginComponent } from './pages/form-login/form-login.component';
+import { FormLoginTotpComponent } from './pages/form-login-totp/form-login-totp.component';
import { PasswordComponent } from './pages/password/password.component';
+import { PasswordResetComponent } from './pages/password-reset/password-reset.component';
import { AccountComponent } from './pages/account/account.component';
import { RegisterComponent } from './pages/register/register.component';
import { TokensComponent } from './pages/tokens/tokens.component';
@@ -14,26 +21,33 @@ import { InfoComponent } from './pages/account/info/info.component';
import { VoucherComponent } from './pages/account/voucher/voucher.component';
import { SecurityComponent } from './pages/account/security/security.component';
import { UnavailableComponent } from './pages/unavailable/unavailable.component';
-import { NotfoundComponent } from './pages/notfound/notfound.component';
+import { NotfoundComponent } from './pages/notfound/notfound.component';
const routes: Routes = [
- { path: '', component: HomeComponent, canActivate: [AuthUpdateGuard], pathMatch: 'full', runGuardsAndResolvers: 'always' },
+ { path: '', redirectTo: "/general", pathMatch: 'full' },
+ {
+ path: '', component: HomeComponent, canActivate: [AuthUpdateGuard], runGuardsAndResolvers: 'always', children: [
+ { path: 'general', component: HomeGeneralComponent, canActivate: [AuthUpdateGuard] },
+ { path: 'privacy', component: HomePrivacyComponent, canActivate: [AuthUpdateGuard] },
+ { path: 'services', component: HomeServicesComponent, canActivate: [AuthUpdateGuard] },
+ { path: 'club', component: HomeClubComponent, canActivate: [AuthUpdateGuard] },
+ ]
+ },
+ { path: 'imprint', component: ImprintComponent, canActivate: [AuthUpdateGuard] },
+ { path: 'privacy-policy', component: PrivacyPolicyComponent, canActivate: [AuthUpdateGuard] },
{ path: 'login', component: LoginComponent, canActivate: [AnonymousGuard] },
+ { path: 'login/totp', component: LoginTotpComponent, canActivate: [AnonymousGuard] },
{ path: 'external-login', component: FormLoginComponent, canActivate: [AnonymousGuard] },
+ { path: 'external-login/totp', component: FormLoginTotpComponent, canActivate: [AnonymousGuard] },
{ path: 'password', component: PasswordComponent, canActivate: [AnonymousGuard] },
+ { path: 'password-reset', component: PasswordResetComponent, canActivate: [AnonymousGuard] },
{ path: 'apps', component: AppsComponent, canActivate: [AuthenticatedGuard] },
{
path: 'account', component: AccountComponent, canActivate: [AuthenticatedGuard], children: [
- {
- path: 'info', component: InfoComponent, canActivate: [AuthenticatedGuard]
- },
- {
- path: 'voucher', component: VoucherComponent, canActivate: [AuthenticatedGuard]
- },
- {
- path: 'security', component: SecurityComponent, canActivate: [AuthenticatedGuard]
- }
+ { path: 'info', component: InfoComponent, canActivate: [AuthenticatedGuard] },
+ { path: 'voucher', component: VoucherComponent, canActivate: [AuthenticatedGuard] },
+ { path: 'security', component: SecurityComponent, canActivate: [AuthenticatedGuard] }
]
},
{ path: 'register', component: RegisterComponent, canActivate: [AnonymousGuard] },
diff --git a/src/app/app.component.html b/src/app/app.component.html
index 1de4e29..c21ac88 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -1,20 +1,21 @@
TAnswer 1 detail
-TAnswer 2 detail
-{{'home.services.legend' | i18n}}
+
{{'password.reset.success.text' | i18n}}
+{{'register.success.text' | i18n}}
+{{'permissions.name' | i18n}} | - {{permission.name}} |
+ {{'permissions.name' | i18n}} | + {{'permissions.' + permission.name | i18n}}
+ |
{{'permissions.expires' | i18n}} | +{{'permissions.expires' | i18n}} | {{permission.expires | date}} |
---|
{{'quotas.name' | i18n}} | -{{quota.name}} | +{{'quotas.name' | i18n}} | +{{'quotas.' + quota.name | i18n}} | {{'quotas.value' | i18n}} | -{{quota.value}} {{quota.unit}} | +{{'quotas.value' | i18n}} | +{{quota.value}} | +{{'quotas.unit' | i18n}} | ++ {{'quotas.unit.' + quota.unit | i18n}} + # + |
---|---|---|
Bezeichnung | +Betroffene Benutzer / Speicherfrist | +Verwendungszweck / Weitergabe an Dritte | +
---|---|---|
+ Cookies
+ Zufällig generierte IDs, technisch bedingte Parameter + |
+
+ alle Besucher der Seite / Sitzungsende (Beenden des Browsers) + |
+
+ Wiedererkennung des Benutzers während der Nutzung der Anwendung +keine Weitergabe an Dritte + |
+
+ Rechnungsdaten / Mitgliedsdaten
+ E-Mail Adresse, Name, Anschrift (freiwillig: Kommentar, Referenz) + |
+
+ Benutzer mit getätigter Bestellung / bis zur Löschung + |
+
+ Durchführung der Bestellung, interne Auflistung der Vereinsmitglieder, Archivierung für Steuerprüfung + +keine Weitergabe an Dritte + |
+
+ Bestelldaten
+ Datum, Status, Menge sowie Art der Bestellung + |
+
+ Benutzer mit getätigter Bestellung / bis zur Löschung + |
+
+ Durchführung der Bestellung, automatische Erinnerung für Mitglieder +Keine Weitergabe an Dritte + |
+
Die folgenden Daten werden durch den Dienst we.bstly erfasst und gespeichert: +
+ +
Bezeichnung | +Betroffene Benutzer / Speicherfrist | +Verwendungszweck / Weitergabe an Dritte | +
---|---|---|
+ Cookies
+ Zufällig generierte IDs, technisch bedingte Parameter + |
+
+ alle Besucher der Seite / Sitzungsende (Beenden des Browsers) +Benutzer der „automatischen Anmeldung“ / bis zur aktiven Beendigung der Sitzung + |
+
+ Wiedererkennung des Benutzers während der Nutzung der Anwendung +Wiedererkennung des Benutzers bei „automatischer Anmeldung“ +keine Weitergabe an Dritte + |
+
+ Account-Daten
+ Benutzername, öffentlicher PGP Schlüssel (freiwillig: E-Mail Adresse) + |
+
+ Benutzer mit Account / bis zur Löschung + |
+
+ Identifizierung für Login, Nutzung weiterer Diensten +keine Weitergabe an Dritte + |
+
+ Passwort + |
+
+ Keine permanente Speicherung, direkte Weitergabe an Authentifizierungsserver + |
+
+ Authentifizierung (Login) +Keine Weitergabe an Dritte + |
+
+ Einstellungen / Eigenschaften
+ Berechtigungen und Quotas (freiwillig: Parameter Zweifaktor Authentifizierung) + |
+
+ Benutzer mit Account / siehe Account-Daten + |
+
+ Nutzung weiterer Diensten, Steuerung des Login Prozesses +Keine Weitergabe an Dritte + |
+
Die folgenden Daten werden durch den Dienst Nextcloud erfasst und gespeichert: +
+ +
Bezeichnung | +Betroffene Benutzer / Speicherfrist | +Verwendungszweck / Weitergabe an Dritte | +
---|---|---|
+ Cookies
+ Zufällig generierte IDs, technisch bedingte Parameter + |
+
+ alle Besucher der Seite / Sitzungsende (Beenden des Browsers) +Benutzer der „automatischen Anmeldung“ / 16 Tage nach letzter Nutzung + |
+
+ Wiedererkennung des Benutzers während der Nutzung der Anwendung +Wiedererkennung des Benutzers bei „automatischer Anmeldung“ +keine Weitergabe an Dritte + |
+
+ Account-Daten
+ Benutzername (freiwillig: E-Mail Adresse) + |
+
+ Benutzer mit Account / bis zur Löschung + |
+
+ Suche nach Benutzern beim Teilen von Inhalten, Senden von Benachrichtigungen +Weitergabe an alle Nutzer + |
+
+ Einstellungen/ Eigenschaften
+ Zeitstempel letztes Login, Speicherplatzkontingent, Speicherplatzkauf / Laufzeit, Sprache, + vorgenommene persönliche Einstellungen + |
+
+ Benutzer mit Account / siehe Account-Daten + |
+
+ Erkennung inaktiver Benutzer, Speicherplatzzuweisung, persönliche Anpassung der Oberfläche, + Benachrichtigungen, etc. +Keine Weitergabe an Dritte + |
+
+ Aktivitäten
+ Auflistung der im System durchgeführten Aktionen, z.B. Upload von Dateien + |
+
+ Benutzer mit Account / 14 Tage + |
+
+ Nachvollziehbarkeit von Änderungen +Weitergabe individuell vom Nutzer einstellbar + |
+
+ strukturierte Daten
+ Daten, welche von Apps in der Datenbank abgelegt werden + |
+
+ Benutzer mit Account / maximale Speicherfrist siehe Account-Daten, ansonsten abhängig von der + jeweiligen App + |
+
+ Nutzung der jeweiligen Apps +Weitergabe von in Apps erfassten Daten individuell vom Nutzer einstellbar + |
+
+ Dateien
+ Dateien, welche mit der „Dateien“-Anwendung oder externen Clients abgelegt werden + |
+
+ Benutzer mit Account / siehe Account-Daten + |
+
+ Nutzung der „Dateien“-App oder Clients für verschiedene Plattformen zur Dateisynchronisierung, Teilen + von Dateien mit Dritten +Weitergabe von Dateien individuell vom Nutzer einstellbar + |
+
Die folgenden Daten werden durch den Dienst E-Mail Postfach erfasst und gespeichert: +
+ +
Bezeichnung | +Betroffene Benutzer / Speicherfrist | +Verwendungszweck / Weitergabe an Dritte | +
---|---|---|
+ E-Mails
+ Empfangene und gesendete E-Mails + |
+
+ Benutzer mit E-Mail Postfach / bis zur Löschung + |
+
+ Speicherung der E-Mails zur Abfrage +Jeweilige Sender & Empfänger der E-Mail + |
+
Sämtliche Daten werden verschlüsselt übertragen. Die Nutzung einer unverschlüsselten Verbindung zum Server ist + technisch ausgeschlossen.
+ +Zusätzliche Sicherheitsfunktionen, wie 2-Faktor-Authentifizierung und anwendungsspezifische Logins werden unterstützt + und können in den Einstellungen aktiviert werden.
+ +Die Daten werden im Rechenzentrum der netcup GmbH gespeichert. Eine regelmäßige, automatisierte Datensicherung der Bestandsdaten wird durchgeführt. +
\ No newline at end of file diff --git a/src/assets/templates/de-informal/privacy/design.html b/src/assets/templates/de-informal/privacy/design.html new file mode 100644 index 0000000..43d0a29 --- /dev/null +++ b/src/assets/templates/de-informal/privacy/design.html @@ -0,0 +1,25 @@ +Hier findest du eine kleine Übersicht über Datenschutz bei uns und unser Verständnis davon. Die genaue Auflistung der + Verwendung deiner Nutzungsdaten findest du in unserer Datenschutzerklärung.
+ +Privacy by Design bedeutet, dass die Systeme grundlegend auf Datensparsamkeit ausgelegt sind. Wir versuchen generell immer so + wenig Daten wie möglich zu erheben. Frei nach dem Motto 'was man nicht hat, kann man auch nicht verlieren'. Das gilt + zuerst einmal generell für Daten, die wir erheben, aber auch für die Verknüpfung verschiedener Daten zueinander.
+ +Um Account- und Zahlungsdaten zu trennen, benutzen wir das Ticket-System Pretix mit seinem Check-In System. Für jedes + Item wird ein geheimes Token generiert. In unserer selbst entwickelten Serverkomponente, we.bstly, können dann diese + Tokens eingelöst werden und die entsprechende Leistung gespeichert werden. Das Token wird dann in Pretix als + eingelöst markiert.
+ +Die Verknüpfung von Account/Leistung und Token ist also nur temporär für die bestehende Browser Session gültig und + wird sonst nicht dauerhaft gespeichert. Sprich: es gibt zwei Datenbanken, eine für Zahlungsdaten und Tokens + (Pretix-System) und eine mit Account- und Berechtigungsdaten (we.bstly-System). Die Verknüpfung findet nur in einer + aktiven Browser-Session statt und wird nach Einlösen des Tokens auch dort vergessen. Es gibt also keinerlei + Verknüpfung von Zahlungsdaten und Account.
+ +Abstriche machen wir aktuell bei der Verknüpfung von Accounts bei den einzelnen Services. Wie immer haben Komfort und + Einfachheit ihren Preis. Durch Single-Sign-On (SSO) über OIDC heißt das: Ein Account für Alles. Sprich, die Nutzung + der einzelnen Services ist immer auf deinen we.bstly-Account zurückzuführen. Zum Einen bietet das den Komfort von + SSO, dass du nur auf diesen einen Account gut aufpassen musst. Zum Anderen bekommt man dafür natürlich auch die + Einfachheit, dass alle die Sicherheit haben, dass es sich bei den verschiedenen Services immer um den gleichen + we.bstly-Account handelt. So weißt du z.B., dass du auch genau dem Menschen eine E-Mail schreibst, mit dem du gerade + gechattest hast.
\ No newline at end of file diff --git a/src/assets/templates/de-informal/privacy/email.html b/src/assets/templates/de-informal/privacy/email.html new file mode 100644 index 0000000..4d38538 --- /dev/null +++ b/src/assets/templates/de-informal/privacy/email.html @@ -0,0 +1,8 @@ +Aktuell werden die E-Mails so wie sie ankommen auf dem Server gespeichert. Da dies einige Nachteile und unnötiges + Vertrauen benötigt, arbeitet _Bastler an einer Lösung, dass alle E-Mails automatisch mit deinem Public Key + verschlüsselt werden. Das gibt dir die Sicherheit, dass auch nur du die E-Mails entschlüsseln kannst. Allerdings + bedeutet dies auch, dass du all deine E-Mail-Clients für die Entschlüsselung einrichten musst. Wir werden + selbstverständlich detaillierte Anleitungen dazu veröffentlichen wenn es soweit ist und vermutlich auch ein Opt-Out + anbieten, wenn du auf diese Funktion verzichten möchtest.
+ +Zur Authentifizierung werden deine we.bstly Account-Daten verwendet, d.h. hier gilt immer dieselbe Sicherheit.
\ No newline at end of file diff --git a/src/assets/templates/de-informal/privacy/nextcloud.html b/src/assets/templates/de-informal/privacy/nextcloud.html new file mode 100644 index 0000000..13217e7 --- /dev/null +++ b/src/assets/templates/de-informal/privacy/nextcloud.html @@ -0,0 +1,14 @@ +Wie sensibel die Daten in der Nextcloud sind, hängt natürlich nur von deiner Nutzung ab. Vom Dienst selber fallen + keine Daten außer deine Account-Daten (nur Username und freiwillige Profildaten) an. Da hier ausschließlich von + Usern + selbst erstellte Inhalte gespeichert werden, kommt es darauf an, was du hochlädst, veröffentlichst und schreibst. + Die Daten werden automatisch verschlüsselt gespeichert, es handelt sich + dabei allerdings nur um eine serverseitige Verschlüsselung, sodass du die Daten weiterhin mit Anderen teilen kannst. + Nextcloud bietet allerdings in den aktuellen Versionen auch eine eigene Ende-Zu-Ende-Verschlüsselung (E2EE) an. Es + steht dir natürlich frei diese für sensible Daten zu nutzen, sodass auch niemand anderes an diese Dateien kommt. + Beachte aber, dass diese Dateien dann nicht mehr im Browser zugänglich sind und nicht geteilt werden können. + Außerdem gilt die E2EE nur für Dateien und nicht für andere Daten wie Nachrichten, Kalender o.Ä., so dass die + Empfehlung ist, immer darüber nachzudenken, welche Daten man gerade erzeugt und wie sensibel diese sind.
+ +Da die Nextcloud auch als Basis für unsere Community dient, werden deine Account-Daten mit allen anderen Usern + geteilt. Es steht dir aber auch frei, weitere Daten wie Dateien, Kalender etc. mit anderen Usern zu teilen.
\ No newline at end of file diff --git a/src/assets/templates/de-informal/privacy/pretix.html b/src/assets/templates/de-informal/privacy/pretix.html new file mode 100644 index 0000000..65ebd2e --- /dev/null +++ b/src/assets/templates/de-informal/privacy/pretix.html @@ -0,0 +1,3 @@ +Im Pretix System müssen wir natürlich persönliche Daten zum Zahlungsverkehr sowie eine E-Mail-Adresse speichern zum + Versenden von E-Mails mit Bestätigungen, Zahlungsdaten sowie zum Verschicken der Tokens. Als Vereinsmitglied werden + hier deine zu erhebenden Mitgliedsdaten sowie dein Mitgliedsbeitragskonto gespeichert.
\ No newline at end of file diff --git a/src/assets/templates/de-informal/privacy/we-bstly.html b/src/assets/templates/de-informal/privacy/we-bstly.html new file mode 100644 index 0000000..a98ffe8 --- /dev/null +++ b/src/assets/templates/de-informal/privacy/we-bstly.html @@ -0,0 +1,12 @@ +Im we.bstly-System brauchst du lediglich einen Usernamen und ein Passwort (gut gesalzen, Argon2 gehashed!). + Zusätzlich wird noch ein Private-Public-Schlüsselpaar erstellt. Mehr nicht. Optional ist noch die Angabe einer + E-Mail Adresse. Diese ist erforderlich beim Verlust der Login-Daten bzw. deines Private-Keys. Wir halten diese + Option allerdings offen, so dass eine völlig anonyme Nutzung aller Dienste möglich ist, wenn du dein Passwort bzw. + deinen Private-Key nicht verlierst!
+ +Zusätzlich zu deinen zentralen Account-Daten werden hier auch deine Berechtigungen und das Ablaufdatum deiner Services + gespeichert. Aktuell ist es auch vorgesehen, die Information zu speichern, ob du ein reguläres Vereinsmitglied bist. + Dies hat den Vorteil, dass wir über unsere Services auch alle Vereinsmitglieder direkt erreichen können oder + erweiterte Services anbieten können. Die Daten werden selbstverständlich nicht mit deinen Mitgliedsdaten und dem + Mitgliedsbeitragskonto verknüpft, sprich: wir wissen lediglich, dass du Vereinsmitglied bist, + nicht welches!
\ No newline at end of file diff --git a/src/assets/templates/de-informal/privacy/webserver.html b/src/assets/templates/de-informal/privacy/webserver.html new file mode 100644 index 0000000..44ee2fb --- /dev/null +++ b/src/assets/templates/de-informal/privacy/webserver.html @@ -0,0 +1,9 @@ +Alle Dienste laufen über einen Webserver, wie auch z.B. diese Seite. Generell fallen bei einem Webserver automatisch + ein Haufen Daten an, wie z.B. deine IP-Adresse, deine Webbrowser-Version und einiges mehr. Dass diese Daten + übertragen werden ist technisch bedingt und lässt sich nur mit Aufwand von deiner Seite aus verhindern. Wichtig ist + also, was wir mit diesen Daten machen.
+ +Und was machen wir mit diesen Daten? Die Antwort ist einfach: Nichts! Im Allgemeinen werden diese Daten gar nicht + gespeichert. Im Zuge von Wartungsarbeiten o.Ä. kann es dazu kommen, dass diese Daten in Log-Files geschrieben werden, + damit wir Problemen auf den Grund gehen können. Diese werden dann allerdings mit keinen anderen Daten verknüpft und + direkt nach Beendigung der Arbeiten gelöscht!
\ No newline at end of file diff --git a/src/assets/templates/de-informal/services/active/email.html b/src/assets/templates/de-informal/services/active/email.html new file mode 100644 index 0000000..94d8e86 --- /dev/null +++ b/src/assets/templates/de-informal/services/active/email.html @@ -0,0 +1,8 @@ +Für deinen Usernamen wird automatisch ein E-Mail Konto mit dem Schema {username}@we.bstly.de (Beispiel für + den User foobar: foobar@we.bstly.de) erstellt. Außerdem wird ein sogenanntes @Catch-All für @{username}.we.bstly.de eingerichtet. Das + bedeutet, dass automatisch alle E-Mails an eine Adresse an @{username}.we.bstly.de in deinem Postfach landen. So hast + du eigentlich endlos viele E-Mail-Adressen zur Verfügung. Ein automatischer Spam-Filter ist natürlich auch dabei. + Ein Webmail Zugang steht ebenfalls zur Verfügung.
+ +Für E-Mail Protokolle gibt es keinen OIDC-Login, dies bedeutet technisch, dass zum Login einfach die + Account-Datenbank von we.bstly genommen werden und somit dein we.bstly-Account Passwort.
\ No newline at end of file diff --git a/src/assets/templates/de-informal/services/active/nextcloud.html b/src/assets/templates/de-informal/services/active/nextcloud.html new file mode 100644 index 0000000..e64d6b3 --- /dev/null +++ b/src/assets/templates/de-informal/services/active/nextcloud.html @@ -0,0 +1,7 @@ +Herzstück der digitalen Bastelei ist die Nextcloud. Nextcloud vereint einige Cloud-Dienste in einem. Ein einfaches + Dateisystem wie z.B. von Dropbox, einen Kalender wie z.B. von Google und und und. Die + Daten in der Nextcloud sind generell verschlüsselt, für volle Sicherheit deiner Dateien kannst du allerdings auch + die Ende-zu-Ende-Verschlüsselung der Nextcloud nutzen.
+ +Über Nextcloud werden wir euch auch mit allen wichtigen Informationen über "Bastelei (bald e.V.)" informieren. + Des weiteren bietet Nextcloud auch einige Community-Funktionen, die wir gerne mit euch nutzen möchten.
\ No newline at end of file diff --git a/src/assets/templates/de-informal/services/active/we-bstly.html b/src/assets/templates/de-informal/services/active/we-bstly.html new file mode 100644 index 0000000..dc5ee56 --- /dev/null +++ b/src/assets/templates/de-informal/services/active/we-bstly.html @@ -0,0 +1,8 @@ +Das we.bstly-System ist die zentrale Verwaltung für Account-Daten und Berechtigungen. Hier werden also Login-Daten + (Username + Password-Hash) und dein Public Key gespeichert, sowie verknüpfte Berechtigungen mit ihrer + Gültigkeitsdauer (Beispiel: Mitgliedschaft noch bis 24.03.2049, Git-Zugang bis 01.02.2027).
+ +Implementiert ist dort ein OpenID Connect (OIDC) Provider + der den Zugriff auf die anderen Dienste ermöglicht. + Sprich, für alle weiteren Dienste (Ausnahme E-Mail, siehe unten) läuft der Login direkt über we.bstly (SSO - Single + Sign On).
\ No newline at end of file diff --git a/src/assets/templates/de-informal/services/planned/bigbluebutton.html b/src/assets/templates/de-informal/services/planned/bigbluebutton.html new file mode 100644 index 0000000..47ea9c0 --- /dev/null +++ b/src/assets/templates/de-informal/services/planned/bigbluebutton.html @@ -0,0 +1,5 @@ +Online Konferenzsoftware.
+ +BigBlueButton ist ein mächtiges Konferenz-Tool, dass für den Einsatz an Schulen konzipiert wurde. Dadurch bietet es einen großen Umfang an Funktionen um viele denkbare Konferenz-Situationen abzubilden. Gerade aus Sicht der Bastelei und des Vereins bietet ein solches Tool Vorteile um größere Online-Konferenzen zu organisieren oder z.B. eine Mitgliederversammlung abzuhalten.
+ +⚠️ Größerer Umfang an Funktionen bringt große Komplexität mit sich. Aktuell wird für BBB empfohlen einen eigenständigen Server zu verwenden. Hinzu kommen einige Sicherheitsbedenken, da die empfohlenen Systemvoraussetzungen veraltet sind. Außerdem bietet BBB derzeit auch keine OIDC-Unterstützung, was zusätzlich das Thema der Authentifizierung mit sich bringt.
\ No newline at end of file diff --git a/src/assets/templates/de-informal/services/planned/bitwarden.html b/src/assets/templates/de-informal/services/planned/bitwarden.html new file mode 100644 index 0000000..65d9b86 --- /dev/null +++ b/src/assets/templates/de-informal/services/planned/bitwarden.html @@ -0,0 +1,7 @@ +Passwort Manager.
+ +Ein Passwort Manager verwaltet sicher all deine Passwörter. Außerdem kannst du dir komplizierte Passwörter generieren lassen, so dass du für all deine Konten ein anderes, schwer zu erratendes Passwort hast und die Sicherheit deiner Konten erhöhst.
+ +Bitwarden empfiehlt sich vor allem durch seine regelmäßigen unabhängigen Audits mit positiven Ergebnissen. Es gibt kaum vergleichbare Alternativen in selbst betriebenen Open-Source Password Managern.
+ +⚠️ Aktuell bietet Bitwarden leider OIDC Unterstützung nur für eine bezahlte Premium Lizenz. Es gibt einen offenen Rust-Klon der Server Komponente, diese legt aber aktuell wenig Wert auf die Unterstützung des Organisationen-Feature und damit auf das damit verbundene OIDC. Somit bleibt abzuwarten, ob sich hier in nächster Zeit etwas entwickelt oder ob etwas für den Einsatz einer Alternative spricht.
\ No newline at end of file diff --git a/src/assets/templates/de-informal/services/planned/gitea.html b/src/assets/templates/de-informal/services/planned/gitea.html new file mode 100644 index 0000000..4601595 --- /dev/null +++ b/src/assets/templates/de-informal/services/planned/gitea.html @@ -0,0 +1,10 @@ +Offene Source-Code Verwaltung auf Basis von git-Repositories (vergleichbar mit GitHub).
+ +Gegenüber der Konkurrenz bietet Gitea vor allem den Vorteil, dass es selbst betrieben werden kann und man so die + Hoheit über seine Daten und seinen Code behält. Nennenswerte zusätzliche Features gegenüber vergleichbarer Software + gibt es nicht, der Funktionsumfang steht allerdings auch in nichts nach.
+ +✅ Da Gitea auch OIDC Unterstützung mitbringt, stellt sich vor allem die Frage, ob für eine solche + Plattform Bedarf besteht. Da durch die Repositories natürlich einiges an Speicher hinzukommt, empfiehlt sich auch + hier eventuell ein separater Server, der dann von den Usern, die diesen Service nutzen wollen, finanziert werden + würde.
\ No newline at end of file diff --git a/src/assets/templates/de-informal/services/planned/jitsi-meet.html b/src/assets/templates/de-informal/services/planned/jitsi-meet.html new file mode 100644 index 0000000..1ccfbe0 --- /dev/null +++ b/src/assets/templates/de-informal/services/planned/jitsi-meet.html @@ -0,0 +1,13 @@ +Online Konferenzsoftware.
+ +Vor allem die Einfachheit in der Bedienung und aufs Nützlichste beschränkte Funktionen sind die Vorteile von Jitsi + Meet. Da es in jedem modernen Browser läuft, fällt auch die lästige Installation von Anwendungen auf Endgeräten weg. + Lediglich auf Smartphones wird die kostenlose Jitsi-App benötigt. Hier muss als Server dann der Bastelei-Server + angegeben werden.
+ +❔ Bei Jitsi Meet ist eigentlich nur die Frage offen, ob es von den Serverkapazitäten möglich ist eine + offene Instanz zu betreiben bzw. ein eigener Server nötig ist, da die Software doch recht ressourcenhungrig ist. + Ansonsten muss sich _Bastler noch um eine Authentifizierungsmethode kümmern. OIDC wird nicht direkt unterstützt, + eine Beschränkung über VPN (Wireguard) wäre auch denkbar. Zu erwähnen ist hier, dass die Authentifizierung lediglich + für das Erstellen von Räumen nötig wäre. Jitsi Meet bietet eine Gästekonfiguration, so dass du so oder so beliebige + Personen zu deiner Konferenz einladen kannst.
\ No newline at end of file diff --git a/src/assets/templates/de-informal/services/planned/matrix.html b/src/assets/templates/de-informal/services/planned/matrix.html new file mode 100644 index 0000000..8599827 --- /dev/null +++ b/src/assets/templates/de-informal/services/planned/matrix.html @@ -0,0 +1,10 @@ +Dezentrales Ende-zu-Ende-verschlüsseltes Messaging Protokoll.
+ +Mit einem Matrix-Server können wir Teil eines dezentralen Messaging Netzwerk werden, welches mit einer E2EE die + größtmögliche Datensicherheit bietet. Es gibt verschiedene Clients, alles im allem ähnelt die Handhabung aber den + gängigen, bekannten Messenger wie Signal, WhatsApp, Threema oder Telegram.
+ +Damit hätten wir auch ein verschlüsseltes Kommunikationssystem für unsere internen Nachrichten.
+ +✅ Da der Synapse Server direkte Unterstützung für OIDC bietet, braucht es lediglich Serverkapazitäten + um diesen Service einzurichten.
\ No newline at end of file diff --git a/src/assets/templates/de-informal/services/planned/pihole.html b/src/assets/templates/de-informal/services/planned/pihole.html new file mode 100644 index 0000000..cafc8f8 --- /dev/null +++ b/src/assets/templates/de-informal/services/planned/pihole.html @@ -0,0 +1,11 @@ +Ad-Blocking via DNS (benötigt dann Wireguard ⚠️).
+ +Werbeblocking über DNS bietet einige Vorteile gegenüber klassischem Ad-Blocking über Browser-Plugins. Da das Request + als solches blockiert wird, bekommt der Werbeserver nicht einmal mit, dass er gerade blockiert wird. Außerdem + funktioniert so ein Blocking dann für alle Geräte, Applikation usw. die auf das Internet zugreifen. So wird auch + Werbung und Tracking in mobilen Anwendungen blockiert.
+ +❔ Pi-Hole selber einzurichten ist kein Problem. ⚠️ Allerdings würde eine offene Konfiguration für jeden + zugänglich sein, so dass Serverlasten nicht kontrollierbar wären. Deshalb ist die Idee von _Bastler, den Service + über ein VPN (Wireguard) zur Verfügung zu stellen. So ist Pi-Hole immer aktiv, sobald du eine gültige VPN Verbindung + zu unserem Server hast.
\ No newline at end of file diff --git a/src/assets/templates/de-informal/services/planned/wireguard.html b/src/assets/templates/de-informal/services/planned/wireguard.html new file mode 100644 index 0000000..f0349cb --- /dev/null +++ b/src/assets/templates/de-informal/services/planned/wireguard.html @@ -0,0 +1,14 @@ +VPN Server.
+ +Ein VPN Server bietet zum einen den Vorteil, dass deine echte IP-Adresse verschleiert wird, zum anderen würde ein + VPN uns ein paar technische Möglichkeiten bieten, da du dich als User dann in einem internen Netzwerk befindest, + worüber wir weitere Dienste oder Zugriffe auf bestimmte Dienste ermöglichen können.
+ +Da natürlich sehr viel Traffic über den Server läuft wenn viele User im VPN sind, wird aktuell ein Hybrid-Betrieb + bevorzugt. Dies bedeutet dass du zwar weiterhin mit deiner eigenen IP direkt auf das Internet zugreifst, wir aber + eben durch das interne Netzwerk weitere Services zur Verfügung stellen können.
+ +⚠️ In der Theorie ist das Aufsetzen des Servers kein Problem. Da die Authentifizierung über ein + Public-Private-Key Verfahren läuft, bräuchte es eigentlich nur ein kleines Script um den Public-Key eines Users + zur Konfiguration hinzuzufügen (oder zu entfernen). Das Szenario muss allerdings noch von _Bastler verifiziert und + getestet werden.
\ No newline at end of file diff --git a/src/assets/templates/test.en.html b/src/assets/templates/test.en.html deleted file mode 100644 index e772f44..0000000 --- a/src/assets/templates/test.en.html +++ /dev/null @@ -1 +0,0 @@ -