From 32da947fb9fa9330cd0844d9130ebe4eedfc76e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Sat, 28 Feb 2026 11:01:13 +0100 Subject: [PATCH 01/31] Migrate to zensical --- .github/workflows/build.yaml | 10 ++-- .github/workflows/documentation.yaml | 6 +- docs/README.md | 10 ++-- docs/mkdocs.yml | 32 ----------- docs/pages/assets/turnierplan.css | 46 ---------------- docs/pages/{img => images}/favicon.ico | Bin docs/pages/{img => images}/logo-192.png | Bin docs/pages/index.md | 6 +- docs/requirements.txt | 2 +- docs/zensical.toml | 70 ++++++++++++++++++++++++ 10 files changed, 89 insertions(+), 93 deletions(-) delete mode 100644 docs/mkdocs.yml delete mode 100644 docs/pages/assets/turnierplan.css rename docs/pages/{img => images}/favicon.ico (100%) rename docs/pages/{img => images}/logo-192.png (100%) create mode 100644 docs/zensical.toml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e13ff301..586b75ad 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -89,22 +89,22 @@ jobs: id-token: write steps: - uses: actions/checkout@v5 - - name: "Set up Python 3.12" + - name: "Set up Python 3.x" uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.x" - name: "Install requirements" run: "python3 -m pip install -r requirements.txt" working-directory: "docs" - name: "Build documentation" - run: "python3 -m mkdocs build" + run: "zensical build --clean" working-directory: "docs" - name: "Setup Pages" uses: actions/configure-pages@v5 - - name: Upload artifact + - name: "Upload artifact" uses: actions/upload-pages-artifact@v3 with: path: "docs/site" - - name: Deploy to GitHub Pages + - name: "Deploy to GitHub Pages" id: deployment uses: actions/deploy-pages@v4 diff --git a/.github/workflows/documentation.yaml b/.github/workflows/documentation.yaml index 977cc976..15df5328 100644 --- a/.github/workflows/documentation.yaml +++ b/.github/workflows/documentation.yaml @@ -12,13 +12,13 @@ jobs: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v5 - - name: "Set up Python 3.12" + - name: "Set up Python 3.x" uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.x" - name: "Install requirements" run: "python3 -m pip install -r requirements.txt" working-directory: "docs" - name: "Build documentation" - run: "python3 -m mkdocs build" + run: "zensical build --clean" working-directory: "docs" diff --git a/docs/README.md b/docs/README.md index c8f9dfa2..d46df637 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,16 +1,16 @@ ## turnierplan.NET · Documentation -This directory contains the source markdown files and mkdocs configuration for the publically available turnierplan.NET documentation: [https://docs.turnierplan.net](https://docs.turnierplan.net). +This directory contains the turnierplan.NET documentation. The content files use an extended markdown format and are build into static HTML using [zensical](https://zensical.org). The documentation is hosted at [docs.turnierplan.net](https://docs.turnierplan.net). -In order to build the documentation locally, you must first install Python and [mkdocs](https://www.mkdocs.org): +In order to build the documentation locally, you must first install Python and `zensical`: ``` pip install -r requirements.txt ``` -Next, you can either view the rendered documentation using the mkdocs-build-in server or you can generate the static website files: +Next, you can either view the rendered documentation using the zensical-built-in server or you can generate the static website files: ``` -python3 -m mkdocs serve # starts a local web server on port 8000 -python3 -m mkdocs build # generates static web site artifacts into the 'site' directory +python3 -m zensical serve # starts a local web server on port 8000 +python3 -m zensical build # generates static web site artifacts into the 'site' directory ``` diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml deleted file mode 100644 index b144ae2f..00000000 --- a/docs/mkdocs.yml +++ /dev/null @@ -1,32 +0,0 @@ -site_name: "turnierplan.NET" -site_author: "turnierplan.NET" -site_url: "https://docs.turnierplan.net" -site_description: "The administrator and user documentation for turnierplan.NET" - -repo_url: "https://github.com/turnierplan-NET/turnierplan.NET" -edit_uri: "blob/main/docs/pages/" - -copyright: "Copyright © 2026 Elias Hörner" - -docs_dir: "pages" - -theme: - name: mkdocs - color_mode: auto - user_color_mode_toggle: true - nav_style: dark - navigation_depth: 4 - locale: en - -nav: - - Home: "index.md" - - Installation: "installation.md" - - About: - - Releases: "https://github.com/turnierplan-NET/turnierplan.NET/releases" - - License: "https://github.com/turnierplan-NET/turnierplan.NET/blob/main/LICENSE" - -extra_css: - - "assets/turnierplan.css" - -markdown_extensions: - - admonition: diff --git a/docs/pages/assets/turnierplan.css b/docs/pages/assets/turnierplan.css deleted file mode 100644 index ac947a92..00000000 --- a/docs/pages/assets/turnierplan.css +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Some style improvements for the footer - */ - -footer hr { - opacity: 0.2; -} - -footer p { - font-size: 0.8em; - margin-bottom: 0.3em; -} - -/* - * Remove the sidebar on the homepage, copied from the mkdocs.org documentation - * => https://github.com/mkdocs/mkdocs/blob/2862536793b3c67d9d83c33e0dd6d50a791928f8/docs/css/extra.css#L48 - */ - -body.homepage > div.container > div.row > div.col-md-3 { - display: none; -} - -body.homepage > div.container > div.row > div.col-md-9 { - margin-left: 0; - flex: 0 0 100%; - max-width: 100%; -} -/* - * Some additional style changes for the homepage - */ - -body.homepage h1 { - margin-top: 2em; - margin-bottom: 0.7em; - text-align: center; - font-weight: bold; -} - -body.homepage > div.container p:first-of-type { - text-align: center; -} - -body.homepage > div.container img:first-of-type { - padding: unset; - border: unset; -} diff --git a/docs/pages/img/favicon.ico b/docs/pages/images/favicon.ico similarity index 100% rename from docs/pages/img/favicon.ico rename to docs/pages/images/favicon.ico diff --git a/docs/pages/img/logo-192.png b/docs/pages/images/logo-192.png similarity index 100% rename from docs/pages/img/logo-192.png rename to docs/pages/images/logo-192.png diff --git a/docs/pages/index.md b/docs/pages/index.md index b063cdca..bd136a83 100644 --- a/docs/pages/index.md +++ b/docs/pages/index.md @@ -1,9 +1,13 @@ +--- +icon: lucide/rocket +--- + # turnierplan.NET **turnierplan.NET** ist a free and open-source web application for football tournaments
- +

diff --git a/docs/requirements.txt b/docs/requirements.txt index 016bb16d..32b234e8 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1 +1 @@ -mkdocs +zensical==0.0.24 diff --git a/docs/zensical.toml b/docs/zensical.toml new file mode 100644 index 00000000..14b88aab --- /dev/null +++ b/docs/zensical.toml @@ -0,0 +1,70 @@ +[project] + +site_name = "turnierplan.NET Documentation" +site_author = "turnierplan.NET" +site_url = "https://docs.turnierplan.net/" +site_description = "The administrator and user documentation for turnierplan.NET" + +repo_url = "https://github.com/turnierplan-NET/turnierplan.NET" +edit_uri = "blob/main/docs/pages/" + +copyright = "Copyright © 2026 Elias Hörner, turnierplan.NET" + +docs_dir = "pages" + +nav = [ + { "Getting Started" = "index.md" }, + { "Installation" = "installation.md" }, + { "Installation 2" = [ + "test/index.md", + { "Installation" = "installation3.md" }, + { "Installation" = "installation4.md" }, + ]} +] + +[project.theme] + +favicon = "images/favicon.ico" +language = "en" + +features = [ + "content.action.edit", + "content.code.annotate", + "content.code.copy", + "content.footnote.tooltips", + # "content.tabs.link", + # "content.tooltips", + "navigation.expand", + "navigation.footer", + "navigation.indexes", + "navigation.instant", + "navigation.instant.prefetch", + "navigation.path", + "navigation.sections", + "navigation.top", + "navigation.tracking", + "search.highlight", + # "toc.follow", + # "toc.integrate", +] + +[[project.theme.palette]] +scheme = "default" +accent = "green" +toggle.icon = "lucide/sun" +toggle.name = "Switch to dark mode" + +[[project.theme.palette]] +scheme = "slate" +accent = "green" +toggle.icon = "lucide/moon" +toggle.name = "Switch to light mode" + +[project.theme.font] +text = "Inter" +code = "Jetbrains Mono" +# TODO: Don't load fonts from Google + +[project.theme.icon] +logo = "lucide/trophy" + From 5acf06b623de79848cf48538ef967d189704bf64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Sat, 28 Feb 2026 16:51:43 +0100 Subject: [PATCH 02/31] Disable font loading --- docs/zensical.toml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/zensical.toml b/docs/zensical.toml index 14b88aab..680c38ac 100644 --- a/docs/zensical.toml +++ b/docs/zensical.toml @@ -26,6 +26,7 @@ nav = [ favicon = "images/favicon.ico" language = "en" +font = false features = [ "content.action.edit", @@ -60,11 +61,6 @@ accent = "green" toggle.icon = "lucide/moon" toggle.name = "Switch to light mode" -[project.theme.font] -text = "Inter" -code = "Jetbrains Mono" -# TODO: Don't load fonts from Google - [project.theme.icon] logo = "lucide/trophy" From cad1a7756a76888904c1efa4b579566a66429f7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Sat, 28 Feb 2026 17:52:44 +0100 Subject: [PATCH 03/31] Add repo name --- docs/zensical.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/zensical.toml b/docs/zensical.toml index 680c38ac..fb8a43a2 100644 --- a/docs/zensical.toml +++ b/docs/zensical.toml @@ -5,6 +5,7 @@ site_author = "turnierplan.NET" site_url = "https://docs.turnierplan.net/" site_description = "The administrator and user documentation for turnierplan.NET" +repo_name = "turnierplan-NET/turnierplan.NET" repo_url = "https://github.com/turnierplan-NET/turnierplan.NET" edit_uri = "blob/main/docs/pages/" From cfc466d68591ff19160a7ea2decbfe6da71a43f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Sat, 28 Feb 2026 18:32:37 +0100 Subject: [PATCH 04/31] Add temporary overview page --- docs/pages/index.md | 15 +++++++++------ docs/zensical.toml | 4 ++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/docs/pages/index.md b/docs/pages/index.md index bd136a83..4aa15f57 100644 --- a/docs/pages/index.md +++ b/docs/pages/index.md @@ -1,16 +1,19 @@ --- -icon: lucide/rocket +icon: lucide/library-big --- -# turnierplan.NET +# Overview -**turnierplan.NET** ist a free and open-source web application for football tournaments +turnierplan.NET is an **open-source tournament planning application** ([GitHub](github.com/turnierplan-NET/turnierplan.NET)) for football clubs and anyone else who wants to invite teams, create schedules and report match outcomes. -
- +
+- :fontawesome-brands-html5: __HTML__ for content and structure +- :fontawesome-brands-js: __JavaScript__ for interactivity +- :fontawesome-brands-css3: __CSS__ for text running out of boxes +- :fontawesome-brands-internet-explorer: __Internet Explorer__ ... huh?
-
+ ## Getting Started diff --git a/docs/zensical.toml b/docs/zensical.toml index fb8a43a2..58df9405 100644 --- a/docs/zensical.toml +++ b/docs/zensical.toml @@ -9,12 +9,12 @@ repo_name = "turnierplan-NET/turnierplan.NET" repo_url = "https://github.com/turnierplan-NET/turnierplan.NET" edit_uri = "blob/main/docs/pages/" -copyright = "Copyright © 2026 Elias Hörner, turnierplan.NET" +copyright = "Copyright © 2026 Elias Hörner" docs_dir = "pages" nav = [ - { "Getting Started" = "index.md" }, + { "Overview" = "index.md" }, { "Installation" = "installation.md" }, { "Installation 2" = [ "test/index.md", From dbf99c708e084e4af2a26f358c7db7fd71b9c906 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Sat, 28 Feb 2026 18:36:33 +0100 Subject: [PATCH 05/31] Config fix --- docs/zensical.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/zensical.toml b/docs/zensical.toml index 58df9405..99cb905e 100644 --- a/docs/zensical.toml +++ b/docs/zensical.toml @@ -34,8 +34,8 @@ features = [ "content.code.annotate", "content.code.copy", "content.footnote.tooltips", - # "content.tabs.link", - # "content.tooltips", + "content.tabs.link", + "content.tooltips", "navigation.expand", "navigation.footer", "navigation.indexes", From 0e0ddf2a2624be622b57a74e10977f4f53f472ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Sat, 28 Feb 2026 18:41:40 +0100 Subject: [PATCH 06/31] Readme updates --- README.md | 14 +++----------- docs/README.md | 2 +- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 8f184447..d84097d9 100644 --- a/README.md +++ b/README.md @@ -6,21 +6,13 @@ ## Introduction -**turnierplan.NET** is mostly written in C# using [.NET](https://dotnet.microsoft.com/). This includes the core logic, the backend API and database connection as well as all publicly visible web pages. In addition, it serves the *turnierplan.NET portal*, the client application for authenticated users, based on the [Angular](https://angular.dev/) framework. Some screenshots can be seen in the [section at the end](#screenshots). +**turnierplan.NET** is mostly written in C# using [.NET](https://dotnet.microsoft.com/). This includes the core logic, the backend API and database connection as well as all publicly visible web pages. In addition, it serves the *turnierplan.NET portal*, the client application for authenticated users, based on the [Angular](https://angular.dev/) framework. + +Visit the **turnierplan.NET** documentation using the following link: [docs.turnierplan.net](https://docs.turnierplan.net). If you want to install **turnierplan.NET** on your server, please visit the [Installation guide](https://docs.turnierplan.net/installation). > [!NOTE] > The user interface is currently only available in German 🇩🇪 -## Installation - -If you want to install **turnierplan.NET** on your server, please visit the [Installation guide](https://docs.turnierplan.net/installation). - -## Documentation - -Visit the **turnierplan.NET** documentation using the following link: [docs.turnierplan.net](https://docs.turnierplan.net) - -The documentation sources are located in the `docs` directory. See the [docs readme](docs/README.md) for further information on how to edit and build the documentation. - ## Development This section describes how to set up the development environment. First, you need to install the following tools installed on your machine: diff --git a/docs/README.md b/docs/README.md index d46df637..ba869c23 100644 --- a/docs/README.md +++ b/docs/README.md @@ -8,7 +8,7 @@ In order to build the documentation locally, you must first install Python and ` pip install -r requirements.txt ``` -Next, you can either view the rendered documentation using the zensical-built-in server or you can generate the static website files: +Next, you can either view the rendered documentation using the zensical built-in server or you can generate the static website files: ``` python3 -m zensical serve # starts a local web server on port 8000 From 3b56769ee1c24a28b6b5f38b512dcf82755eb314 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Sat, 28 Feb 2026 20:23:36 +0100 Subject: [PATCH 07/31] Better logo --- docs/pages/images/logo-192.png | Bin 6160 -> 0 bytes docs/pages/images/logo-64.png | Bin 0 -> 3702 bytes docs/zensical.toml | 5 +---- 3 files changed, 1 insertion(+), 4 deletions(-) delete mode 100644 docs/pages/images/logo-192.png create mode 100644 docs/pages/images/logo-64.png diff --git a/docs/pages/images/logo-192.png b/docs/pages/images/logo-192.png deleted file mode 100644 index 478d9cad3648837a2e2ce6458a88edb32fbc5ce4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6160 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 Q;7C7EQ__B1_RuQyf96V2^8f$< diff --git a/docs/pages/images/logo-64.png b/docs/pages/images/logo-64.png new file mode 100644 index 0000000000000000000000000000000000000000..ae427211bee1bc282a53c4f68f5db0d54c3ee433 GIT binary patch literal 3702 zcma)9dpwi-AAjbSND*C7KWoA%vDvH`a~<_e+G?o-uZ_i%r5T-6`Fi2+2v5Tk;}8 zc2sl`T{+T`ikzrOEsFGeMyXEc{9eC5p3V1pe?IT`=kxts_Oi!=xL!>~M+E=?HJ1$p zFX-D&_9!bspJ!?# z#3P358WC_B1&{E@x})6Lj$kBh!&VOHy_M)g-WpA|q#$f4*Fa68i{~UoA9FXhyZsFxFd@L!m*}UQxw8R1#ZouP;p)a=P%CC36F^6@z^*d zQXmkR3NWTDP6X1-($W%%LL<>=6Uf4Z8^`34geFX`zKmjqg8*{L92%QPV=>_}PEt6F z&%+}S5Dxzu8G}7b&g6c{9=ZplkiJQg>S^)D{7@K25u@~jA(&!JDp zPaz{gI>-Q-JT7E!_Ja^8q*dWpi$Tni?&9RQ*35G4S`)OX*|e>!aySo~5TpkX zXi(X?P*>s+Yt8=#2L1~;t?dmBBP1|GD61{bg+Yn{{b>|l_ii9F;_ra0LUg`t zBz&1PsHW&?{b`?oZy2OuZjSs;C-7%XHfC^Z3K_?v@#x_6X=d!~>AacK%#lu$%^HqQ zVn*N*LK6x|CGqJzgpCiM!=!;6HUxymT3T8oWg|+beIc4YePyyn{vcyL-NCpGG%k&X4l^j1Mdb-d9MC=jYF#|So=T-b z7ZeAFmIy6^33A|QI2zhe>wfeSM1m0Gj}7#FmmxLH@yZV}hqvi!ElmhJI61Q~2F; zw^Ns5D=LodIeG4wc7G@Jd8S@eVtvnXm&2v!bMmh=mn$a0g1}O(gNLv|;oEcHrs`bJ z?yeo+Hjd@qYZwq?5BZ_Dy4zCD$C+rovx*pap7Y))iguNVb zYu)^y{Zn+BYs?myYs1Ly{HVAmF;A`^t&bW#&8|DN*L1F)Y8|#VZ=~u>%Zv`U*g*uCG;3v8UMiwKAM}3!^YmmotF2%i3bxw@vw4J}C0Q&Kq%ia*k z1%Sl{vIpkkwQ>Xily18a?0tmUw~hzxUg@vhl2mx{VlnbwC8o}*YI9wsDU58oQsKP% z6&F7>Wlxl{zHo&)O38s@zhOhjsYp#$pS_-z_+#Eu#amgsB>D5qsG2CMBVo(B!RBt} z`Kn56SLSuM(9`i3i?C1T|Qwq|(O+gZY=tNz0WdIvHVS$oxs*m+yp!PyhN7Vf&zMp?_iBItwlk#)tYFfifD_(qXW#u+!XAK7V6+d`- z+eEMDNOfV@IaYY~o;T=c{btQK!RC!l8w(KSm!=A%J*8&7eH~ZSDxq9Fdwm_e>d&@3 zJnoTX5~wL?yVMM;{CqpVE6US){3M}&(Qtr%l4c}XN3uS+`-3Cvl2Vvo$-)uUzGq@W zZ``2*8(V3ulpLgaks%QzFF0+oTr!q#{GxD^r0~{WK9?n?`jxZ;p~N80l3YCoOhp;^ z!~DV>(KQ>i+O=Ri4OpnTaYwUUsnWY3uZ?P6OFVuP&)-%R|68_b#X9j8>qx(n1k^ma zl}CO2llDq3qqLT!SHU)3P&{yaQL(v~Y2Ix);5}?CEkm{FF(sfwqP!QCSvsdri;r1zDJ%=l6e<8U z)s-IcG=4|)$0djEU)~MrXd2onC`m(mLqCn`7hrpe8Vg_PPMC?yjSAda-dZHt_jH*D zm7cl+%hS&BzExQ|$A8nMPC>T*(2)hZNAG`X`X#~2GtI~0Z3cd<$ulfBOoK9^ABFW& zZM-8qlsB<2m6M^-o4i3;8a;@voK!fJcl24e#;+PDo z)H=DVQ-l?l>sj78tdXa=j4{;Qz3=tg9o_rlH|m+#?lNR%)Stjj@;?(^6+CF^oC*## z7{9@gOA0kAs%a4gzTUqnZAZ&fqDJ;dpS0B@>Csm0FRSymEI*Dh?y&C##roW{Y@Km& zwAG&0z}N?B7pu7%HM)x4G&%37#i+wR{VQs>AHFA9E(r-kPrgd4**|QTBL8UMVcR~J zzq(cXcR?d^RIz70d-Eh)nA5{~tm`^qJz~%q>lIj`bK}Judz7)?e=G> Date: Sat, 7 Mar 2026 19:15:39 +0100 Subject: [PATCH 08/31] Language -> de --- README.md | 2 +- docs/zensical.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d84097d9..7053eafe 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Visit the **turnierplan.NET** documentation using the following link: [docs.turnierplan.net](https://docs.turnierplan.net). If you want to install **turnierplan.NET** on your server, please visit the [Installation guide](https://docs.turnierplan.net/installation). > [!NOTE] -> The user interface is currently only available in German 🇩🇪 +> The user interface and documentation are currently only available in German 🇩🇪 ## Development diff --git a/docs/zensical.toml b/docs/zensical.toml index 39d9936c..c6cb991e 100644 --- a/docs/zensical.toml +++ b/docs/zensical.toml @@ -27,7 +27,7 @@ nav = [ favicon = "images/favicon.ico" logo = "images/logo-64.png" -language = "en" +language = "de" font = false features = [ From 38bf73db585b8389eee002ab4ed2ba674c9ecdaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Sat, 7 Mar 2026 19:48:28 +0100 Subject: [PATCH 09/31] Home page in de --- docs/pages/index.md | 28 ++++++++++++++++++---------- docs/zensical.toml | 17 ++++++----------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/docs/pages/index.md b/docs/pages/index.md index 4aa15f57..a90d4d2c 100644 --- a/docs/pages/index.md +++ b/docs/pages/index.md @@ -1,20 +1,28 @@ --- -icon: lucide/library-big +icon: lucide/house --- -# Overview +# Startseite -turnierplan.NET is an **open-source tournament planning application** ([GitHub](github.com/turnierplan-NET/turnierplan.NET)) for football clubs and anyone else who wants to invite teams, create schedules and report match outcomes. +turnierplan.NET ist eine **Open-Source Webanwendung zur Organisation von Turnieren** in Fußballvereinen ([GitHub](https://github.com/turnierplan-NET/turnierplan.NET)). -
-- :fontawesome-brands-html5: __HTML__ for content and structure -- :fontawesome-brands-js: __JavaScript__ for interactivity -- :fontawesome-brands-css3: __CSS__ for text running out of boxes -- :fontawesome-brands-internet-explorer: __Internet Explorer__ ... huh? +
+- :lucide-land-plot: Flexible Spielpläne +- :lucide-shield-user: Benutzerverwaltung +- :lucide-globe: Öffentliche Ansicht für Besucher +- :lucide-file-text: Export von PDF-Dokumenten +- :lucide-settings: Zahlreiche Konfigurationsmöglichkeiten +- :lucide-mail: Verwaltung von Turnieranmeldungen
+## Made in Germany +turnierplan.NET wird hauptsächlich von Fußballfreunden aus dem nordöstlichen Baden-Württemberg, Deutschland verwendet und maintained 🇩🇪. -## Getting Started +Aus diesem Grund sind die Benutzeroberfläche sowie die Dokumentation aktuell ausschließlich in deutscher Sprache verfügbar. Zudem sind die verwendeten Begriffe und Funktionen speziell für die hierzulande üblichen Turniere und Veranstaltungen ausgelegt. Verbesserungsvorschläge sind jederzeit gerne gesehen und können im [Repo](https://github.com/turnierplan-NET/turnierplan.NET) hinterlassen werden. -To set up an instance of **turnierplan.NET** on your own server, visit the [Installation](installation.md) guide. +Falls turnierplan.NET dennoch für deinen Verein / deine Organisation infrage kommt: Der Quelltext und die Container-Images sind unter der [AGPL-3.0](https://github.com/turnierplan-NET/turnierplan.NET/blob/main/LICENSE) lizenziert und dementsprechend frei verwendbar. Mögliche Vorgehensweisen zum Erstellen eines eigenen Setups sind in der [Installationsanleitung](installation.md) beschrieben. + +## Technische Dokumentation + +Der Großteil der Anwendung ist in C# geschrieben und basiert auf dem [ASP.NET Core](https://dotnet.microsoft.com/en-us/apps/aspnet) Framework. Die primäre Datenbank, welche von turnierplan.NET verwendet wird, ist [PostgreSQL](https://www.postgresql.org/). Bilddateien werden außerhalb der Datenbank als lokale Dateien oder in einem cloud-basierten Blob-Storage gespeichert. Sämtliche administrative Aufgaben wie das Anlegen von Nutzern oder das Planen und Durchführen von Turnieren werden mit dem turnierplan.NET *Portal* erledigt. Dies ist eine [SPA](https://de.wikipedia.org/wiki/Single-Page-Webanwendung) basierend auf dem [Angular](https://angular.dev/) Framework. Öffentlich sichtbare HTML-Seiten werden allerdings direkt von der ASP.NET-Anwendung gerendert und bereitgestellt. diff --git a/docs/zensical.toml b/docs/zensical.toml index c6cb991e..a3a01cbc 100644 --- a/docs/zensical.toml +++ b/docs/zensical.toml @@ -1,9 +1,9 @@ [project] -site_name = "turnierplan.NET Documentation" +site_name = "turnierplan.NET Dokumentation" site_author = "turnierplan.NET" site_url = "https://docs.turnierplan.net/" -site_description = "The administrator and user documentation for turnierplan.NET" +site_description = "Admin- und Benutzerdokumentation für turnierplan.NET" repo_name = "turnierplan-NET/turnierplan.NET" repo_url = "https://github.com/turnierplan-NET/turnierplan.NET" @@ -14,13 +14,8 @@ copyright = "Copyright © 2026 Elias Hörner" docs_dir = "pages" nav = [ - { "Overview" = "index.md" }, - { "Installation" = "installation.md" }, - { "Installation 2" = [ - "test/index.md", - { "Installation" = "installation3.md" }, - { "Installation" = "installation4.md" }, - ]} + { "Startseite" = "index.md" }, + { "Installation" = "installation.md" } ] [project.theme] @@ -55,10 +50,10 @@ features = [ scheme = "default" accent = "green" toggle.icon = "lucide/sun" -toggle.name = "Switch to dark mode" +toggle.name = "In dunklen Modus wechseln" [[project.theme.palette]] scheme = "slate" accent = "green" toggle.icon = "lucide/moon" -toggle.name = "Switch to light mode" +toggle.name = "In hellen Modus wechseln" From d7b2c61e1c87d3889a40f90a6d1360504581ba64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Sat, 7 Mar 2026 19:51:28 +0100 Subject: [PATCH 10/31] Add navigation structure --- docs/pages/configuration.md | 7 ++ docs/pages/getting-started.md | 7 ++ docs/pages/installation.md | 198 +--------------------------------- docs/zensical.toml | 4 +- 4 files changed, 22 insertions(+), 194 deletions(-) create mode 100644 docs/pages/configuration.md create mode 100644 docs/pages/getting-started.md diff --git a/docs/pages/configuration.md b/docs/pages/configuration.md new file mode 100644 index 00000000..9c8d2c10 --- /dev/null +++ b/docs/pages/configuration.md @@ -0,0 +1,7 @@ +--- +icon: lucide/wrench +--- + +# Konfiguration + +Anleitung für Konfiguration diff --git a/docs/pages/getting-started.md b/docs/pages/getting-started.md new file mode 100644 index 00000000..33d5927f --- /dev/null +++ b/docs/pages/getting-started.md @@ -0,0 +1,7 @@ +--- +icon: lucide/rocket +--- + +# Erste Schritte + +Anleitung für Erste Schritte diff --git a/docs/pages/installation.md b/docs/pages/installation.md index c9bf6655..d3e2594e 100644 --- a/docs/pages/installation.md +++ b/docs/pages/installation.md @@ -1,195 +1,7 @@ -# Installation - -**turnierplan.NET** comes as a pre-built container image which can be deployed with minimal configuration. The image is available on GitHub: [ghcr.io/turnierplan-net/turnierplan](https://github.com/turnierplan-NET/turnierplan.NET/pkgs/container/turnierplan) - -## Getting Started - -In the simplest case, you can configure the container to use an in-memory data store. Note that this in-memory store is only meant for quick testing and is obviously not suitable for a production environment. - -```shell -docker run -p 80:8080 -e Database__InMemory="true" ghcr.io/turnierplan-net/turnierplan:latest -``` - -You should see the following output. The credentials of the initial admin user are displayed in the container logs. You can now open up http://localhost in your browser and log in using those credentials. - -``` - __ ___ __ - /\ \__ __ /\_ \ /\ \__ - \ \ ,_\ __ __ _ __ ___ /\_\ __ _ __ _____\//\ \ __ ___ ___ __\ \ ,_\ - \ \ \/ /\ \/\ \/\`'__\/' _ `\/\ \ /'__`\/\`'__\/\ '__`\\ \ \ /'__`\ /' _ `\ /' _ `\ /'__`\ \ \/ - \ \ \_\ \ \_\ \ \ \/ /\ \/\ \ \ \/\ __/\ \ \/ \ \ \L\ \\_\ \_/\ \L\.\_/\ \/\ \ __/\ \/\ \/\ __/\ \ \_ - \ \__\\ \____/\ \_\ \ \_\ \_\ \_\ \____\\ \_\ \ \ ,__//\____\ \__/.\_\ \_\ \_\/\_\ \_\ \_\ \____\\ \__\ - \/__/ \/___/ \/_/ \/_/\/_/\/_/\/____/ \/_/ \ \ \/ \/____/\/__/\/_/\/_/\/_/\/_/\/_/\/_/\/____/ \/__/ - \ \_\ - \/_/ v2025.4.0 - -info: Turnierplan.ImageStorage.Local.LocalImageStorage[0] - Using the following directory for local image storage: '/var/turnierplan/images' -info: Turnierplan.App.DatabaseMigrator[0] - An initial user was created: You can log in using "admin" and the password "53fe6bac-1050-4801-bb11-be2dbd479d66". IMMEDIATELY change this password when running in a production environment! -info: Microsoft.Hosting.Lifetime[14] - Now listening on: http://[::]:8080 -info: Microsoft.Hosting.Lifetime[0] - Application started. Press Ctrl+C to shut down. -info: Microsoft.Hosting.Lifetime[0] - Hosting environment: Production -info: Microsoft.Hosting.Lifetime[0] - Content root path: /app -``` - -## Persisting Data - -The application stores the following data in the `/var/turnierplan` directory: - -- `/var/turnierplan/identity/jwt-signing-key.bin` - The SHA512 signature key used to sign and verify JWT tokens. -- `/var/turnierplan/images/**` - If not configured otherwise (see [section below](#storing-images)), this folder will contain all uploaded image files. - -Therefore, there should always be a volume mapping for this path. - -## Environment Variables - -For a basic installation, the following environment variables must be set: - -| Environment Variable | Description | -|-------------------------------|--------------------------------------------------------------| -| `Turnierplan__ApplicationUrl` | The URL used to access the website. | -| `Database__ConnectionString` | The PostgreSQL connection string with read/write permission. | - -The following environment variables can be set if you want to enable specific features or modify default behavior: - -| Environment Variable | Description | Default | -|-----------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------| -| `ApplicationInsights__ConnectionString` | Can be set if you wish that your instance sends telemetry data to [Azure Application Insights](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview). | - | -| `Identity__AccessTokenLifetime` | Defines the lifetime of issued JWT access tokens. | `00:03:00` | -| `Identity__RefreshTokenLifetime` | Defines the lifetime of issued JWT refresh tokens. | `1.00:00:00` | -| `Turnierplan__InstanceName` | The instance name is displayed in the header/footer of the public pages. If not specified, the string `turnierplan.NET` will be shown instead. | - | -| `Turnierplan__LogoUrl` | The URL of the custom logo to be displayed in the header of the public pages. If not specified, the turnierplan.NET logo will be shown instead. | - | -| `Turnierplan__ImprintUrl` | The URL of your external imprint page if you want it to be linked on the public pages. | - | -| `Turnierplan__PrivacyUrl` | The URL of your external privacy page if you want it to be linked on the public pages. | - | -| `Turnierplan__ImageMaxSize` | The maximum allowed file size when uploading an image file. The default value equates to 8 MiB (8 · 1024 · 1024) | `8388608` | -| `Turnierplan__ImageQuality` | Uploaded images are compressed using the `webp` format with the specified quality. A value of `100` will result in lossless compression being uesd. | `80` | - -!!! note - The token lifetimes must be specified as .NET `TimeSpan` strings. For example `00:03:00` means 3 minutes or `1.00:00.00` means 1 day. - -## Docker Compose - -A minimal recommended configuration for a production environment is shown in the following docker compose example: - -```yaml -services: - turnierplan.database: - image: postgres:latest - environment: - - POSTGRES_PASSWORD=P@ssw0rd - - POSTGRES_DB=turnierplan - volumes: - - turnierplan-database-data:/var/lib/postgresql/data - networks: - - turnierplan - restart: unless-stopped - - turnierplan.app: - image: ghcr.io/turnierplan-net/turnierplan:latest - depends_on: - - turnierplan.database - environment: - - Turnierplan__ApplicationUrl=http://localhost - - Database__ConnectionString=Host=turnierplan.database;Database=turnierplan;Username=postgres;Password=P@ssw0rd - volumes: - - turnierplan-app-data:/var/turnierplan - networks: - - turnierplan - restart: unless-stopped - ports: - - '80:8080' - -volumes: - turnierplan-database-data: - turnierplan-app-data: - -networks: - turnierplan: -``` - -!!! tip - It is recommended to not use the latest tag. Rather, pin your docker services to a specific image version. - -Feel free to modify the environment variables or add additional ones as described in the [environment variables](#environment-variables) section above. +--- +icon: lucide/server +--- -## Storing Images - -By default, all uploaded image files are stored in the `/var/turnierplan/images` directory. Whilst this is a very simple solution, it also means that the turnierplan.NET backend will serve all image files which can potentially lead to high load on the application server. Alternatively, you can configure the application to save image files to an external storage service. This way, clients can load the images directly from the external service. - -!!! warning - The differnt implementations do not necessarily use the same folder structure to organizie the files. Because of this, migrating from one image storage implementation to another can be difficult - so choose wisely! - -The following implementations are currently available: - -- **Local** - The default, which saves images in a local folder as described above -- **AWS S3** (or compatible) -- **Azure Blob Storage** - -### Configuring AWS S3 - -To store uploaded images in an AWS S3 or S3-compatible bucket, add the following environment variables to your deployment: - -| Environment Variable | Description | -|---------------------------------|--------------------------------------------------| -| `ImageStorage__Type` | The image storage type, **must** be `S3`. | -| `ImageStorage__RegionEndpoint` | The AWS region endpoint, such as `eu-central-1`. | -| `ImageStorage__ServiceUrl` | The service URL when using a non-AWS S3 bucket. | -| `ImageStorage__AccessKey` | The access key identifier. | -| `ImageStorage__AccessKeySecret` | The access key secret. | -| `ImageStorage__BucketName` | The name of the bucket. | - -The access key must have permissions to create, read and delete objects. - -The `RegionEndpoint` and `ServiceUrl` variables are *mutually exclusive*. Use the former if you are using an AWS S3 bucket and use the latter if you use a S3-compatible bucket from a third party. - -### Configuring Azure Blob Storage - -To store uploaded images in an [Azure Blob Storage](https://azure.microsoft.com/en-us/products/storage/blobs/) container, add the following environment variables to your deployment: - -| Environment Variable | Description | -|------------------------------------|----------------------------------------------| -| `ImageStorage__Type` | The image storage type, **must** be `Azure`. | -| `ImageStorage__StorageAccountName` | The name of the storage account. | -| `ImageStorage__ContainerName` | The name of the blob container. | - -By default, a [DefaultAzureCredential](https://learn.microsoft.com/en-us/dotnet/api/azure.identity.defaultazurecredential?view=azure-dotnet) will be used. Therefore, if you use Azure Managed Identities, you won't have to do any further configuration. In addition, this implementation supports two additional means of authentication listed below. - -When using Entra ID based authentication, the managed identity / app registration must have permission to create/read/delete blobs in the storage account. This can be achieved by assigning the [Storage Blob Data Contributor](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles/storage#storage-blob-data-contributor) role. - -#### Access key authentication - -Refer to the [documentation](https://learn.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage?tabs=azure-portal) on how to view and manage the access keys. - -The following environment variables must be set to enable access key authentication: - -| Environment Variable | Description | -|-------------------------------|--------------------------------------------------| -| `ImageStorage__UseAccountKey` | Set to `true` to use account key authentication. | -| `ImageStorage__AccountKey` | The value of the account key. | - -#### Client secret authentication - -If you have an Entra ID app registration with the necessary permissions on the storage account, you can set the following environment variables to enable client secret authentication: - -| Environment Variable | Description | -|---------------------------------|---------------------------------------------------------| -| `ImageStorage__UseClientSecret` | Set to `true` to use client credentials authentication. | -| `ImageStorage__TenantId` | The tenant id where the app registration resides. | -| `ImageStorage__ClientId` | The client id of the *app registration*. | -| `ImageStorage__ClientSecret` | The value of the client secret. | - -## Troubleshooting - -Below are troubleshooting steps for some issues you might encounter during installation. - -### Connecting over HTTP - -If you are connecting to a remote (non-`localhost`) turnierplan.NET server via HTTP, you should see a *401 Unauthorized* error after logging in with your valid credentials. This is because turnierplan.NET uses secure cookies by default. You can set the `Identity__UseInsecureCookies` environment variable to `true` to change this behavior. +# Installation -!!! danger - Using HTTP is obviously not the way to go if you are connecting over the internet. For local setups this might be fine, though it is still discouraged. Most importantly, it is **not officially supported** because some parts of the client application rely on HTTPS-only browser APIs to work properly (such as clipboard or crypto). +Anleitung für Installation diff --git a/docs/zensical.toml b/docs/zensical.toml index a3a01cbc..430693f9 100644 --- a/docs/zensical.toml +++ b/docs/zensical.toml @@ -15,7 +15,9 @@ docs_dir = "pages" nav = [ { "Startseite" = "index.md" }, - { "Installation" = "installation.md" } + { "Installation" = "installation.md" }, + { "Konfiguration" = "configuration.md" }, + { "Erste Schritte" = "getting-started.md" } ] [project.theme] From df3b3d28dee6c2f8db76d532a580121d5f5bb73e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Thu, 12 Mar 2026 20:49:45 +0100 Subject: [PATCH 11/31] Installation -> DE --- docs/pages/installation.md | 87 +++++++++++++++++++++++++++++++++++++- 1 file changed, 86 insertions(+), 1 deletion(-) diff --git a/docs/pages/installation.md b/docs/pages/installation.md index d3e2594e..cec32be1 100644 --- a/docs/pages/installation.md +++ b/docs/pages/installation.md @@ -4,4 +4,89 @@ icon: lucide/server # Installation -Anleitung für Installation +Dieser Artikel beschreibt verschiedene Möglichkeiten, **turnierplan.NET** mithilfe des offiziellen Container-Images bereitzustellen. + +## Container-Image + +Innerhalb der GitHub-Organisation wird für jedes [Release](https://github.com/turnierplan-NET/turnierplan.NET/releases) das offizielle Container-Image veröffentlicht: [ghcr.io/turnierplan-net/turnierplan](https://github.com/turnierplan-NET/turnierplan.NET/pkgs/container/turnierplan) + +Um turnierplan.NET lokal zu testen, kann der folgende Befehl verwendet werden: + +```shell +docker run -p 80:8080 -e Database__InMemory="true" ghcr.io/turnierplan-net/turnierplan:latest +``` + +Die Weboberfläche kann über [localhost:80](http://localhost:80) erreicht werden. Der Benutzername und das initiale Passwort für den Administratorbenutzer werden in den Container-Logs angezeigt. Nach einem Neustart des Containers gehen allerdings alle Daten verloren, da eine in-memory Datenbank verwendet wird. + +## Deployment + +Für ein produktives Deployment gibt es nachfolgende Möglichkeiten basierend auf dem Container-Image. Weitere Methoden werden in der Zukunft aufgelistet. + +### Docker Compose + +Für die Installation auf einem lokalen Rechner oder einer VM kann im einfachsten Fall Docker Compose verwendet werden. Nachfolgend ein Minimalbeispiel für eine `docker-compose.yaml`: + +```yaml +services: + turnierplan.database: + image: postgres:latest + environment: + - POSTGRES_PASSWORD=P@ssw0rd + - POSTGRES_DB=turnierplan + volumes: + - turnierplan-database-data:/var/lib/postgresql + networks: + - turnierplan + restart: unless-stopped + + turnierplan.application: + image: ghcr.io/turnierplan-net/turnierplan:latest + depends_on: + - turnierplan.database + environment: + - Turnierplan__ApplicationUrl=http://localhost + - Database__ConnectionString=Host=turnierplan.database;Database=turnierplan;Username=postgres;Password=P@ssw0rd + volumes: + - turnierplan-application-data:/var/turnierplan + networks: + - turnierplan + restart: unless-stopped + ports: + - '80:8080' + +volumes: + turnierplan-application-data: + turnierplan-database-data: + +networks: + turnierplan: +``` + +Statt dem `latest`-Tag sollte immer eine spezifische Version für die Images der Datenbank und von turnierplan.NET verwendet werden. Dies ermöglicht eine bessere Kontrolle, welche Updates wann eingespielt werden. Die neuste Version ist auf der [Release-Seite](https://github.com/turnierplan-NET/turnierplan.NET/releases) der Repository auffindbar. + +Die URL, welche letztendlich für den Zugriff auf turnierplan.NET verwendet wird, sollte in der Umgebungsvariable `Turnierplan__ApplicationUrl` spezifiziert werden. Falls bspw. eine Domain `example.com` verwendet wird, sollte der Wert der Umgebungsvariable `https://example.com` sein. Falls turnierplan.NET im lokalen Netzwerk gehostet wird, könnte der Wert bspw. `http://192.168.0.187` sein. Es muss natürlich das korrekte Protokoll (HTTP vs. HTTPS) verwendet werden. + +Die Volume-Mounts sind im [nachfolgenden Abschnitt](#volume-mounts) näher beschrieben. Je nach Konfiguration kann das Volume-Mount vom turnierlpan.NET-Container auch überflüssig sein. + +Beim ersten Starten der Anwendung werden alle Datenbankmigrationen durchgeführt und es wird ein initialer Administrator-Benutzer angelegt. Die Zugangsdaten werden in den Container-Logs angezeigt. Mit diesen Zugangsdaten kann sich in der Weboberfläche unter [localhost:80](http://localhost:80) (bzw. je nach Konfiguration mit entsprechender Domain) eingeloggt werden. + +!!! danger + **Wichtige Sicherheitshinweise**: + + - Das Datenbankpasswort `POSTGRES_PASSWORD` in der Compose-Datei sollte durch ein zufällig generiertes Passwort ersetzt werden. Dementsprechend muss dann auch der Connection-String der Anwendung angepasst werden. + - Der turnierplan.NET-Server sollte niemals ohne Reverse Proxy mit SSL-Terminierung im Internet erreichbar sein. Hierfür kann z.B. [nginx](https://nginx.org/) verwendet werden. + +## Volume Mounts + +Die turnierplan.NET-Anwendung speichert diverse Dateien in folgendem Verzeichnis innerhalb vom Container: `/var/turnierplan`. Bei einer Standardkonfiguration sollte dieses Verzeichnis in einem Docker Volume oder vergleichbar persistiert werden. Die folgenden Daten werden innerhalb vom o.g. Verzeichnis gespeichert: + +- **Bild-Uploads**: Sofern keine anderweitige Speicherung von Bildern (wie z.B. S3) konfiguriert ist. +- **JWT Signatur-Schlüssel**: Sofern kein Schlüssel via Umgebungsvariable spezifiziert wird, generiert die Anwendung beim ersten Start einen zufälligen symmetrischen SHA512 Schlüssel zur Signatur der JWT-Tokens. Wenn der Schlüssel nicht persistiert wird, wird er bei jedem Start des Servers neu generiert und alle zuvor ausgestellten JWT-Tokens werden ungültig. + +In der [Konfigurationsanleitung](./configuration) sind weitere Details beschrieben. + +## Aktualisierung + +Die verwendete Version von turnierplan.NET kann jederzeit auf eine neuere aktualisiert werden. Etwaige Datenbankmigrationen werden beim ersten Start sequenziell angewandt - auch wenn Versionen übersprungen werden. Allerdings sollten vor jeder Aktualisierung *immer* die [Release-Notes](https://github.com/turnierplan-NET/turnierplan.NET/releases) gelesen werden! Es kann jederzeit nicht-rückwärtskompatible Änderungen geben. + +Zudem wird empfohlen, vor jeder Aktualisierung der turnierplan.NET-Anwenung *oder* der verwendeten PostgreSQL-Version ein Datenbankupdate zu erstellen. Dies kann z.B. mit dem [pg_dump](https://www.postgresql.org/docs/current/app-pgdump.html)-Tool gemacht werden. From 660e19b0c97cc0c30210050b0ab470c81a9f1257 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Thu, 12 Mar 2026 20:53:35 +0100 Subject: [PATCH 12/31] 2: Installation -> DE --- docs/pages/installation.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/pages/installation.md b/docs/pages/installation.md index cec32be1..def080d0 100644 --- a/docs/pages/installation.md +++ b/docs/pages/installation.md @@ -83,10 +83,12 @@ Die turnierplan.NET-Anwendung speichert diverse Dateien in folgendem Verzeichnis - **Bild-Uploads**: Sofern keine anderweitige Speicherung von Bildern (wie z.B. S3) konfiguriert ist. - **JWT Signatur-Schlüssel**: Sofern kein Schlüssel via Umgebungsvariable spezifiziert wird, generiert die Anwendung beim ersten Start einen zufälligen symmetrischen SHA512 Schlüssel zur Signatur der JWT-Tokens. Wenn der Schlüssel nicht persistiert wird, wird er bei jedem Start des Servers neu generiert und alle zuvor ausgestellten JWT-Tokens werden ungültig. -In der [Konfigurationsanleitung](./configuration) sind weitere Details beschrieben. +## Konfiguration + +turnierplan.NET bietet zahlreiche Konfigurationsmöglichkeiten zur Anbindung von Externen System sowie zur Individualisierung. Alle Optionen können mit Umgebungsvariablen gesetzt werden und sind in der [Konfigurationsanleitung](./configuration) aufgelistet und beschrieben. ## Aktualisierung Die verwendete Version von turnierplan.NET kann jederzeit auf eine neuere aktualisiert werden. Etwaige Datenbankmigrationen werden beim ersten Start sequenziell angewandt - auch wenn Versionen übersprungen werden. Allerdings sollten vor jeder Aktualisierung *immer* die [Release-Notes](https://github.com/turnierplan-NET/turnierplan.NET/releases) gelesen werden! Es kann jederzeit nicht-rückwärtskompatible Änderungen geben. -Zudem wird empfohlen, vor jeder Aktualisierung der turnierplan.NET-Anwenung *oder* der verwendeten PostgreSQL-Version ein Datenbankupdate zu erstellen. Dies kann z.B. mit dem [pg_dump](https://www.postgresql.org/docs/current/app-pgdump.html)-Tool gemacht werden. +Zudem wird empfohlen, vor jeder Aktualisierung der turnierplan.NET-Anwendung *oder* der verwendeten PostgreSQL-Version ein Datenbankupdate zu erstellen. Dies kann z.B. mit dem [pg_dump](https://www.postgresql.org/docs/current/app-pgdump.html)-Tool gemacht werden. From 07f2dda0adcd383aeda55b00d9b0e011112d5d45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Thu, 12 Mar 2026 21:03:16 +0100 Subject: [PATCH 13/31] Start working on config -> de --- docs/pages/configuration.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/docs/pages/configuration.md b/docs/pages/configuration.md index 9c8d2c10..7079dca8 100644 --- a/docs/pages/configuration.md +++ b/docs/pages/configuration.md @@ -4,4 +4,26 @@ icon: lucide/wrench # Konfiguration -Anleitung für Konfiguration +Unabhängig vom Deployment und der verwendeten Hardware/Server bietet turnierplan.NET zahlreiche Konfigurationsmöglichkeiten, welche nachfolgend näher beschrieben sind. + +## Erforderliche Einstellungen + +Für eine produktive Installation müssen die folgenden Umgebungsvariablen zwingend gesetzt sein: + +| Umgebungsvariable | Beschreibung | +|-------------------------------|--------------------------------------------------------------------| +| `Turnierplan__ApplicationUrl` | Die URL, welche für den Web-Zugriff auf den Server verwendet wird. | +| `Database__ConnectionString` | Connection-String für die PostgreSQL-Datenbank. | + +## Allgemeine Einstellungen + +Die folgenden Einstellungen können gesetzt werden, um das allgemeine Aussehen und Verhalten von turnierplan.NET zu konfigurieren: + +| Umgebungsvariable | Beschreibung | Standard | +|------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------| +| `Turnierplan__InstanceName` | Dieser Name wird in der Kopfzeile und Fußzeile von den öffentlichen Seiten angezeigt. Falls nicht spezifiert, wird der Text `turnierplan.NET` angezeigt. | - | +| `Turnierplan__LogoUrl` | Die URL für das Vereins-/Firmenlogo, welches in der Kopfzeile von öffentlichen Seiten angezeigt werden soll. Falls nicht spezifiert, wird das turnierplan.NET-Logo angezeigt. | - | +| `Turnierplan__ImprintUrl` | Die URL für den Verweis auf ein externes Impressum, welches bspw. auf Ihrer Vereins-/Firmenseite gehostet ist. | - | +| `Turnierplan__PrivacyUrl` | Die URL für den Verweis auf eine externe Datenschutz-Seite, welche bspw. auf Ihrer Vereins-/Firmenseite gehostet ist. | - | +| `Turnierplan__ImageMaxSize` | Die maximale Dateigröße für Bild-Uploads in Bytes. Der Standard-Wert entspricht 8 MiB (8 · 1024 · 1024) | `8388608` | +| `Turnierplan__ImageQuality` | Die Qualitätseinstellung für Bild-Uploads. Ein Wert von `100` entspricht einer verlustfreien Komprimierung. Verwendet wird das `webp`-Format. | `80` | From 25dea4a7b29fef6eae3feeb67f24da4902c5cb1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Fri, 13 Mar 2026 16:36:14 +0100 Subject: [PATCH 14/31] More config -> de --- docs/pages/configuration.md | 40 +++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/docs/pages/configuration.md b/docs/pages/configuration.md index 7079dca8..6ef868ef 100644 --- a/docs/pages/configuration.md +++ b/docs/pages/configuration.md @@ -19,11 +19,35 @@ Für eine produktive Installation müssen die folgenden Umgebungsvariablen zwing Die folgenden Einstellungen können gesetzt werden, um das allgemeine Aussehen und Verhalten von turnierplan.NET zu konfigurieren: -| Umgebungsvariable | Beschreibung | Standard | -|------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------| -| `Turnierplan__InstanceName` | Dieser Name wird in der Kopfzeile und Fußzeile von den öffentlichen Seiten angezeigt. Falls nicht spezifiert, wird der Text `turnierplan.NET` angezeigt. | - | -| `Turnierplan__LogoUrl` | Die URL für das Vereins-/Firmenlogo, welches in der Kopfzeile von öffentlichen Seiten angezeigt werden soll. Falls nicht spezifiert, wird das turnierplan.NET-Logo angezeigt. | - | -| `Turnierplan__ImprintUrl` | Die URL für den Verweis auf ein externes Impressum, welches bspw. auf Ihrer Vereins-/Firmenseite gehostet ist. | - | -| `Turnierplan__PrivacyUrl` | Die URL für den Verweis auf eine externe Datenschutz-Seite, welche bspw. auf Ihrer Vereins-/Firmenseite gehostet ist. | - | -| `Turnierplan__ImageMaxSize` | Die maximale Dateigröße für Bild-Uploads in Bytes. Der Standard-Wert entspricht 8 MiB (8 · 1024 · 1024) | `8388608` | -| `Turnierplan__ImageQuality` | Die Qualitätseinstellung für Bild-Uploads. Ein Wert von `100` entspricht einer verlustfreien Komprimierung. Verwendet wird das `webp`-Format. | `80` | +| Umgebungsvariable | Beschreibung | Standard | +|------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------| +| `Turnierplan__InstanceName` | Dieser Name wird in der Kopfzeile und Fußzeile von den öffentlichen Seiten angezeigt. Falls nicht spezifiert, wird der Text `turnierplan.NET` angezeigt. | - | +| `Turnierplan__LogoUrl` | Die URL für das Vereins-/Firmenlogo, welches in der Kopfzeile von öffentlichen Seiten angezeigt werden soll. Falls nicht spezifiert, wird das turnierplan.NET-Logo angezeigt. | - | +| `Turnierplan__ImprintUrl` | Die URL für den Verweis auf ein externes Impressum, welches bspw. auf Ihrer Vereins-/Firmenseite gehostet ist. | - | +| `Turnierplan__PrivacyUrl` | Die URL für den Verweis auf eine externe Datenschutz-Seite, welche bspw. auf Ihrer Vereins-/Firmenseite gehostet ist. | - | +| `Turnierplan__ImageMaxSize` | Die maximale Dateigröße für Bild-Uploads in Bytes. Der Standard-Wert entspricht 8 MiB (8 · 1024 · 1024) | `8388608` | +| `Turnierplan__ImageQuality` | Die Qualitätseinstellung für Bild-Uploads. Ein Wert von `100` entspricht einer verlustfreien Komprimierung. Verwendet wird das `webp`-Format. | `80` | +| `Turnierplan__InitialUserName` | Der Benutzername für den initalen Administratorbenutzer. Sofern nicht angegeben, wird der Benutzername von der Anwendung vorgegeben und beim ersten Start in der Konsole ausgegeben. | - | +| `Turnierplan__InitialUserPassword` | Das Passwort für den initialen Administratorbenutzer. Sofern nicht angegeben, wird beim ersten Start der Anwendung ein zufälliges Passwort generiert und in der Konsole ausgegeben. | - | + +## Monitoring + +Der turnierplan.NET-Server kann Telemetriedaten (Logs, Metrics & Traces) an Azure Application Insights senden: + +| Umgebungsvariable | Beschreibung | Standard | +|-----------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|----------| +| `ApplicationInsights__ConnectionString` | Kann gesetzt werden, um Daten an [Azure Application Insights](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview) zu senden. | - | + +## Authentifizierung + +Die folgenden Einstellungen können gesetzt werden, um die Benutzerauthentifizierung von turnierplan.NET zu konfigurieren: + +| Umgebungsvariable | Beschreibung | Standard | +|----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------| +| `Identity__AccessTokenLifetime` | Die Gültigkeitsdauer von ausgestellten Access-Tokens. | `00:03:00` | +| `Identity__RefreshTokenLifetime` | Die Gültigkeitsdauer von ausgestellten Refresh-Tokens. Innerhalb diesem Zeitraum ist kein erneuter Login erforderlich. | `1.00:00:00` | +| `Identity__StoragePath` | Das Verzeichnis innerhalb vom Container, wo der Schlüssel zur Signatur ausgesteller Tokens gespeichert wird. | `/var/turnierplan/identity` | +| `Identity__UseInsecureCookies` | Kann auf `true` gesetzt werde, um HTTP Cookies ohne *secure* auszustellen. Dies ist erforderlich, wenn nicht mit HTTPS auf turnierplan.NET zugegriffen wird. | `false` | + +!!! note + Die Gültigkeitsdauer muss als .NET `TimeSpan` formatiert werden. Das Format ist `HH:mm:ss` bzw. `d.HH:mm:ss` also bspw. `00:03:00` für 3 Minuten oder `1.00:00:00` für 1 Tag. From 6f30a5474d092d29f348f1f74d6435163eea5168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Fri, 13 Mar 2026 16:42:59 +0100 Subject: [PATCH 15/31] Strzucture for image uploads --- docs/pages/configuration.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docs/pages/configuration.md b/docs/pages/configuration.md index 6ef868ef..05ee0a1f 100644 --- a/docs/pages/configuration.md +++ b/docs/pages/configuration.md @@ -51,3 +51,28 @@ Die folgenden Einstellungen können gesetzt werden, um die Benutzerauthentifizie !!! note Die Gültigkeitsdauer muss als .NET `TimeSpan` formatiert werden. Das Format ist `HH:mm:ss` bzw. `d.HH:mm:ss` also bspw. `00:03:00` für 3 Minuten oder `1.00:00:00` für 1 Tag. + +## Bilder-Uploads + +Standardmäßig werden alle Bilder-Uploads als Dateien in einem Container-Verzeichnis gespeichert. Das entsprechende Verzeichnis sollte [als Volume persistiert](http://localhost:8000/installation/#volume-mounts) werden. + +| Umgebungsvariable | Beschreibung | Standard | +|-----------------------------|----------------------------------------------------------------------------------|---------------------------| +| `ImageStorage__StoragePath` | Das Verzeichnis innerhalb vom Container, hochgeladene Bilder gespeichert werden. | `/var/turnierplan/images` | + +Alternativ können externe Services zum Speichern der Bilder konfiguriert werden. Dies hat den Vorteil, dass das Bereitstellen von Bilddateien keine CPU- und Netzwerkresourcen vom turnierplan.NET-Server beansprucht. Aktuell werden die folgenden externen Services unterstützt: + +- **AWS S3** (oder kompatibler Dienst) +- **Azure Blob Storage** + +!!! warning + Die nachfolgend vorgestellten Alternativen verwenden nicht zwangsläufig eine identische Verzeichnisstruktur zur Organisation der Dateien. Dadurch wird eine nachträgliche Umstellung ggf. erschwert! + +### AWS S3 + +todo + +### Azure Blob Storage + +todo + From 8f87b9806381ff6a7377d66c8be42ba81b5aaf0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Fri, 13 Mar 2026 16:49:12 +0100 Subject: [PATCH 16/31] AWS S3 --- docs/pages/configuration.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/pages/configuration.md b/docs/pages/configuration.md index 05ee0a1f..d98288f7 100644 --- a/docs/pages/configuration.md +++ b/docs/pages/configuration.md @@ -70,7 +70,20 @@ Alternativ können externe Services zum Speichern der Bilder konfiguriert werden ### AWS S3 -todo +Um Bilder in einem AWS S3 oder S3-kompatiblen Bucket zu speichern, müssen die folgenden Umgebungsvariablen gesetzt werden: + +| Umgebungsvariable | Beschreibung | +|---------------------------------|------------------------------------------------------------------| +| `ImageStorage__Type` | Muss `S3` sein. | +| `ImageStorage__RegionEndpoint` | Der Name der AWS-Region, bspw. `eu-central-1`. | +| `ImageStorage__ServiceUrl` | Die Service-URL, falls ein S3-kompatibler Bucket verwendet wird. | +| `ImageStorage__AccessKey` | Der Name vom Access-Key. | +| `ImageStorage__AccessKeySecret` | Der geheime Schlüssel vom Access-Key. | +| `ImageStorage__BucketName` | Der Bucket-Name. | + +Der verwendete Access-Key benötigt Rechte zum Erstellen, Lesen und Löschen von Objekten. + +Die Eigenschaften `RegionEndpoint` und `ServiceUrl` schließen sich *gegenseitig aus*! Ersteres muss verwendet werden, wenn ein AWS S3-Bucket verwendet wird. Letztere muss verwendet werden, wenn ein S3-kompatibler Bucket von einem Drittanbieter verwendet wird. ### Azure Blob Storage From d68341b96b2012c60683e81e31ba0e98add7a1fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Fri, 13 Mar 2026 16:50:22 +0100 Subject: [PATCH 17/31] AWS S3 --- docs/pages/configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pages/configuration.md b/docs/pages/configuration.md index d98288f7..ce9eb742 100644 --- a/docs/pages/configuration.md +++ b/docs/pages/configuration.md @@ -78,7 +78,7 @@ Um Bilder in einem AWS S3 oder S3-kompatiblen Bucket zu speichern, müssen die f | `ImageStorage__RegionEndpoint` | Der Name der AWS-Region, bspw. `eu-central-1`. | | `ImageStorage__ServiceUrl` | Die Service-URL, falls ein S3-kompatibler Bucket verwendet wird. | | `ImageStorage__AccessKey` | Der Name vom Access-Key. | -| `ImageStorage__AccessKeySecret` | Der geheime Schlüssel vom Access-Key. | +| `ImageStorage__AccessKeySecret` | Der Schlüssel vom Access-Key. | | `ImageStorage__BucketName` | Der Bucket-Name. | Der verwendete Access-Key benötigt Rechte zum Erstellen, Lesen und Löschen von Objekten. From 3f0b40fdbc1e9185117388d3c7067e17d9201ee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Fri, 13 Mar 2026 17:00:42 +0100 Subject: [PATCH 18/31] Azure aimage storage --- docs/pages/configuration.md | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/docs/pages/configuration.md b/docs/pages/configuration.md index ce9eb742..8f25afce 100644 --- a/docs/pages/configuration.md +++ b/docs/pages/configuration.md @@ -87,5 +87,34 @@ Die Eigenschaften `RegionEndpoint` und `ServiceUrl` schließen sich *gegenseitig ### Azure Blob Storage -todo +Um Bilder in einem [Azure Blob Storage](https://azure.microsoft.com/en-us/products/storage/blobs/) Container zu speichern, müssen die folgenden Umgebungsvariablen gesetzt werden: +| Umgebungsvariable | Beschreibung | +|------------------------------------|-------------------------------------------------------------| +| `ImageStorage__Type` | Muss `Azure` sein. | +| `ImageStorage__StorageAccountName` | Der Name des Azure Blob Storage Account. | +| `ImageStorage__ContainerName` | Der Name des Containers innerhalb vom o.g. Storage Account. | + +Standardmäßig wird ein [DefaultAzureCredential](https://learn.microsoft.com/en-us/dotnet/api/azure.identity.defaultazurecredential?view=azure-dotnet) verwendet. Falls also bspw. der turnierplan.NET-Container innerhalb eines Azure App Service betrieben wird, kann für diesen App Service eine Managed Identity erstellt und auf den Blob Storage Account berechtigt werden. Weitere Konfigurationsmöglichkeiten für Deployment-Szenarien, in denen keine Managed Identities verwendet werden können, sind nachfolgend beschrieben. + +Sofern eine Entra ID-basierte Authentifizierung verwendet wird (dies betrifft alle Optionen außer Access Keys), muss die entsprechende Managed Identity bzw. App-Registrierung die Rechte zum Erstellen, Lesen und Löschen von Blobs innerhalb vom Storage Account haben. Dies kann am besten mit der Zuweisung der Rolle [Storage Blob Data Contributor](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles/storage#storage-blob-data-contributor) erreicht werden. + +#### Account Key + +Die Erstellung von einem Account Key ist in der [Dokumentation von Microsoft](https://learn.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage?tabs=azure-portal) beschrieben. Um einen Account Key zu verwenden, müssen die folgenden Umgebungsvariablen *zusätzlich* zu den oben genannten gesetzt werden: + +| Umgebungsvariable | Beschreibung | +|-------------------------------|-----------------------------------------------| +| `ImageStorage__UseAccountKey` | Muss `true` sein, um Acount Key zu verwenden. | +| `ImageStorage__AccountKey` | Der eigentliche Account Key. | + +#### Client Secret + +Hierfür ist eine App-Registrierung innerhalb von Entra ID notwendig, welche wie o.g. die notwendigen Zugriffsrechte auf dem Blob Storage Account hat. Innerhalb der App-Registrierung muss zudem ein Client Secret angelegt werden. Um dieses zu verwenden, müssen die folgenden Umgebungsvariablen *zusätzlich* zu den oben genannten gesetzt werden: + +| Umgebungsvariable | Beschreibung | +|---------------------------------|-------------------------------------------------------------| +| `ImageStorage__UseClientSecret` | Muss `true` sein, um Client Secret zu verwenden. | +| `ImageStorage__TenantId` | Die ID des Tenant, wo die App-Registrierung angelegt wurde. | +| `ImageStorage__ClientId` | Die Client-ID der App-Registrierung. | +| `ImageStorage__ClientSecret` | Der Wert des angelegten Client Secrets. | From bd3a9ef122ecc2ac8785b9ae24dd318d2bf6f254 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Fri, 13 Mar 2026 17:01:37 +0100 Subject: [PATCH 19/31] Mov config sectinos --- docs/pages/configuration.md | 46 +++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/docs/pages/configuration.md b/docs/pages/configuration.md index 8f25afce..660815b2 100644 --- a/docs/pages/configuration.md +++ b/docs/pages/configuration.md @@ -30,28 +30,6 @@ Die folgenden Einstellungen können gesetzt werden, um das allgemeine Aussehen u | `Turnierplan__InitialUserName` | Der Benutzername für den initalen Administratorbenutzer. Sofern nicht angegeben, wird der Benutzername von der Anwendung vorgegeben und beim ersten Start in der Konsole ausgegeben. | - | | `Turnierplan__InitialUserPassword` | Das Passwort für den initialen Administratorbenutzer. Sofern nicht angegeben, wird beim ersten Start der Anwendung ein zufälliges Passwort generiert und in der Konsole ausgegeben. | - | -## Monitoring - -Der turnierplan.NET-Server kann Telemetriedaten (Logs, Metrics & Traces) an Azure Application Insights senden: - -| Umgebungsvariable | Beschreibung | Standard | -|-----------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|----------| -| `ApplicationInsights__ConnectionString` | Kann gesetzt werden, um Daten an [Azure Application Insights](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview) zu senden. | - | - -## Authentifizierung - -Die folgenden Einstellungen können gesetzt werden, um die Benutzerauthentifizierung von turnierplan.NET zu konfigurieren: - -| Umgebungsvariable | Beschreibung | Standard | -|----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------| -| `Identity__AccessTokenLifetime` | Die Gültigkeitsdauer von ausgestellten Access-Tokens. | `00:03:00` | -| `Identity__RefreshTokenLifetime` | Die Gültigkeitsdauer von ausgestellten Refresh-Tokens. Innerhalb diesem Zeitraum ist kein erneuter Login erforderlich. | `1.00:00:00` | -| `Identity__StoragePath` | Das Verzeichnis innerhalb vom Container, wo der Schlüssel zur Signatur ausgesteller Tokens gespeichert wird. | `/var/turnierplan/identity` | -| `Identity__UseInsecureCookies` | Kann auf `true` gesetzt werde, um HTTP Cookies ohne *secure* auszustellen. Dies ist erforderlich, wenn nicht mit HTTPS auf turnierplan.NET zugegriffen wird. | `false` | - -!!! note - Die Gültigkeitsdauer muss als .NET `TimeSpan` formatiert werden. Das Format ist `HH:mm:ss` bzw. `d.HH:mm:ss` also bspw. `00:03:00` für 3 Minuten oder `1.00:00:00` für 1 Tag. - ## Bilder-Uploads Standardmäßig werden alle Bilder-Uploads als Dateien in einem Container-Verzeichnis gespeichert. Das entsprechende Verzeichnis sollte [als Volume persistiert](http://localhost:8000/installation/#volume-mounts) werden. @@ -118,3 +96,27 @@ Hierfür ist eine App-Registrierung innerhalb von Entra ID notwendig, welche wie | `ImageStorage__TenantId` | Die ID des Tenant, wo die App-Registrierung angelegt wurde. | | `ImageStorage__ClientId` | Die Client-ID der App-Registrierung. | | `ImageStorage__ClientSecret` | Der Wert des angelegten Client Secrets. | + +## Authentifizierung + +Die folgenden Einstellungen können gesetzt werden, um die Benutzerauthentifizierung von turnierplan.NET zu konfigurieren: + +| Umgebungsvariable | Beschreibung | Standard | +|----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------| +| `Identity__AccessTokenLifetime` | Die Gültigkeitsdauer von ausgestellten Access-Tokens. | `00:03:00` | +| `Identity__RefreshTokenLifetime` | Die Gültigkeitsdauer von ausgestellten Refresh-Tokens. Innerhalb diesem Zeitraum ist kein erneuter Login erforderlich. | `1.00:00:00` | +| `Identity__StoragePath` | Das Verzeichnis innerhalb vom Container, wo der Schlüssel zur Signatur ausgesteller Tokens gespeichert wird. | `/var/turnierplan/identity` | +| `Identity__UseInsecureCookies` | Kann auf `true` gesetzt werde, um HTTP Cookies ohne *secure* auszustellen. Dies ist erforderlich, wenn nicht mit HTTPS auf turnierplan.NET zugegriffen wird. | `false` | + +Für ein produktives Deployment sind die Standardwerte ausreichend und müssen nicht geändert werden. + +!!! note + Die Gültigkeitsdauer muss als .NET `TimeSpan` formatiert werden. Das Format ist `HH:mm:ss` bzw. `d.HH:mm:ss` also bspw. `00:03:00` für 3 Minuten oder `1.00:00:00` für 1 Tag. + +## Monitoring + +Der turnierplan.NET-Server kann Telemetriedaten (Logs, Metrics & Traces) an Azure Application Insights senden: + +| Umgebungsvariable | Beschreibung | Standard | +|-----------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|----------| +| `ApplicationInsights__ConnectionString` | Kann gesetzt werden, um Daten an [Azure Application Insights](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview) zu senden. | - | From e7761ca756a6622ce91b7a61390eef948221ba0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Fri, 13 Mar 2026 17:02:10 +0100 Subject: [PATCH 20/31] Swap --- docs/pages/configuration.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/pages/configuration.md b/docs/pages/configuration.md index 660815b2..8d3cc75e 100644 --- a/docs/pages/configuration.md +++ b/docs/pages/configuration.md @@ -115,8 +115,8 @@ Für ein produktives Deployment sind die Standardwerte ausreichend und müssen n ## Monitoring -Der turnierplan.NET-Server kann Telemetriedaten (Logs, Metrics & Traces) an Azure Application Insights senden: +Der turnierplan.NET-Server kann Telemetriedaten (Logs, Metrics & Traces) an [Azure Application Insights](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview) senden: -| Umgebungsvariable | Beschreibung | Standard | -|-----------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|----------| -| `ApplicationInsights__ConnectionString` | Kann gesetzt werden, um Daten an [Azure Application Insights](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview) zu senden. | - | +| Umgebungsvariable | Beschreibung | Standard | +|-----------------------------------------|------------------------------------------------------------------------|----------| +| `ApplicationInsights__ConnectionString` | Kann gesetzt werden, um Daten an Azure Application Insights zu senden. | - | From 271b6dbb2455653db379dff60abda0c93d2cdf1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Fri, 13 Mar 2026 17:07:33 +0100 Subject: [PATCH 21/31] Add HTTP section --- docs/pages/installation.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/pages/installation.md b/docs/pages/installation.md index def080d0..1defbe89 100644 --- a/docs/pages/installation.md +++ b/docs/pages/installation.md @@ -92,3 +92,14 @@ turnierplan.NET bietet zahlreiche Konfigurationsmöglichkeiten zur Anbindung von Die verwendete Version von turnierplan.NET kann jederzeit auf eine neuere aktualisiert werden. Etwaige Datenbankmigrationen werden beim ersten Start sequenziell angewandt - auch wenn Versionen übersprungen werden. Allerdings sollten vor jeder Aktualisierung *immer* die [Release-Notes](https://github.com/turnierplan-NET/turnierplan.NET/releases) gelesen werden! Es kann jederzeit nicht-rückwärtskompatible Änderungen geben. Zudem wird empfohlen, vor jeder Aktualisierung der turnierplan.NET-Anwendung *oder* der verwendeten PostgreSQL-Version ein Datenbankupdate zu erstellen. Dies kann z.B. mit dem [pg_dump](https://www.postgresql.org/docs/current/app-pgdump.html)-Tool gemacht werden. + +## Fehlerbehebung + +Nachfolgend beschrieben sind Fehler, welche bei einer Neuinstallation auftreten können. + +### Verbindung per HTTP + +Beim Zugriff auf einen nicht-lokalen turnierplan.NET-Server via HTTP sollte standardmäßig ein Fehler *401 Unauthorized* erscheinen. Dies liegt daran, dass turnierplan.NET für die Authentifizierung nach dem Login Cookies verwendet, welche standardmäßig als *secure* ausgestellt werden. Dies hat zur Folge, dass Browser den Cookie nur bei lokalen Verbindungen oder über HTTPS mitschicken. Um turnierplan.NET dennoch verwenden zu können, muss die `Identity__UseInsecureCookies` auf `true` gesetzt werden. Siehe auch [Konfiguration der Authentifizierung](configuration.md#authentifizierung). + +!!! warning + Die Verwendung von HTTP-Verbindungen über das Internet ist **absolut nicht empfohlen**, da persönliche Daten und Passwörter somit unverschlüsselt übertragen werden würden. Zudem ist nicht ausgeschlossen, dass Teile der Webanwendung nicht korrekt funktionieren, falls sie auf HTTPS-exklusiven Browser-APIs basieren (bspw. Zwischenablage oder *crypto*). From 93ec20d196a16a3a6a6e231e29f0167e46b5eb44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Sat, 14 Mar 2026 10:31:27 +0100 Subject: [PATCH 22/31] Updated folder structure --- docs/pages/{configuration.md => configuration/index.md} | 0 docs/pages/getting-started.md | 7 ------- docs/pages/{installation.md => installation/index.md} | 0 docs/zensical.toml | 6 +++--- 4 files changed, 3 insertions(+), 10 deletions(-) rename docs/pages/{configuration.md => configuration/index.md} (100%) delete mode 100644 docs/pages/getting-started.md rename docs/pages/{installation.md => installation/index.md} (100%) diff --git a/docs/pages/configuration.md b/docs/pages/configuration/index.md similarity index 100% rename from docs/pages/configuration.md rename to docs/pages/configuration/index.md diff --git a/docs/pages/getting-started.md b/docs/pages/getting-started.md deleted file mode 100644 index 33d5927f..00000000 --- a/docs/pages/getting-started.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -icon: lucide/rocket ---- - -# Erste Schritte - -Anleitung für Erste Schritte diff --git a/docs/pages/installation.md b/docs/pages/installation/index.md similarity index 100% rename from docs/pages/installation.md rename to docs/pages/installation/index.md diff --git a/docs/zensical.toml b/docs/zensical.toml index 430693f9..200570c4 100644 --- a/docs/zensical.toml +++ b/docs/zensical.toml @@ -15,9 +15,9 @@ docs_dir = "pages" nav = [ { "Startseite" = "index.md" }, - { "Installation" = "installation.md" }, - { "Konfiguration" = "configuration.md" }, - { "Erste Schritte" = "getting-started.md" } + { "Installation" = "installation/index.md" }, + { "Konfiguration" = "configuration/index.md" }, + { "Erste Schritte" = "getting-started/index.md" } ] [project.theme] From dfb601968cf15e02ea9ac78d303f1dcf05393c29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Sat, 14 Mar 2026 10:43:07 +0100 Subject: [PATCH 23/31] Fix links and add custom css --- docs/pages/assets/turnierplan-docs.css | 11 +++++++++++ docs/pages/index.md | 4 ++-- docs/pages/installation/index.md | 4 ++++ docs/zensical.toml | 1 + 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 docs/pages/assets/turnierplan-docs.css diff --git a/docs/pages/assets/turnierplan-docs.css b/docs/pages/assets/turnierplan-docs.css new file mode 100644 index 00000000..ddc08d85 --- /dev/null +++ b/docs/pages/assets/turnierplan-docs.css @@ -0,0 +1,11 @@ +.md-copyright { + /* Decrease size of the footer text */ + font-size: 0.8em; +} + +.md-content img { + /* Center images and add small shadow */ + display: block; + margin: 0 auto; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); +} diff --git a/docs/pages/index.md b/docs/pages/index.md index a90d4d2c..2a3c8bfe 100644 --- a/docs/pages/index.md +++ b/docs/pages/index.md @@ -19,9 +19,9 @@ turnierplan.NET ist eine **Open-Source Webanwendung zur Organisation von Turnier turnierplan.NET wird hauptsächlich von Fußballfreunden aus dem nordöstlichen Baden-Württemberg, Deutschland verwendet und maintained 🇩🇪. -Aus diesem Grund sind die Benutzeroberfläche sowie die Dokumentation aktuell ausschließlich in deutscher Sprache verfügbar. Zudem sind die verwendeten Begriffe und Funktionen speziell für die hierzulande üblichen Turniere und Veranstaltungen ausgelegt. Verbesserungsvorschläge sind jederzeit gerne gesehen und können im [Repo](https://github.com/turnierplan-NET/turnierplan.NET) hinterlassen werden. +Aus diesem Grund sind die Benutzeroberfläche sowie die Dokumentation aktuell ausschließlich in deutscher Sprache verfügbar. Zudem sind die verwendeten Begriffe und Funktionen speziell für die hierzulande üblichen Turniere und Veranstaltungen ausgelegt. Verbesserungsvorschläge sind jederzeit gerne gesehen und können im [Repository](https://github.com/turnierplan-NET/turnierplan.NET) hinterlassen werden. -Falls turnierplan.NET dennoch für deinen Verein / deine Organisation infrage kommt: Der Quelltext und die Container-Images sind unter der [AGPL-3.0](https://github.com/turnierplan-NET/turnierplan.NET/blob/main/LICENSE) lizenziert und dementsprechend frei verwendbar. Mögliche Vorgehensweisen zum Erstellen eines eigenen Setups sind in der [Installationsanleitung](installation.md) beschrieben. +Falls turnierplan.NET dennoch für deinen Verein / deine Organisation infrage kommt: Der Quelltext und die Container-Images sind unter der [AGPL-3.0](https://github.com/turnierplan-NET/turnierplan.NET/blob/main/LICENSE) lizenziert und dementsprechend frei verwendbar. Mögliche Vorgehensweisen zum Erstellen eines eigenen Setups sind in der [Installationsanleitung](installation/index.md) beschrieben. ## Technische Dokumentation diff --git a/docs/pages/installation/index.md b/docs/pages/installation/index.md index 1defbe89..d880dc19 100644 --- a/docs/pages/installation/index.md +++ b/docs/pages/installation/index.md @@ -87,6 +87,10 @@ Die turnierplan.NET-Anwendung speichert diverse Dateien in folgendem Verzeichnis turnierplan.NET bietet zahlreiche Konfigurationsmöglichkeiten zur Anbindung von Externen System sowie zur Individualisierung. Alle Optionen können mit Umgebungsvariablen gesetzt werden und sind in der [Konfigurationsanleitung](./configuration) aufgelistet und beschrieben. +## Erste Schritte + +Die Anmeldung als Administrator erfolgt mit den Zugangsdaten, welche beim ersten Programmstart generiert werden, bzw. in der Konfiguration vorgegeben sind. Weitere Schritte sind auf der entsprechenden Seite [Erste Schritte](../getting-started/index.md) der Dokumentation beschrieben. + ## Aktualisierung Die verwendete Version von turnierplan.NET kann jederzeit auf eine neuere aktualisiert werden. Etwaige Datenbankmigrationen werden beim ersten Start sequenziell angewandt - auch wenn Versionen übersprungen werden. Allerdings sollten vor jeder Aktualisierung *immer* die [Release-Notes](https://github.com/turnierplan-NET/turnierplan.NET/releases) gelesen werden! Es kann jederzeit nicht-rückwärtskompatible Änderungen geben. diff --git a/docs/zensical.toml b/docs/zensical.toml index 200570c4..eb4c0f13 100644 --- a/docs/zensical.toml +++ b/docs/zensical.toml @@ -12,6 +12,7 @@ edit_uri = "blob/main/docs/pages/" copyright = "Copyright © 2026 Elias Hörner" docs_dir = "pages" +extra_css = ["assets/turnierplan-docs.css"] nav = [ { "Startseite" = "index.md" }, From 38808fd9b59700b72ec97c5103f3f931c90982d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Sat, 14 Mar 2026 10:58:02 +0100 Subject: [PATCH 24/31] Start working on getting started guide --- .../images/empty-organization.png | Bin 0 -> 38788 bytes .../getting-started/images/new-tournament.png | Bin 0 -> 43393 bytes docs/pages/getting-started/index.md | 36 ++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 docs/pages/getting-started/images/empty-organization.png create mode 100644 docs/pages/getting-started/images/new-tournament.png create mode 100644 docs/pages/getting-started/index.md diff --git a/docs/pages/getting-started/images/empty-organization.png b/docs/pages/getting-started/images/empty-organization.png new file mode 100644 index 0000000000000000000000000000000000000000..2fd6fc55ab4600766c7099b133fc9504fb479aef GIT binary patch literal 38788 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 ksWPQ65B=iP|2U)spr23pQSr6}RSDp7IO$?rV{ Date: Sat, 14 Mar 2026 11:16:20 +0100 Subject: [PATCH 25/31] add releases page --- docs/pages/releases/index.md | 14 ++++++++++++++ docs/zensical.toml | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 docs/pages/releases/index.md diff --git a/docs/pages/releases/index.md b/docs/pages/releases/index.md new file mode 100644 index 00000000..3a71c120 --- /dev/null +++ b/docs/pages/releases/index.md @@ -0,0 +1,14 @@ +--- +icon: lucide/package +--- + +# Releases + +Die Hauptreleases von turnierplan.NET folgen prinzipiell immer dem Schema `Jahr.Zahl` also bspw. `2025.3` für das dritte Release im Jahr 2025. Mit jedem Release kommen i.d.R. neue Features und zahlreiche Verbesserungen dazu. Die Migration von einer älteren Version auf eine neuere ist immer unterstützt, wobei auch Versionen übersprungen werden können. Ein Downgrade von einer beliebigen Version auf eine ältere Version ist **nicht** möglich. + +Zusätzlich kann es für das aktuellste Hauptrelease kleinere Releases mit Sicherheitsupdates oder Bugfixes geben. In diesem Fall wird hinter dem Hauptrelease die Patch-Version hochgezählt. Also bspw. `2025.3.0`, `2025.3.1`, usw. Mit jedem Hauptrelease endet der Support für das vorherige Hauptrelease. + +Alle bisherigen Releases mit den detaillierten Änderungen sind in der [Release-Seite](https://github.com/turnierplan-NET/turnierplan.NET/releases) der GitHub-Repository verfügbar. + +!!! warning + Bei einer Aktualisierung von einem Hauptrelease auf ein neueres kann es zu Breaking Changes kommen! Solche Änderungen und notwendige Handlungsschritte bei einem Update sind ebenfalls im entsprechenden GitHub-Release dokumentiert und sollten stets beachtet werden. diff --git a/docs/zensical.toml b/docs/zensical.toml index eb4c0f13..e5531193 100644 --- a/docs/zensical.toml +++ b/docs/zensical.toml @@ -18,7 +18,8 @@ nav = [ { "Startseite" = "index.md" }, { "Installation" = "installation/index.md" }, { "Konfiguration" = "configuration/index.md" }, - { "Erste Schritte" = "getting-started/index.md" } + { "Erste Schritte" = "getting-started/index.md" }, + { "Releases" = "releases/index.md" } ] [project.theme] From 1d19deb3d5c0d2a500315cd487d8e1a14b267998 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Sat, 14 Mar 2026 14:16:21 +0100 Subject: [PATCH 26/31] Add section for create match plan --- .../images/basic-tournament-config.png | Bin 0 -> 62105 bytes .../images/first-tournament-match-plan.png | Bin 0 -> 49653 bytes docs/pages/getting-started/index.md | 19 ++++++++++++++++++ 3 files changed, 19 insertions(+) create mode 100644 docs/pages/getting-started/images/basic-tournament-config.png create mode 100644 docs/pages/getting-started/images/first-tournament-match-plan.png diff --git a/docs/pages/getting-started/images/basic-tournament-config.png b/docs/pages/getting-started/images/basic-tournament-config.png new file mode 100644 index 0000000000000000000000000000000000000000..bc60f4f085b3aec80a142a7e8c30f1135f83ccfc GIT binary patch literal 62105 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�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 literal 0 HcmV?d00001 diff --git a/docs/pages/getting-started/images/first-tournament-match-plan.png b/docs/pages/getting-started/images/first-tournament-match-plan.png new file mode 100644 index 0000000000000000000000000000000000000000..29d180897f9ec572a6b2ba34592ba3b50fecc222 GIT binary patch literal 49653 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�)^X#n6A&JP2*Ss%>5J-;`z%AQd*n0 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 Date: Sat, 14 Mar 2026 14:18:49 +0100 Subject: [PATCH 27/31] Add section for tournament conduct --- .../images/first-tournament-groups.png | Bin 0 -> 47486 bytes .../images/first-tournament-match-plan-2.png | Bin 0 -> 51907 bytes .../images/report-first-match.png | Bin 0 -> 45289 bytes docs/pages/getting-started/index.md | 20 ++++++++++++++++++ 4 files changed, 20 insertions(+) create mode 100644 docs/pages/getting-started/images/first-tournament-groups.png create mode 100644 docs/pages/getting-started/images/first-tournament-match-plan-2.png create mode 100644 docs/pages/getting-started/images/report-first-match.png diff --git a/docs/pages/getting-started/images/first-tournament-groups.png b/docs/pages/getting-started/images/first-tournament-groups.png new file mode 100644 index 0000000000000000000000000000000000000000..65f96a971aacb2368094c21cc012dd85db6e03fe GIT binary patch literal 47486 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 literal 0 HcmV?d00001 diff --git a/docs/pages/getting-started/images/report-first-match.png b/docs/pages/getting-started/images/report-first-match.png new file mode 100644 index 0000000000000000000000000000000000000000..d8e665cfcc43d029ff59f5e2c21b397b9b6e0420 GIT binary patch literal 45289 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�gJEDXi{c{o)bBPf7we&2v5|FbNnOXXbMhhSt4J{}RX`^o=|9k?M{@X^{2G!Xad6?!$mR+G}r%d1!^gHQcvb>OjefBM65 zQM-ScMS%E&fVsH1>RlG406P<60Mu2DlP7`U2<4#kkyN~lDRBLykwSTCzydFSqQ){J z3e(5%f7#Bz@wiTM1MRcF0Ge&}P9T0DuH@w8M8>K@`y(7d5P3=|wtsPCb9sm*1XgQh zl6#N;d7yt0(saqr!NGV&+33QhK9Zx5>qhwXEhTgA?~PY0*c-r4URFh>O3EzszW~3$ BmSF$@ literal 0 HcmV?d00001 diff --git a/docs/pages/getting-started/index.md b/docs/pages/getting-started/index.md index 59b656b5..b44611ec 100644 --- a/docs/pages/getting-started/index.md +++ b/docs/pages/getting-started/index.md @@ -53,3 +53,23 @@ Die Änderungen werden erst übernommen, wenn die *Übernehmen*-Schaltfläche am Anschließend erfolgt eine Weiterleitung auf die Startseite des Turniers. Dort ist der erstellte Spielplan nun sichtbar: ![Der neu erzeugte Spielplan](images/first-tournament-match-plan.png) + +### Turnierdurchführung + +Bei der Turnierdurchführung werden nacheinander die Ergebnisse der Spiele in den Spielplan eingetragen. Beim Klick auf eines der Spiele öffnet sich hierzu folgender Dialog: + +![Das erste Spielergebnis melden](images/report-first-match.png) + +Der Dialog zeigt die Spielpaarung und bietet die Möglichkeit, für die teilnehmenden Mannschaften die jeweilige Anzahl der Tore einzutagen. Zudem kann neben einem Standardergebnis auch zwischen *n.V.*, *n.E.* oder der sog. *Sonderwertung* entscheiden werden. Letztere eignet sich z.B. im Fall, dass eine Mannschaft nicht angetreten ist. + +Ein Ergebnis kann als *LIVE-Ergebnis* oder als *Endergebnis* gespeichert werden. Spiele mit *LIVE-Ergebnis* werden optisch gekennzeichnet und zählen zudem noch nicht in die Gruppenwertung ein. Erst wenn bei einem Spiel das *Endergebnis* gespeichert wird, zählt das Spiel als beendet. + +Im folgenden Beispiel ist Spiel 1 beendet und Spiel 2 ist derzeit am Laufen: + +![Der Spielplan mit zwei Ergebnissen](images/first-tournament-match-plan-2.png) + +Nach jedem beendeten Spiel werden alle Gruppen durchgerechnet. Beim Klick auf den Reiter *Gruppen* wird die Gruppenstatistik sichtbar: + +![Die Gruppenergebnisse nach drei Spielen](images/first-tournament-groups.png) + +Da es in diesem Turnier nur eine Gruppe sowie keine Finalrunde gibt, ist dies auch gleichzeitig die Endplatzierung des Turniers. From ba04bc0644898db6edbcac2a7210615880ac5500 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Sat, 14 Mar 2026 14:57:46 +0100 Subject: [PATCH 28/31] Small corrections --- docs/pages/configuration/index.md | 2 +- docs/pages/installation/index.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/pages/configuration/index.md b/docs/pages/configuration/index.md index 8d3cc75e..2f86fc9e 100644 --- a/docs/pages/configuration/index.md +++ b/docs/pages/configuration/index.md @@ -61,7 +61,7 @@ Um Bilder in einem AWS S3 oder S3-kompatiblen Bucket zu speichern, müssen die f Der verwendete Access-Key benötigt Rechte zum Erstellen, Lesen und Löschen von Objekten. -Die Eigenschaften `RegionEndpoint` und `ServiceUrl` schließen sich *gegenseitig aus*! Ersteres muss verwendet werden, wenn ein AWS S3-Bucket verwendet wird. Letztere muss verwendet werden, wenn ein S3-kompatibler Bucket von einem Drittanbieter verwendet wird. +Die Eigenschaften `RegionEndpoint` und `ServiceUrl` schließen sich *gegenseitig aus*! Erstere muss verwendet werden, wenn ein AWS S3-Bucket verwendet wird. Letztere muss verwendet werden, wenn ein S3-kompatibler Bucket von einem Drittanbieter verwendet wird. ### Azure Blob Storage diff --git a/docs/pages/installation/index.md b/docs/pages/installation/index.md index d880dc19..3d59d45d 100644 --- a/docs/pages/installation/index.md +++ b/docs/pages/installation/index.md @@ -16,11 +16,11 @@ Um turnierplan.NET lokal zu testen, kann der folgende Befehl verwendet werden: docker run -p 80:8080 -e Database__InMemory="true" ghcr.io/turnierplan-net/turnierplan:latest ``` -Die Weboberfläche kann über [localhost:80](http://localhost:80) erreicht werden. Der Benutzername und das initiale Passwort für den Administratorbenutzer werden in den Container-Logs angezeigt. Nach einem Neustart des Containers gehen allerdings alle Daten verloren, da eine in-memory Datenbank verwendet wird. +Die Weboberfläche kann über [localhost:80](http://localhost:80) erreicht werden. Der Benutzername und das initiale Passwort für den Administratorbenutzer werden in den Container-Logs angezeigt. Nach einem Neustart des Containers gehen allerdings alle Daten verloren, da nur eine in-memory Datenbank verwendet wird. ## Deployment -Für ein produktives Deployment gibt es nachfolgende Möglichkeiten basierend auf dem Container-Image. Weitere Methoden werden in der Zukunft aufgelistet. +Für ein produktives Deployment gibt es nachfolgende Möglichkeiten basierend auf dem Container-Image. Weitere Methoden werden in der Zukunft ergänzt. ### Docker Compose @@ -106,4 +106,4 @@ Nachfolgend beschrieben sind Fehler, welche bei einer Neuinstallation auftreten Beim Zugriff auf einen nicht-lokalen turnierplan.NET-Server via HTTP sollte standardmäßig ein Fehler *401 Unauthorized* erscheinen. Dies liegt daran, dass turnierplan.NET für die Authentifizierung nach dem Login Cookies verwendet, welche standardmäßig als *secure* ausgestellt werden. Dies hat zur Folge, dass Browser den Cookie nur bei lokalen Verbindungen oder über HTTPS mitschicken. Um turnierplan.NET dennoch verwenden zu können, muss die `Identity__UseInsecureCookies` auf `true` gesetzt werden. Siehe auch [Konfiguration der Authentifizierung](configuration.md#authentifizierung). !!! warning - Die Verwendung von HTTP-Verbindungen über das Internet ist **absolut nicht empfohlen**, da persönliche Daten und Passwörter somit unverschlüsselt übertragen werden würden. Zudem ist nicht ausgeschlossen, dass Teile der Webanwendung nicht korrekt funktionieren, falls sie auf HTTPS-exklusiven Browser-APIs basieren (bspw. Zwischenablage oder *crypto*). + Die Verwendung von HTTP-Verbindungen über das Internet ist **absolut nicht empfohlen**, da persönliche Daten und Passwörter somit unverschlüsselt übertragen werden würden. Zudem ist nicht ausgeschlossen, dass Teile der Webanwendung nicht korrekt funktionieren, falls diese HTTPS-exklusive Browser-APIs verwenden (bspw. Zwischenablage oder *crypto*). From be00f9fd1ad151662005f08d2b54002f3339018a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Sun, 15 Mar 2026 11:33:26 +0100 Subject: [PATCH 29/31] Update image upload section in config docs --- docs/pages/configuration/index.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/pages/configuration/index.md b/docs/pages/configuration/index.md index 2f86fc9e..f5ded4e8 100644 --- a/docs/pages/configuration/index.md +++ b/docs/pages/configuration/index.md @@ -25,18 +25,18 @@ Die folgenden Einstellungen können gesetzt werden, um das allgemeine Aussehen u | `Turnierplan__LogoUrl` | Die URL für das Vereins-/Firmenlogo, welches in der Kopfzeile von öffentlichen Seiten angezeigt werden soll. Falls nicht spezifiert, wird das turnierplan.NET-Logo angezeigt. | - | | `Turnierplan__ImprintUrl` | Die URL für den Verweis auf ein externes Impressum, welches bspw. auf Ihrer Vereins-/Firmenseite gehostet ist. | - | | `Turnierplan__PrivacyUrl` | Die URL für den Verweis auf eine externe Datenschutz-Seite, welche bspw. auf Ihrer Vereins-/Firmenseite gehostet ist. | - | -| `Turnierplan__ImageMaxSize` | Die maximale Dateigröße für Bild-Uploads in Bytes. Der Standard-Wert entspricht 8 MiB (8 · 1024 · 1024) | `8388608` | -| `Turnierplan__ImageQuality` | Die Qualitätseinstellung für Bild-Uploads. Ein Wert von `100` entspricht einer verlustfreien Komprimierung. Verwendet wird das `webp`-Format. | `80` | | `Turnierplan__InitialUserName` | Der Benutzername für den initalen Administratorbenutzer. Sofern nicht angegeben, wird der Benutzername von der Anwendung vorgegeben und beim ersten Start in der Konsole ausgegeben. | - | | `Turnierplan__InitialUserPassword` | Das Passwort für den initialen Administratorbenutzer. Sofern nicht angegeben, wird beim ersten Start der Anwendung ein zufälliges Passwort generiert und in der Konsole ausgegeben. | - | ## Bilder-Uploads -Standardmäßig werden alle Bilder-Uploads als Dateien in einem Container-Verzeichnis gespeichert. Das entsprechende Verzeichnis sollte [als Volume persistiert](http://localhost:8000/installation/#volume-mounts) werden. +In der Weboberfläche können Bilddateien hochgeladen werden. Diese werden mit einer bestimmten Qualitätseinstellung in das `webp`-Format konvertiert und anschließend standardmäßig als Dateien in einem Container-Verzeichnis gespeichert. Das entsprechende Verzeichnis sollte [als Volume persistiert](http://localhost:8000/installation/#volume-mounts) werden. Folgende Einstellungen sind verfügbar: -| Umgebungsvariable | Beschreibung | Standard | -|-----------------------------|----------------------------------------------------------------------------------|---------------------------| -| `ImageStorage__StoragePath` | Das Verzeichnis innerhalb vom Container, hochgeladene Bilder gespeichert werden. | `/var/turnierplan/images` | +| Umgebungsvariable | Beschreibung | Standard | +|-----------------------------|-----------------------------------------------------------------------------------------------------------------------|---------------------------| +| `Turnierplan__ImageMaxSize` | Die maximale Dateigröße für Bild-Uploads in Bytes. Der Standard-Wert entspricht 8 MiB (8 · 1024 · 1024) | `8388608` | +| `Turnierplan__ImageQuality` | Die Qualitätseinstellung für Bild-Uploads. Ein Wert von `100` entspricht einer verlustfreien Komprimierung. | `80` | +| `ImageStorage__StoragePath` | Das Verzeichnis innerhalb vom Container, hochgeladene Bilder gespeichert werden. | `/var/turnierplan/images` | Alternativ können externe Services zum Speichern der Bilder konfiguriert werden. Dies hat den Vorteil, dass das Bereitstellen von Bilddateien keine CPU- und Netzwerkresourcen vom turnierplan.NET-Server beansprucht. Aktuell werden die folgenden externen Services unterstützt: From a5579920451585e4111de06c47553c0278787881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Mon, 16 Mar 2026 20:35:40 +0100 Subject: [PATCH 30/31] Rename CSS file --- docs/pages/assets/{turnierplan-docs.css => turnierplan.css} | 0 docs/zensical.toml | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename docs/pages/assets/{turnierplan-docs.css => turnierplan.css} (100%) diff --git a/docs/pages/assets/turnierplan-docs.css b/docs/pages/assets/turnierplan.css similarity index 100% rename from docs/pages/assets/turnierplan-docs.css rename to docs/pages/assets/turnierplan.css diff --git a/docs/zensical.toml b/docs/zensical.toml index e5531193..592caf7f 100644 --- a/docs/zensical.toml +++ b/docs/zensical.toml @@ -12,7 +12,7 @@ edit_uri = "blob/main/docs/pages/" copyright = "Copyright © 2026 Elias Hörner" docs_dir = "pages" -extra_css = ["assets/turnierplan-docs.css"] +extra_css = ["assets/turnierplan.css"] nav = [ { "Startseite" = "index.md" }, From c97fca7cea6cefadc30d8fec39e41a6ee09f564b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20H=C3=B6rner?= Date: Mon, 16 Mar 2026 20:38:17 +0100 Subject: [PATCH 31/31] Fix double space --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7053eafe..43cea2e3 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ **turnierplan.NET** is mostly written in C# using [.NET](https://dotnet.microsoft.com/). This includes the core logic, the backend API and database connection as well as all publicly visible web pages. In addition, it serves the *turnierplan.NET portal*, the client application for authenticated users, based on the [Angular](https://angular.dev/) framework. -Visit the **turnierplan.NET** documentation using the following link: [docs.turnierplan.net](https://docs.turnierplan.net). If you want to install **turnierplan.NET** on your server, please visit the [Installation guide](https://docs.turnierplan.net/installation). +Visit the **turnierplan.NET** documentation using the following link: [docs.turnierplan.net](https://docs.turnierplan.net). If you want to install **turnierplan.NET** on your server, please visit the [Installation guide](https://docs.turnierplan.net/installation). > [!NOTE] > The user interface and documentation are currently only available in German 🇩🇪