This commit is contained in:
Linrador 2025-09-02 06:23:53 +02:00
parent 0d9b4b0453
commit 36745d2ae5
5 changed files with 357 additions and 543 deletions

12
.env
View File

@ -8,12 +8,8 @@ DATABASE_URL="postgresql://postgres:Timmy0104199%3F@localhost:5432/ironie"
SHARE_CODE_SECRET_KEY=6f9d4a2951b8eae35cdd3fb28e1a74550d177c3900ad1111c8e48b4e3b39bba4
SHARE_CODE_IV=9f1d67b8a3c4d261fa2b7c44a1d4f9c8
STEAM_API_KEY=0B3B2BF79ECD1E9262BB118A7FEF1973
STEAM_USERNAME=ironiebot
STEAM_PASSWORD=QGEgGxaQoIFz16rDvMcO
STEAM_SHARED_SECRET=test
STEAMCMD_PATH=C:\Users\Rother\Desktop\dev\ironie\steamcmd\steamcmd.exe
NEXTAUTH_SECRET=ironieopen
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_URL=https://ironieopen.local
AUTH_SECRET="57AUHXa+UmFrlnIEKxtrk8fLo+aZMtsa/oV6fklXkcE=" # Added by `npx auth`. Read more: https://cli.authjs.dev
ALLSTAR_TOKEN=ed033ac0-5df7-482e-a322-e2b4601955d3
PTERODACTYL_APP_API=ptla_O6Je82OvlCBFITDRgB1ZJ95AIyUSXYnVGgwRF6pO6d9
@ -23,6 +19,6 @@ PTERO_SERVER_SFTP_URL=sftp://panel.ironieopen.de:2022
PTERO_SERVER_SFTP_USER=army.37a11489
PTERO_SERVER_SFTP_PASSWORD=IJHoYHTXQvJkCxkycTYM
PTERO_SERVER_ID=37a11489
NEXT_PUBLIC_CS2_WS_URL=wss://ws.ironieopen.de:8081/telemetry
NEXT_PUBLIC_CS2_WS_HOST=ws.ironieopen.de
NEXT_PUBLIC_CS2_WS_PORT=8081
NEXT_PUBLIC_CS2_WS_HOST=ironieopen.local
NEXT_PUBLIC_CS2_WS_PORT=443
NEXT_PUBLIC_CS2_WS_PATH=/telemetry

10
package-lock.json generated
View File

@ -45,6 +45,7 @@
"react-chartjs-2": "^5.3.0",
"react-dom": "^19.0.0",
"ssh2-sftp-client": "^12.0.1",
"undici": "^7.15.0",
"vanilla-calendar-pro": "^3.0.4",
"zustand": "^5.0.3"
},
@ -7957,6 +7958,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/undici": {
"version": "7.15.0",
"resolved": "https://registry.npmjs.org/undici/-/undici-7.15.0.tgz",
"integrity": "sha512-7oZJCPvvMvTd0OlqWsIxTuItTpJBpU1tcbVl24FMn3xt3+VSunwUasmfPJRE57oNO1KsZ4PgA1xTdAX4hq8NyQ==",
"license": "MIT",
"engines": {
"node": ">=20.18.1"
}
},
"node_modules/undici-types": {
"version": "6.19.8",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",

View File

@ -49,6 +49,7 @@
"react-chartjs-2": "^5.3.0",
"react-dom": "^19.0.0",
"ssh2-sftp-client": "^12.0.1",
"undici": "^7.15.0",
"vanilla-calendar-pro": "^3.0.4",
"zustand": "^5.0.3"
},

File diff suppressed because it is too large Load Diff

View File

@ -3,21 +3,30 @@ import { headers } from 'next/headers'
import { notFound } from 'next/navigation'
import { MatchProvider } from './MatchContext'
import type { Match } from '@/app/types/match'
import https from 'https'
import { Agent } from 'undici'
export const dynamic = 'force-dynamic'
export const revalidate = 0
// (optional) falls du sicher Node Runtime willst:
// export const runtime = 'nodejs'
async function loadMatch(matchId: string): Promise<Match | null> {
const h = await headers(); // ⬅️ wichtig
const h = await headers()
const proto = (h.get('x-forwarded-proto') ?? 'http').split(',')[0].trim()
const host = (h.get('x-forwarded-host') ?? h.get('host') ?? '').split(',')[0].trim()
const base = host ? `${proto}://${host}` : (process.env.NEXTAUTH_URL ?? 'http://localhost:3000')
// Fallback, falls in seltenen Fällen kein Host vorhanden ist (z. B. bei lokalen Tests)
const base = host ? `${proto}://${host}` : (process.env.NEXT_PUBLIC_BASE_URL ?? 'http://localhost:3000')
// ⚠️ Nur in Dev benutzen!
const insecure = new Agent({ connect: { rejectUnauthorized: false } })
const res = await fetch(`${base}/api/matches/${matchId}`, { cache: 'no-store' })
const init: any = { cache: 'no-store' }
if (base.startsWith('https://') && process.env.NODE_ENV !== 'production') {
init.dispatcher = insecure
}
const res = await fetch(`${base}/api/matches/${matchId}`, init)
if (!res.ok) return null
return res.json()
}