Compare commits

...
20 Commits
Author SHA1 Message Date
Scrublord MacBadandClaude Haiku 4.5 4a95350c72 Add beautiful HTML landing page to element-web-docs setup
- Create index.html with styled setup guide and download links
- Update init-container to copy index.html to nginx
- Configure nginx to serve index.html as default for /docs/setup/
- Remove directory listing (autoindex), show proper HTML instead

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-23 18:52:33 +02:00
Scrublord MacBadandClaude Haiku 4.5 c85dd39eba Fix Element Web docs server routing and remove redundant nginx Ingress
- Remove duplicate nginx Ingress from element-web-docs-server.yaml (using Traefik instead)
- Traefik IngressRoute in apex-ingress.yaml now handles /docs/setup routing
- Deployment and Service remain unchanged for file serving

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-23 18:42:57 +02:00
Scrublord MacBad bdba4f3e34 fix: use init-container instead of postStart hook 2026-04-23 18:37:08 +02:00
Scrublord MacBad 80fa13b63f feat: separate nginx deployment to serve Element Desktop setup scripts 2026-04-23 18:36:13 +02:00
Scrublord MacBad cf8bc00613 fix: use init-container to copy docs from ConfigMap to nginx html 2026-04-23 18:34:45 +02:00
Scrublord MacBad 0c67a249fa fix: add element-web-docs-configmap to kustomization resources 2026-04-23 18:25:18 +02:00
Scrublord MacBad 4bc0e10631 fix: correct ConfigMap keys and mount structure for /docs/setup/ 2026-04-23 18:18:15 +02:00
Scrublord MacBad 3e07d6c613 fix: move element-web-docs ConfigMap to correct location 2026-04-23 18:17:04 +02:00
Scrublord MacBad 336f2aa1cb feat: serve Element Desktop setup scripts via Element Web at /docs/setup/ 2026-04-23 18:16:03 +02:00
Scrublord MacBad 659acdf601 docs: add Element Desktop setup scripts for Windows, macOS, and Linux 2026-04-23 16:42:16 +02:00
Scrublord MacBad 147ac079f7 feat: add configUrl for Element Desktop auto-loading 2026-04-23 16:33:06 +02:00
Scrublord MacBad 0efe91b1bd custom themes 2026-04-23 15:39:33 +02:00
Scrublord MacBad 6aff1f86d6 fix final mas fix 2026-04-23 15:25:44 +02:00
Scrublord MacBad bdca6d8840 fix mas 2026-04-23 14:01:48 +02:00
Scrublord MacBad b6e2c6f00b missing param 2026-04-23 13:53:24 +02:00
Scrublord MacBad 37149b195b fix mas? 2026-04-23 13:50:35 +02:00
Scrublord MacBad 13e597769c fix secret handling 2026-04-23 11:28:14 +02:00
Scrublord MacBad c17e8f528f fix mas? 2026-04-23 11:25:00 +02:00
Scrublord MacBad 9fdac55e25 fix custom themes syntax 2026-04-23 11:04:47 +02:00
Scrublord MacBad eb21dc9494 feat custom themes 2026-04-23 10:49:58 +02:00
11 changed files with 1196 additions and 31 deletions
+7
View File
@@ -28,6 +28,13 @@ spec:
services:
- name: matrix-stack-well-known
port: 8010
# Element Desktop Setup Skripte
- match: Host(`axion1337.chat`) && PathPrefix(`/docs/setup`)
kind: Rule
priority: 50
services:
- name: element-web-docs
port: 80
# Niedrigere Priorität: alles andere -> Element Web
- match: Host(`axion1337.chat`)
kind: Rule
@@ -9,6 +9,7 @@ data:
additional:
config.json: |
{
"configUrl": "https://axion1337.chat/config.json",
"brand": "aXion1337.Chat",
"default_theme": "aXion1337 Dark",
"show_labs_settings": true,
@@ -25,7 +26,197 @@ data:
"primary-color": "#ffaf0f",
"secondary-color": "#ffaf0f"
}
},
{
"name": "Deep Purple",
"is_dark": true,
"colors": {
"accent-color": "#6503b3",
"primary-color": "#368bd6",
"warning-color": "#b30356",
"sidebar-color": "#15171B",
"roomlist-background-color": "#22262E",
"roomlist-text-color": "#A1B2D1",
"roomlist-text-secondary-color": "#EDF3FF",
"roomlist-highlights-color": "#343A46",
"roomlist-separator-color": "#a1b2d1",
"timeline-background-color": "#181b21",
"timeline-text-color": "#EDF3FF",
"timeline-text-secondary-color": "#A1B2D1",
"timeline-highlights-color": "#22262E"
}
},
{
"name": "Discord Dark",
"is_dark": true,
"colors": {
"accent-color": "#747ff4",
"accent": "#747ff4",
"primary-color": "#00aff4",
"warning-color": "#faa81ad9",
"alert": "#faa81ad9",
"sidebar-color": "#202225",
"roomlist-background-color": "#2f3136",
"roomlist-text-color": "#dcddde",
"roomlist-text-secondary-color": "#8e9297",
"roomlist-highlights-color": "#4f545c52",
"roomlist-separator-color": "#40444b",
"timeline-background-color": "#36393f",
"timeline-text-color": "#dcddde",
"secondary-content": "#dcddde",
"tertiary-content": "#dcddde",
"timeline-text-secondary-color": "#b9bbbe",
"timeline-highlights-color": "#04040512",
"reaction-row-button-selected-bg-color": "#4752c4",
"menu-selected-color": "#4752c4",
"focus-bg-color": "#4752c4",
"room-highlight-color": "#4752c4",
"other-user-pill-bg-color": "#4752c4",
"togglesw-off-color": "#72767d"
},
"compound": {
"--cpd-color-theme-bg": "#0019ff",
"--cpd-color-bg-canvas-default": "#2f3136",
"--cpd-color-bg-subtle-secondary": "#2f3136",
"--cpd-color-bg-subtle-primary": "#4f545c52",
"--cpd-color-bg-action-primary-rest": "#dcddde",
"--cpd-color-bg-action-secondary-rest": "#2f3136",
"--cpd-color-bg-critical-primary": "#fd3f3c",
"--cpd-color-bg-critical-subtle": "#745862",
"--cpd-color-bg-critical-hovered": "#fd3f3c",
"--cpd-color-bg-accent-rest": "#4cb387",
"--cpd-color-text-primary": "#dcddde",
"--cpd-color-text-secondary": "#b9bbbe",
"--cpd-color-text-action-accent": "#b9bbbe",
"--cpd-color-text-critical-primary": "#fd3f3c",
"--cpd-color-text-success-primary": "#4cb387",
"--cpd-color-icon-primary": "#dcddde",
"--cpd-color-icon-secondary": "#dcddde",
"--cpd-color-icon-tertiary": "#a7a0a7",
"--cpd-color-icon-accent-tertiary": "#4cb387",
"--cpd-color-border-interactive-primary": "#5d6064",
"--cpd-color-border-interactive-secondary": "#5d6064",
"--cpd-color-border-critical-primary": "#fd3f3c",
"--cpd-color-border-success-subtle": "#4cb387"
}
},
{
"name": "Electric Blue",
"is_dark": false,
"colors": {
"accent-color": "#3596fc",
"primary-color": "#368bd6",
"warning-color": "#ff4b55",
"sidebar-color": "#27303a",
"roomlist-background-color": "#f3f8fd",
"roomlist-text-color": "#2e2f32",
"roomlist-text-secondary-color": "#61708b",
"roomlist-highlights-color": "#ffffff",
"roomlist-separator-color": "#e3e8f0",
"timeline-background-color": "#ffffff",
"timeline-text-color": "#2e2f32",
"timeline-text-secondary-color": "#61708b",
"timeline-highlights-color": "#f3f8fd",
"username-colors": ["#ff0000", "#ff7f00", "#ffff00", "#00ff00", "#0000ff", "#4b0082", "#9400d3", "#ff1493"],
"avatar-background-colors": ["#cc0000", "#cc6600", "#cccc00", "#00cc00", "#0000cc", "#3b0066", "#7a00b3", "#cc1077"]
},
"compound": {
"--cpd-color-icon-accent-tertiary": "var(--cpd-color-blue-800)",
"--cpd-color-text-action-accent": "var(--cpd-color-blue-900)"
}
},
{
"name": "Everforest dark hard",
"is_dark": true,
"colors": {
"accent-color": "#a7c080",
"primary-color": "#a7c080",
"warning-color": "#e67e80",
"sidebar-color": "#323d43",
"roomlist-background-color": "#2f383e",
"roomlist-text-color": "#d3c6aa",
"roomlist-text-secondary-color": "#d3c6aa",
"roomlist-highlights-color": "#4b565c",
"roomlist-separator-color": "#4b565c",
"timeline-background-color": "#2b3339",
"timeline-text-color": "#d3c6aa",
"secondary-content": "#d3c6aa",
"tertiary-content": "#d3c6aa",
"timeline-text-secondary-color": "#a7c080",
"timeline-highlights-color": "#4b565c",
"reaction-row-button-selected-bg-color": "#4b565c"
}
},
{
"name": "Gruvbox Dark",
"is_dark": true,
"colors": {
"accent-color": "#bd93f9",
"primary-color": "#fe8019",
"warning-color": "#fb4934",
"sidebar-color": "#282828",
"roomlist-background-color": "#1d2021",
"roomlist-text-color": "#a89984",
"roomlist-text-secondary-color": "#00ff00",
"roomlist-highlights-color": "#00000030",
"roomlist-separator-color": "#4d4d4d90",
"timeline-background-color": "#282828",
"timeline-text-color": "#ebdbb2",
"secondary-content": "#928374",
"tertiary-content": "#928374",
"quinary-content": "#504945",
"timeline-text-secondary-color": "#a89984",
"timeline-highlights-color": "#00000030",
"reaction-row-button-selected-bg-color": "#689d6a",
"menu-selected-color": "#504945",
"icon-button-color": "#928374",
"accent": "#689d6a",
"alert": "#cc241d",
"username-colors": [
"#cc241d",
"#98971a",
"#d79921",
"#458588",
"#b16286",
"#689d6a",
"#a89984",
"#d65d0e"
],
"avatar-background-colors": ["#458588", "#b16286", "#689d6a"]
}
},
{
"name": "Wal",
"is_dark": true,
"colors": {
"accent-color": "#888888",
"accent": "#888888",
"primary-color": "#4a90e2",
"warning-color": "#e74c3c",
"alert": "#e74c3c",
"sidebar-color": "#2b2d31",
"roomlist-background-color": "#e74c3c",
"roomlist-text-color": "#888888",
"roomlist-text-secondary-color": "#c0c0c0",
"roomlist-highlights-color": "#b8b8b8",
"roomlist-separator-color": "#5e81ac",
"timeline-background-color": "#2b2d31",
"timeline-text-color": "#888888",
"timeline-text-secondary-color": "#888888",
"timeline-highlights-color": "#e74c3c",
"username-colors": ["#22222a", "#e74c3c", "#b8bb26", "#fabd2f", "#4a90e2", "#b16286", "#8ec07c", "#ebdbb2"],
"avatar-background-colors": ["#fabd2f", "#4a90e2", "#b16286"],
"reaction-row-button-selected-bg-color": "#4a90e2",
"menu-selected-color": "#4a90e2",
"focus-bg-color": "#4a90e2",
"room-highlight-color": "#4a90e2",
"other-user-pill-bg-color": "#4a90e2",
"icon-button-color": "#8ec07c",
"togglesw-off-color": "#4a90e2",
"secondary-content": "#888888",
"tertiary-content": "#888888"
}
}
]
}
}
}
@@ -4,19 +4,19 @@ metadata:
name: ess-mas-values-secret
namespace: matrix
stringData:
values.yaml: ENC[AES256_GCM,data:K692tDSLoftfKmsd4nIc8BzJw9CwXkOc4qSGTw78qF7L7UolTlH456WYeuwXiajDHmsVJCLhxDjCAhGyYUgbEC1mwuX1ZpkJefJkXvkGtQqnVbpS5MLYWt2SMQo+Yuz5L3Qxkop8Y02/U8jFxu5w7LQT71aAJphI1Po6r0wWjCIP0pDLTSUXd5Tk4eLq7o1a8nCrkJxSDQc95sRPTlZ/cfVhBE4xDzDK/CD/Yajv6yUceqUr7j7aBHOlg82+y0HU8xY44B/NtAzphJJf706z0X80Q5Dboeks5Rj9Na0lld5hwcOQPocYO28Tb6RDYOkNOQUELZKoc64JcpYJNyUkxfJl0hjtC1TmtAy1ZljLytnbnc9abNnHWgKcBt9TCcLIJJbZAI2snSHON8uNYpf7+erXx0wHVGxL/WZWEiFlAhnTfNx/Dqr2l0tKTjzRgibSpeA9rBmEm1/2PnJjexRpyewbS2MASGy2C1lfqaAPfjxf,iv:tguaH5u/67ubPSzhrhk3QMkpsE3flvrEZf50U3bcXvc=,tag:KY3T9RcV9KVBKb1SKXCjmw==,type:str]
values.yaml: ENC[AES256_GCM,data:tPLcPvoTa2Qs49JSDW6CqiYMIrjsoKrExCl+hOm5R3/o+O9Lf4UqyMC4QY6T303m7GMU3tIDGX4js8NS7Fdcs9YOKoInUKlYqCYzNio+BRsl1DGtzEtcUWhXZQC58RHbI8jiLhXsI1x2vSYsMj5MkymVe9Kmjw91vxEivzn8dC2zae4rFGk/LyLoI5BHzSCT6csUGtGZe01rN/DsGpHxkYNbzinBK3uFM43IgcjCrkBK8jzsxUYA4JWvzBJ1tB5TyyTgZBBe2Baxj7vHf9SysGwbRl4TBzY5at8cPKKnmh7qaHQO3FHCCqfHi1ymt1vNRtPPGRGAKWqC8AroXTPUUe4oSQ7wakhuQwPAhQJn0FHjIJNbp2J7M9K3nWnf0eugDPcp1pQ7Iv0tUQ/2hd5Q8Xmiv7qCCBuhOGnAokUwkRnZu124PEhPwDa/PSA6bB/5dCwj8rzZOyEXJsz12cRtSPK8Kqff+bp2MSFEA8iETm40k/BxybyC2odWEhkPDlRl+YDe8rJxkGGLwP5PEgiQp5RK4ZftQ6Cgc5loUHDAar10tMsqg++iQeyeb/o=,iv:PSo85CoDdWajU3j4vHsaNCHI6UbMbII01nskXNyotVU=,tag:OBVkKsBnCv9bloORukDgcQ==,type:str]
sops:
age:
- recipient: age14l0hwfqylwpemz5y2ghh2yxk0phszlnj3qlejhue0fw0kz3tmfgqdsjzdh
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJYUEvbDF0azNsM0RSS3pZ
eG1sNEZKOXAzUVRZWWVTbjlpazJqaVpBRWtBCkE4SW9qVVhxa1dKSXhXV2pSN0lK
VVZET0E2bWZSclkvSzlqdlRxcjVNOEEKLS0tIEZtdm9xRU81WXpkTGQ1UW5HZUl2
UERlYmtRc21PSnFGNjFkZFVVcm9nUTgKuxWcqg1MRWq7Yhp61lHHKPZsdiNeHXSd
72OCNMaUiz58kTKt+tpthUxXlGUlf3y0VA1/KigeA+L5Z2bk/bdMmw==
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWOVd0enFxNE85WnN1eTRD
MjdVSE90NUd6MWFBbCtzZFRTK0NQYllUTGdVCk9aWGNGLzNvLzU3S09la2RiY1hv
bXdNZjFxaVM5aUF3MTA1bWx4WU1TR0EKLS0tIFp6RmdCVlE5Zk53RjF3MnZveHo4
eUpzQTBCRjM0a2FmZzNkdmFKWUVPODQKqpA3drI6JV67Y3P/l8Ql5xwtohVi9D3P
6iAcFoqrVZMSKkkiHDvAcdUexIO/BKddjC5N608MLUz7tcxyWfMqeg==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2026-04-22T13:49:01Z"
mac: ENC[AES256_GCM,data:wHDBVBTvNycXTKTVBK1MNrGg2C0XufPpNTx9ksp1V5rtfcPvZNbiw8aUcjHt6hNtT3tPPmUt82jwzAbAm3hnPsAVfnue+bB2BZ91AI11tcqr4o+l3djeJODntF5d6TfdIWchtwMisy7bBMtLPS4Vs++JPbP90p/CtCdOxPwh1CQ=,iv:CQ24u8xSpzG3QU4JzzpZIx5cBrMH5RxVPl/S6gLylxU=,tag:f8FdKvtyxz8ks0gV6ct9iQ==,type:str]
lastmodified: "2026-04-23T13:17:31Z"
mac: ENC[AES256_GCM,data:V4l8oScpWwC95gg9UQpaV0oKn292Y6WoRZdWlqF3I8BWCGV4LVvLE7KxC9lqHdt/Mcgb6yuaDSv3ZMERl81QOMSMcPVfk/F0LoabP/dFiz1ogxOezHOfJJ2mTu+4yAOkK73RQY68ui5UGAV5FFu3tecE0AAouSt0YrOTBALtLpY=,iv:WBFy/v6gRBil30Oqdew3JW5XVz5wmaO0Uj7J+MfSrss=,tag:CvTEdnbs4dJ0qlnefvXIag==,type:str]
encrypted_regex: ^(data|stringData)$
version: 3.12.2
@@ -1,22 +0,0 @@
apiVersion: v1
kind: Secret
metadata:
name: ess-mas-custom-secrets
namespace: matrix
stringData:
values.yaml: ENC[AES256_GCM,data:Vk5TvaBui8gK6ftcRvZA8aEmw+QmWhn6pp9/2T5ndw8YPiggAtpqZszms5yoOxPK2Jy+GAVZ3M1whWFrdqy2WPjCAVEKlg5i7qeC1wKfgjMV2txWRlQjYAu2n4IYxi1aOaFcqzxLGYclAlQh6J0PmSYKtbWZO0nsjjcbXt9AXRgmjjZnIcNEBcQg9DoSew4MiHr5BQ0dsN0hJx96UhtTAVwssDgE1eKlTz2K/VD/xz3Odd/WuFKjThpa4E3p66Azc+4WNuQpxFejUgEg5ZzMvup8GGEzH5L3jBtxdBNmNFn6GNwFfYwq/ohWTXafVTj1mEpwTYBcKEtsmks8fl/qzb6QBobOOPqKTD4chRhv72yeYE7rv9x6530TxNXGUd++jxtQm1G+ZOjje05k3x2i9SQv5CNBM2jSyoh2uktoVyaJLpgJMv35VdyLAWY+nNXD4yj0isI=,iv:7GmbMaMDWY+agQC3Xr9SpOzGPyb82RDCSEyPHaWwMhQ=,tag:FUpe4v9BybS0M+8L7yvB4A==,type:str]
sops:
age:
- recipient: age14l0hwfqylwpemz5y2ghh2yxk0phszlnj3qlejhue0fw0kz3tmfgqdsjzdh
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCUWlDYkY4NVpWNFVHb1Bo
b3FpR0w5NmttcW9IV1RXWENwTnE2NU9tR0hvCnJyNU9xWEpYZWRXVURtTis3aEp2
MmtCZXZXemlKNnZrbW1OL0NlMXlQbzQKLS0tIG81ZXIyd2pGOVlXeEVtRy92RzFp
VU9sa0tOdlBqcnZ2VTVaQWpaN3Y3L0UKUel3SRju6rFbMa9Di++EAci8+fsMjx4X
X8fM/N4jTHerXOBCT/bnD/Tk/2jAcwg9PC3e906VDUdsIZw+xU+grw==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2026-04-22T10:12:35Z"
mac: ENC[AES256_GCM,data:zMIPahMwgSgF9vdEkp7DyECL3s6IuEHWs0JE1G9A+xYmm0mAFYbzMPwgg6oB57gNpX3EaPovHOOvKlTjZVWUbv892mU63GPi4W5kRxsZya5FyC3PxyZlsvMX9U/F8Hwvo9tymbGYpsGGkxv0doRZvTuKDzj1j1+VO0VVcY2i3Gc=,iv:dq6GtQ0vfQWiew6s6gWjPRZPtQ1rD3cO3aQXPDT0Sos=,tag:7UrcQ8Q420HK/vW01SsRkg==,type:str]
encrypted_regex: ^(data|stringData)$
version: 3.12.2
@@ -0,0 +1,402 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: ess-element-web-docs
namespace: matrix
data:
# HTML Index Page
"index.html": |
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Element Desktop Setup - aXion1337.Chat</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
padding: 40px 20px;
}
.container {
max-width: 800px;
margin: 0 auto;
background: white;
border-radius: 12px;
box-shadow: 0 20px 60px rgba(0,0,0,0.3);
padding: 40px;
}
h1 {
color: #333;
margin-bottom: 10px;
font-size: 2.5em;
}
.subtitle {
color: #666;
margin-bottom: 40px;
font-size: 1.1em;
}
.section {
margin-bottom: 40px;
}
.section h2 {
color: #667eea;
font-size: 1.5em;
margin-bottom: 20px;
border-bottom: 3px solid #667eea;
padding-bottom: 10px;
}
.download-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
margin-bottom: 30px;
}
.download-card {
background: #f8f9fa;
border: 2px solid #e9ecef;
border-radius: 8px;
padding: 20px;
text-align: center;
transition: all 0.3s ease;
text-decoration: none;
color: #333;
}
.download-card:hover {
border-color: #667eea;
background: #f0f3ff;
transform: translateY(-5px);
box-shadow: 0 10px 30px rgba(102, 126, 234, 0.2);
}
.download-card .icon {
font-size: 2.5em;
margin-bottom: 10px;
}
.download-card .name {
font-weight: 600;
font-size: 1.1em;
margin-bottom: 5px;
}
.download-card .desc {
font-size: 0.9em;
color: #666;
}
.themes {
background: #f8f9fa;
border-left: 4px solid #667eea;
padding: 20px;
border-radius: 4px;
margin-bottom: 20px;
}
.themes h3 {
color: #333;
margin-bottom: 15px;
}
.theme-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
gap: 10px;
}
.theme-item {
background: white;
padding: 10px;
border-radius: 4px;
text-align: center;
color: #667eea;
font-weight: 500;
border: 1px solid #667eea;
}
.instructions {
background: #e7f3ff;
border-left: 4px solid #0066cc;
padding: 15px;
border-radius: 4px;
margin: 15px 0;
line-height: 1.6;
}
.instructions code {
background: #f0f0f0;
padding: 2px 6px;
border-radius: 3px;
font-family: monospace;
}
.support {
text-align: center;
color: #666;
margin-top: 40px;
padding-top: 20px;
border-top: 1px solid #e9ecef;
}
.support a {
color: #667eea;
text-decoration: none;
font-weight: 500;
}
.support a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<div class="container">
<h1>🎨 Element Desktop Setup</h1>
<p class="subtitle">Automatische Konfiguration mit Custom Themes für aXion1337.Chat</p>
<div class="section">
<h2>📥 Download Setup-Script</h2>
<div class="download-grid">
<a href="element-setup-windows.cmd" class="download-card" download>
<div class="icon">🪟</div>
<div class="name">Windows</div>
<div class="desc">.cmd Datei</div>
</a>
<a href="element-setup-macos.command" class="download-card" download>
<div class="icon">🍎</div>
<div class="name">macOS</div>
<div class="desc">.command Datei</div>
</a>
<a href="element-setup-linux.sh" class="download-card" download>
<div class="icon">🐧</div>
<div class="name">Linux</div>
<div class="desc">.sh Datei</div>
</a>
</div>
<div class="instructions">
<strong>Anleitung:</strong><br><br>
<strong>🪟 Windows:</strong> Datei herunterladen → Doppelklick → Script läuft automatisch<br><br>
<strong>🍎 macOS:</strong> Datei herunterladen → Doppelklick im Finder → Script läuft automatisch<br><br>
<strong>🐧 Linux:</strong><br>
<code>chmod +x element-setup-linux.sh</code><br>
<code>./element-setup-linux.sh</code>
</div>
</div>
<div class="section">
<h2>🎨 Verfügbare Themes</h2>
<div class="themes">
<h3>Automatisch geladen in Element:</h3>
<div class="theme-list">
<div class="theme-item">aXion1337 Dark</div>
<div class="theme-item">Deep Purple</div>
<div class="theme-item">Discord Dark</div>
<div class="theme-item">Electric Blue</div>
<div class="theme-item">Everforest dark hard</div>
<div class="theme-item">Gruvbox Dark</div>
<div class="theme-item">Wal</div>
</div>
</div>
</div>
<div class="section">
<h2>❓ Support</h2>
<p>Für weitere Hilfe besuche: <a href="https://element.io/help" target="_blank">element.io/help</a></p>
</div>
<div class="support">
<p>Element wird automatisch installiert und konfiguriert.<br>
<small>Bei Fragen oder Problemen: <a href="https://element.io/help">Element Support</a></small></p>
</div>
</div>
</body>
</html>
# README
"README-Element-Setup.md": |
# Element Desktop Setup Scripts
Automatische Konfiguration und Installation von Element Desktop mit Custom Themes für aXion1337.Chat
## 🎨 Verfügbare Themes
- aXion1337 Dark
- Deep Purple
- Discord Dark
- Electric Blue
- Everforest dark hard
- Gruvbox Dark
- Wal
## 🪟 Windows
Herunterladen: `element-setup-windows.cmd` → Doppelklick
## 🍎 macOS
Herunterladen: `element-setup-macos.command` → Doppelklick im Finder
## 🐧 Linux
```bash
chmod +x element-setup-linux.sh
./element-setup-linux.sh
```
Support: https://element.io/help
# Windows Script
"element-setup-windows.cmd": |
@echo off
REM Element Desktop Setup Script for Windows
setlocal enabledelayedexpansion
echo ========================================
echo Element Desktop Konfiguration Setup
echo ========================================
echo.
set APPDATA_PATH=%APPDATA%\Element
set CONFIG_FILE=%APPDATA_PATH%\config.json
if not exist "%APPDATA_PATH%" (
echo Erstelle Element Verzeichnis...
mkdir "%APPDATA_PATH%"
)
echo Erstelle config.json...
(
echo {
echo "configUrl": "https://axion1337.chat/config.json",
echo "brand": "aXion1337.Chat",
echo "default_theme": "aXion1337 Dark",
echo "show_labs_settings": true,
echo "features": {
echo "feature_qr_code_login": true
echo },
echo "setting_defaults": {
echo "custom_themes": []
echo }
echo }
) > "%CONFIG_FILE%"
echo Config erstellt: %CONFIG_FILE%
echo.
echo Ueberpruefen Sie ob Element Desktop installiert ist...
where element >nul 2>nul
if %ERRORLEVEL% == 0 (
echo Starte Element Desktop...
start element
timeout /t 2 >nul
echo Done!
pause
exit /b 0
)
winget list --name "Element" >nul 2>nul
if %ERRORLEVEL% == 0 (
echo WinGet gefunden. Installiere Element...
winget install Element.Element --silent
timeout /t 3 >nul
start element
pause
exit /b 0
)
echo.
echo Element Desktop konnte nicht automatisch installiert werden.
echo Bitte installiere Element Desktop manuell:
echo https://element.io/download
echo.
pause
# macOS Script
"element-setup-macos.command": |
#!/bin/bash
echo "========================================"
echo "Element Desktop Konfiguration Setup"
echo "========================================"
echo ""
CONFIG_DIR="$HOME/Library/Application Support/Element"
CONFIG_FILE="$CONFIG_DIR/config.json"
if [ ! -d "$CONFIG_DIR" ]; then
echo "Erstelle Element Verzeichnis..."
mkdir -p "$CONFIG_DIR"
fi
echo "Erstelle config.json..."
cat > "$CONFIG_FILE" << 'EOF'
{
"configUrl": "https://axion1337.chat/config.json",
"brand": "aXion1337.Chat",
"default_theme": "aXion1337 Dark",
"show_labs_settings": true,
"features": {
"feature_qr_code_login": true
},
"setting_defaults": {
"custom_themes": []
}
}
EOF
echo "Config erstellt: $CONFIG_FILE"
echo ""
echo "Ueberpruefen Sie ob Element Desktop installiert ist..."
if [ -d "/Applications/Element.app" ]; then
echo "Element im Applications Folder gefunden. Starte Element..."
open -a Element
sleep 2
exit 0
fi
if command -v brew &> /dev/null; then
echo "Installiere Element uber Homebrew..."
brew install element --cask
sleep 2
open -a Element
exit 0
else
echo ""
echo "Homebrew nicht gefunden. Bitte installiere zuerst:"
echo "https://brew.sh"
echo ""
echo "Deine config.json wurde erstellt unter:"
echo "$CONFIG_FILE"
echo ""
fi
read -p "Druecke Enter zum Beenden..."
# Linux Script
"element-setup-linux.sh": |
#!/bin/bash
echo "========================================"
echo "Element Desktop Konfiguration Setup"
echo "========================================"
echo ""
CONFIG_DIR="$HOME/.config/Element"
CONFIG_FILE="$CONFIG_DIR/config.json"
if [ ! -d "$CONFIG_DIR" ]; then
echo "Erstelle Element Verzeichnis..."
mkdir -p "$CONFIG_DIR"
fi
echo "Erstelle config.json..."
cat > "$CONFIG_FILE" << 'EOF'
{
"configUrl": "https://axion1337.chat/config.json",
"brand": "aXion1337.Chat",
"default_theme": "aXion1337 Dark",
"show_labs_settings": true,
"features": {
"feature_qr_code_login": true
},
"setting_defaults": {
"custom_themes": []
}
}
EOF
echo "Config erstellt: $CONFIG_FILE"
echo ""
if command -v apt &> /dev/null; then
echo "Installiere Element uber apt..."
sudo apt update && sudo apt install -y element-desktop
element &
exit 0
fi
if command -v dnf &> /dev/null; then
echo "Installiere Element uber dnf..."
sudo dnf install -y element-desktop
element &
exit 0
fi
if command -v pacman &> /dev/null; then
echo "Installiere Element uber pacman..."
sudo pacman -S --noconfirm element-web
element &
exit 0
fi
echo "Element Desktop konnte nicht automatisch installiert werden."
echo "Bitte installiere Element Desktop manuell:"
echo "Ubuntu/Debian: sudo apt install element-desktop"
echo "Fedora/RHEL: sudo dnf install element-desktop"
echo "Arch: sudo pacman -S element-web"
echo ""
echo "Deine config.json wurde erstellt unter:"
echo "$CONFIG_FILE"
@@ -0,0 +1,92 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: element-web-docs
namespace: matrix
spec:
replicas: 1
selector:
matchLabels:
app: element-web-docs
template:
metadata:
labels:
app: element-web-docs
spec:
initContainers:
- name: copy-files
image: busybox:1.36
command: ["/bin/sh", "-c"]
args:
- |
mkdir -p /html/docs/setup
cp /config/index.html /html/docs/setup/
cp /config/README-Element-Setup.md /html/docs/setup/
cp /config/element-setup-windows.cmd /html/docs/setup/
cp /config/element-setup-macos.command /html/docs/setup/
cp /config/element-setup-linux.sh /html/docs/setup/
chmod 644 /html/docs/setup/*
volumeMounts:
- name: config
mountPath: /config
- name: html
mountPath: /html
containers:
- name: nginx
image: nginx:1.26-alpine
ports:
- containerPort: 8080
volumeMounts:
- name: nginx-conf
mountPath: /etc/nginx/conf.d/default.conf
subPath: nginx.conf
- name: html
mountPath: /usr/share/nginx/html
volumes:
- name: config
configMap:
name: ess-element-web-docs
- name: nginx-conf
configMap:
name: element-web-docs-nginx
- name: html
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: element-web-docs
namespace: matrix
spec:
selector:
app: element-web-docs
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIP
---
apiVersion: v1
kind: ConfigMap
metadata:
name: element-web-docs-nginx
namespace: matrix
data:
nginx.conf: |
server {
listen 8080;
server_name _;
root /usr/share/nginx/html;
location /docs/setup/ {
index index.html;
try_files $uri $uri/ =404;
}
location / {
return 404;
}
}
+2
View File
@@ -7,6 +7,8 @@ resources:
- custom-configs/synapse-values.yaml
- custom-configs/element-values.yaml
- custom-configs/mas-secret.yaml
- element-web-docs-configmap.yaml
- element-web-docs-server.yaml
# HelmRelease (muss ganz unten stehen, damit die ConfigMaps vorher da sind!)
- element-server-suite.yaml
# Custom Apex Ingress für Element Web + Well-Known auf axion1337.chat
+206
View File
@@ -0,0 +1,206 @@
# Element Desktop Setup Scripts
Automatische Konfiguration und Installation von Element Desktop mit Custom Themes für aXion1337.Chat
## 📋 Systemanforderungen
- **Windows 10/11**
- **macOS 10.13+**
- **Linux** (Ubuntu, Debian, Fedora, Arch, openSUSE, etc.)
---
## 🪟 Windows
### Installation
1. **Lade die Datei herunter**: `element-setup-windows.cmd`
2. **Doppelklick** auf die Datei
3. Das Skript wird automatisch:
- ✅ Die config.json erstellen
- ✅ Element Desktop installieren (falls nötig)
- ✅ Element starten
**Oder manuell:**
```cmd
element-setup-windows.cmd
```
### Voraussetzungen
Das Skript versucht automatisch, Element zu installieren über:
- Windows Store (Microsoft Store)
- WinGet (Windows Package Manager)
- Chocolatey
Falls nichts davon vorhanden ist, installiere Element manuell:
https://element.io/download
---
## 🍎 macOS
### Installation
1. **Lade die Datei herunter**: `element-setup-macos.command`
2. **Doppelklick** im Finder
3. Das Skript wird automatisch:
- ✅ Die config.json erstellen
- ✅ Element Desktop installieren (über Homebrew falls nötig)
- ✅ Element starten
**Oder im Terminal:**
```bash
chmod +x element-setup-macos.command
./element-setup-macos.command
```
### Voraussetzungen
Das Skript nutzt **Homebrew** (falls vorhanden):
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
Oder installiere Element manuell:
https://element.io/download
---
## 🐧 Linux
### Installation
1. **Lade die Datei herunter**: `element-setup-linux.sh`
2. **Im Terminal:**
```bash
chmod +x element-setup-linux.sh
./element-setup-linux.sh
```
3. Das Skript wird automatisch:
- ✅ Die config.json erstellen
- ✅ Element Desktop installieren (über apt/dnf/pacman/zypper)
- ✅ Element starten
### Unterstützte Distributionen
- **Ubuntu/Debian**: `apt`
- **Fedora/RHEL**: `dnf`
- **Arch Linux**: `pacman`
- **openSUSE**: `zypper`
---
## ✅ Was die Skripte machen
Alle Skripte führen diese Schritte aus:
1. **config.json erstellen** im richtigen Verzeichnis:
- **Windows**: `%APPDATA%\Element\config.json`
- **macOS**: `~/Library/Application Support/Element/config.json`
- **Linux**: `~/.config/Element/config.json`
2. **Automatische Konfiguration**:
```json
{
"configUrl": "https://axion1337.chat/config.json",
"brand": "aXion1337.Chat",
"default_theme": "aXion1337 Dark",
"show_labs_settings": true,
"features": {
"feature_qr_code_login": true
}
}
```
3. **Element Desktop installieren** (falls nicht vorhanden)
4. **Element starten** und deine Custom Themes laden
---
## 🎨 Themes nach Setup
Nach dem Setup hat dein Element Desktop:
1. **Automatisch geladene Themes** von: `https://axion1337.chat/config.json`
2. **Standard Theme**: aXion1337 Dark
3. **Verfügbare Themes**:
- aXion1337 Dark
- Deep Purple
- Discord Dark
- Electric Blue
- Everforest dark hard
- Gruvbox Dark
- Wal
---
## ⚙️ Manuelle Konfiguration (falls Skript nicht funktioniert)
Falls die Skripte nicht funktionieren, erstelle manuell die config.json:
### Windows
```
%APPDATA%\Element\config.json
```
### macOS
```
~/Library/Application Support/Element/config.json
```
### Linux
```
~/.config/Element/config.json
```
**Inhalt** (copy-paste):
```json
{
"configUrl": "https://axion1337.chat/config.json",
"brand": "aXion1337.Chat",
"default_theme": "aXion1337 Dark",
"show_labs_settings": true,
"features": {
"feature_qr_code_login": true
},
"setting_defaults": {
"custom_themes": []
}
}
```
---
## 🆘 Troubleshooting
### Element startet nicht
- Stelle sicher, dass Element Desktop installiert ist
- Überprüfe den Installationspfad
- Starten manuell: `element` (Terminal/CMD)
### config.json wird nicht geladen
- Überprüfe, dass die Datei im richtigen Verzeichnis ist
- Beende Element vollständig (auch in der Taskbar)
- Starte Element neu
### Themes nicht sichtbar
- Überprüfe Internetverbindung
- `https://axion1337.chat/config.json` sollte erreichbar sein
- Öffne Settings > Appearance > Theme und wähle manuell
---
## 📞 Support
Bei Fragen oder Problemen:
- https://element.io/help
- https://axion1337.chat
---
**Version**: 1.0
**Letztes Update**: 2026-04-23
**Kompatibilität**: Element Desktop 1.11+
+114
View File
@@ -0,0 +1,114 @@
#!/bin/bash
# Element Desktop Setup Script for Linux
# Ausführung: chmod +x element-setup-linux.sh && ./element-setup-linux.sh
echo "========================================"
echo "Element Desktop Konfiguration Setup"
echo "========================================"
echo ""
# Erkenne Linux Distribution
if [ -f /etc/os-release ]; then
. /etc/os-release
OS=$ID
else
OS=$(uname -s)
fi
# Config-Verzeichnis
CONFIG_DIR="$HOME/.config/Element"
CONFIG_FILE="$CONFIG_DIR/config.json"
# Erstelle Verzeichnis falls nicht vorhanden
if [ ! -d "$CONFIG_DIR" ]; then
echo "Erstelle Element Verzeichnis..."
mkdir -p "$CONFIG_DIR"
fi
# Erstelle config.json
echo "Erstelle config.json..."
cat > "$CONFIG_FILE" << 'EOF'
{
"configUrl": "https://axion1337.chat/config.json",
"brand": "aXion1337.Chat",
"default_theme": "aXion1337 Dark",
"show_labs_settings": true,
"features": {
"feature_qr_code_login": true
},
"setting_defaults": {
"custom_themes": []
}
}
EOF
echo "✅ Config erstellt: $CONFIG_FILE"
echo ""
# Versuche Element zu starten/installieren
echo "Überprüfe Element Desktop Installation..."
# Methode 1: Element ist bereits installiert
if command -v element &> /dev/null; then
echo "Element gefunden. Starte Element..."
element &
sleep 2
exit 0
fi
# Methode 2: Apt (Debian/Ubuntu)
if command -v apt &> /dev/null; then
echo ""
echo "Installiere Element über apt..."
sudo apt update
sudo apt install -y element-desktop
echo "Starte Element..."
element &
exit 0
fi
# Methode 3: Pacman (Arch Linux)
if command -v pacman &> /dev/null; then
echo ""
echo "Installiere Element über pacman..."
sudo pacman -S --noconfirm element-web
echo "Starte Element..."
element &
exit 0
fi
# Methode 4: DNF (Fedora/RHEL)
if command -v dnf &> /dev/null; then
echo ""
echo "Installiere Element über dnf..."
sudo dnf install -y element-desktop
echo "Starte Element..."
element &
exit 0
fi
# Methode 5: Zypper (openSUSE)
if command -v zypper &> /dev/null; then
echo ""
echo "Installiere Element über zypper..."
sudo zypper install -y element-desktop
echo "Starte Element..."
element &
exit 0
fi
# Fallback
echo ""
echo "⚠️ Element Desktop konnte nicht automatisch installiert werden."
echo ""
echo "Bitte installiere Element Desktop manuell:"
echo " Ubuntu/Debian: sudo apt install element-desktop"
echo " Fedora/RHEL: sudo dnf install element-desktop"
echo " Arch: sudo pacman -S element-web"
echo " openSUSE: sudo zypper install element-desktop"
echo ""
echo "Oder: https://element.io/download"
echo ""
echo "✅ Deine config.json wurde erstellt unter:"
echo "$CONFIG_FILE"
echo ""
+84
View File
@@ -0,0 +1,84 @@
#!/bin/bash
# Element Desktop Setup Script for macOS
# Doppelklick im Finder zum Ausführen
echo "========================================"
echo "Element Desktop Konfiguration Setup"
echo "========================================"
echo ""
# Config-Verzeichnis
CONFIG_DIR="$HOME/Library/Application Support/Element"
CONFIG_FILE="$CONFIG_DIR/config.json"
# Erstelle Verzeichnis falls nicht vorhanden
if [ ! -d "$CONFIG_DIR" ]; then
echo "Erstelle Element Verzeichnis..."
mkdir -p "$CONFIG_DIR"
fi
# Erstelle config.json
echo "Erstelle config.json..."
cat > "$CONFIG_FILE" << 'EOF'
{
"configUrl": "https://axion1337.chat/config.json",
"brand": "aXion1337.Chat",
"default_theme": "aXion1337 Dark",
"show_labs_settings": true,
"features": {
"feature_qr_code_login": true
},
"setting_defaults": {
"custom_themes": []
}
}
EOF
echo "Config erstellt: $CONFIG_FILE"
echo ""
# Versuche Element zu installieren/starten
echo "Überprüfe Element Desktop Installation..."
# Methode 1: Über Homebrew (falls installiert)
if command -v brew &> /dev/null; then
if brew list element &> /dev/null; then
echo "Element über Homebrew gefunden. Starte Element..."
open -a Element
sleep 2
exit 0
fi
fi
# Methode 2: Direkte App im Applications Folder
if [ -d "/Applications/Element.app" ]; then
echo "Element im Applications Folder gefunden. Starte Element..."
open -a Element
sleep 2
exit 0
fi
# Methode 3: Homebrew Installation
if command -v brew &> /dev/null; then
echo ""
echo "Installiere Element über Homebrew..."
brew install element --cask
echo "Starte Element..."
sleep 2
open -a Element
exit 0
else
echo ""
echo "⚠️ Homebrew nicht gefunden. Bitte installiere zuerst:"
echo "https://brew.sh"
echo ""
echo "Oder installiere Element manuell:"
echo "https://element.io/download"
echo ""
echo "✅ Deine config.json wurde erstellt unter:"
echo "$CONFIG_FILE"
echo ""
fi
# Warte auf Benutzer-Input vor dem Schließen
read -p "Drücke Enter zum Beenden..."
+89
View File
@@ -0,0 +1,89 @@
@echo off
REM Element Desktop Setup Script for Windows
REM Doppelklick zum Ausführen
setlocal enabledelayedexpansion
echo ========================================
echo Element Desktop Konfiguration Setup
echo ========================================
echo.
REM Config-Verzeichnis
set APPDATA_PATH=%APPDATA%\Element
set CONFIG_FILE=%APPDATA_PATH%\config.json
REM Erstelle Verzeichnis falls nicht vorhanden
if not exist "%APPDATA_PATH%" (
echo Erstelle Element Verzeichnis...
mkdir "%APPDATA_PATH%"
)
REM Erstelle config.json
echo Erstelle config.json...
(
echo {
echo "configUrl": "https://axion1337.chat/config.json",
echo "brand": "aXion1337.Chat",
echo "default_theme": "aXion1337 Dark",
echo "show_labs_settings": true,
echo "features": {
echo "feature_qr_code_login": true
echo },
echo "setting_defaults": {
echo "custom_themes": []
echo }
echo }
) > "%CONFIG_FILE%"
echo Config erstellt: %CONFIG_FILE%
echo.
REM Versuche Element zu installieren/starten
echo Überprüfe Element Desktop Installation...
REM Methode 1: Über Microsoft Store (wenn verfügbar)
where element >nul 2>nul
if %ERRORLEVEL% == 0 (
echo Starte Element Desktop...
start element
timeout /t 2 >nul
echo Done!
pause
exit /b 0
)
REM Methode 2: WinGet (Falls installiert)
winget list --name "Element" >nul 2>nul
if %ERRORLEVEL% == 0 (
echo WinGet gefunden. Installiere Element...
winget install Element.Element --silent
echo Starte Element...
timeout /t 3 >nul
start element
pause
exit /b 0
)
REM Methode 3: Chocolatey (Falls installiert)
choco list element >nul 2>nul
if %ERRORLEVEL% == 0 (
echo Chocolatey gefunden. Installiere Element...
choco install element -y
echo Starte Element...
timeout /t 3 >nul
start element
pause
exit /b 0
)
REM Fallback: Manueller Download
echo.
echo Element Desktop konnte nicht automatisch installiert werden.
echo Bitte installiere Element Desktop manuell:
echo https://element.io/download
echo.
echo Deine config.json wurde erstellt unter:
echo %CONFIG_FILE%
echo.
pause