remove environments from git
This commit is contained in:
82
.env.example
Normal file
82
.env.example
Normal file
@@ -0,0 +1,82 @@
|
||||
# ───────────────────────────────────────────────
|
||||
# 🔐 Authentifizierung & Cookies
|
||||
# ───────────────────────────────────────────────
|
||||
AUTH_DISPATCH_SECRET=
|
||||
AUTH_HUB_SECRET=
|
||||
|
||||
AUTH_DISPATCH_COOKIE_PREFIX=
|
||||
AUTH_HUB_COOKIE_PREFIX=
|
||||
|
||||
AUTH_DISPATCH_URL=
|
||||
AUTH_HUB_URL=
|
||||
NEXT_PUBLIC_DISPATCH_SERVICE_ID=
|
||||
|
||||
|
||||
# ───────────────────────────────────────────────
|
||||
# 🌐 Öffentliche URLs
|
||||
# ───────────────────────────────────────────────
|
||||
NEXT_PUBLIC_HUB_URL=
|
||||
NEXT_PUBLIC_HUB_SERVER_URL=
|
||||
NEXT_PUBLIC_DISPATCH_URL=
|
||||
NEXT_PUBLIC_DISPATCH_SERVER_URL=
|
||||
DISCORD_SERVER_URL=
|
||||
|
||||
|
||||
NEXT_PUBLIC_ESRI_ACCESS_TOKEN=
|
||||
NEXT_PUBLIC_OPENAIP_ACCESS=
|
||||
|
||||
# ───────────────────────────────────────────────
|
||||
# 🗄️ Datenbank
|
||||
# ───────────────────────────────────────────────
|
||||
DATABASE_URL=
|
||||
|
||||
# ───────────────────────────────────────────────
|
||||
# 📡 LiveKit Konfiguration
|
||||
# ───────────────────────────────────────────────
|
||||
NEXT_PUBLIC_LIVEKIT_URL=
|
||||
LIVEKIT_API_KEY=
|
||||
LIVEKIT_API_SECRET=
|
||||
|
||||
# ───────────────────────────────────────────────
|
||||
# 🚦 Dispatch Server (Backend)
|
||||
# ───────────────────────────────────────────────
|
||||
DISPATCH_SERVER_PORT=
|
||||
DISPATCH_APP_TOKEN=
|
||||
|
||||
REDIS_HOST=
|
||||
REDIS_PORT=
|
||||
|
||||
# ───────────────────────────────────────────────
|
||||
# 🧠 HUB Server (Backend)
|
||||
# ───────────────────────────────────────────────
|
||||
HUB_SERVER_PORT=
|
||||
|
||||
DISCORD_SERVER_PORT=
|
||||
# ───────────────────────────────────────────────
|
||||
# 📚 Moodle
|
||||
# ───────────────────────────────────────────────
|
||||
MOODLE_URL=
|
||||
MOODLE_API_TOKEN=
|
||||
MOODLE_USER_PASSWORD=
|
||||
NEXT_PUBLIC_MOODLE_URL=
|
||||
|
||||
|
||||
# ───────────────────────────────────────────────
|
||||
# 📧 E-Mail Einstellungen (nur HUB Server)
|
||||
# ───────────────────────────────────────────────
|
||||
MAIL_SERVER=
|
||||
MAIL_PORT=
|
||||
MAIL_USER=
|
||||
MAIL_PASSWORD=
|
||||
|
||||
# ───────────────────────────────────────────────
|
||||
# 🕹️ Discord OAuth (optional)
|
||||
# ───────────────────────────────────────────────
|
||||
|
||||
DISCORD_GUILD_ID=
|
||||
|
||||
DISCORD_OAUTH_CLIENT_ID=
|
||||
DISCORD_OAUTH_SECRET=
|
||||
DISCORD_BOT_TOKEN=
|
||||
DISCORD_REDIRECT_URL=
|
||||
NEXT_PUBLIC_DISCORD_URL=
|
||||
74
.env.prod
74
.env.prod
@@ -1,82 +1,82 @@
|
||||
# ───────────────────────────────────────────────
|
||||
# 🔐 Authentifizierung & Cookies
|
||||
# ───────────────────────────────────────────────
|
||||
AUTH_DISPATCH_SECRET=dispatch
|
||||
AUTH_HUB_SECRET=var
|
||||
AUTH_DISPATCH_SECRET=
|
||||
AUTH_HUB_SECRET=
|
||||
|
||||
AUTH_DISPATCH_COOKIE_PREFIX=DISPATCH
|
||||
AUTH_HUB_COOKIE_PREFIX=HUB
|
||||
AUTH_DISPATCH_COOKIE_PREFIX=
|
||||
AUTH_HUB_COOKIE_PREFIX=
|
||||
|
||||
AUTH_DISPATCH_URL=https://dispatch.premiumag.de
|
||||
AUTH_HUB_URL=https://hub.premiumag.de
|
||||
NEXT_PUBLIC_DISPATCH_SERVICE_ID=1
|
||||
AUTH_DISPATCH_URL=
|
||||
AUTH_HUB_URL=
|
||||
NEXT_PUBLIC_DISPATCH_SERVICE_ID=
|
||||
|
||||
|
||||
# ───────────────────────────────────────────────
|
||||
# 🌐 Öffentliche URLs
|
||||
# ───────────────────────────────────────────────
|
||||
NEXT_PUBLIC_HUB_URL=https://hub.premiumag.de
|
||||
NEXT_PUBLIC_HUB_SERVER_URL=https://api.hub.premiumag.de
|
||||
NEXT_PUBLIC_DISPATCH_URL=https://dispatch.premiumag.de
|
||||
NEXT_PUBLIC_DISPATCH_SERVER_URL=https://api.dispatch.premiumag.de
|
||||
DISCORD_SERVER_URL=http://discord-server:3000
|
||||
NEXT_PUBLIC_HUB_URL=
|
||||
NEXT_PUBLIC_HUB_SERVER_URL=
|
||||
NEXT_PUBLIC_DISPATCH_URL=
|
||||
NEXT_PUBLIC_DISPATCH_SERVER_URL=
|
||||
DISCORD_SERVER_URL=
|
||||
|
||||
|
||||
NEXT_PUBLIC_ESRI_ACCESS_TOKEN=
|
||||
NEXT_PUBLIC_OPENAIP_ACCESS=6e85069940543ef02f8615b737059d98
|
||||
NEXT_PUBLIC_OPENAIP_ACCESS=
|
||||
|
||||
# ───────────────────────────────────────────────
|
||||
# 🗄️ Datenbank
|
||||
# ───────────────────────────────────────────────
|
||||
DATABASE_URL=postgresql://persistant-data:persistant-data-pw@postgres:5432/var
|
||||
DATABASE_URL=
|
||||
|
||||
# ───────────────────────────────────────────────
|
||||
# 📡 LiveKit Konfiguration
|
||||
# ───────────────────────────────────────────────
|
||||
NEXT_PUBLIC_LIVEKIT_URL=wss://livekit.premiumag.de
|
||||
LIVEKIT_API_KEY=APIAnsGdtdYp2Ho
|
||||
LIVEKIT_API_SECRET=tdPjVsYUx8ddC7K9NvdmVAeLRF9GeADD6Fedm1x63fWC
|
||||
NEXT_PUBLIC_LIVEKIT_URL=
|
||||
LIVEKIT_API_KEY=
|
||||
LIVEKIT_API_SECRET=
|
||||
|
||||
# ───────────────────────────────────────────────
|
||||
# 🚦 Dispatch Server (Backend)
|
||||
# ───────────────────────────────────────────────
|
||||
DISPATCH_SERVER_PORT=3000
|
||||
DISPATCH_APP_TOKEN=dispatch
|
||||
DISPATCH_SERVER_PORT=
|
||||
DISPATCH_APP_TOKEN=
|
||||
|
||||
REDIS_HOST=redis
|
||||
REDIS_PORT=6379
|
||||
REDIS_HOST=
|
||||
REDIS_PORT=
|
||||
|
||||
# ───────────────────────────────────────────────
|
||||
# 🧠 HUB Server (Backend)
|
||||
# ───────────────────────────────────────────────
|
||||
HUB_SERVER_PORT=3000
|
||||
HUB_SERVER_PORT=
|
||||
|
||||
DISCORD_SERVER_PORT=3000
|
||||
DISCORD_SERVER_PORT=
|
||||
# ───────────────────────────────────────────────
|
||||
# 📚 Moodle
|
||||
# ───────────────────────────────────────────────
|
||||
MOODLE_URL=https://02.premiumag.de:8081
|
||||
MOODLE_API_TOKEN=ac346f0324647b68488d13fd52a9bbe8
|
||||
MOODLE_USER_PASSWORD=var-api-user-P1
|
||||
NEXT_PUBLIC_MOODLE_URL=https://02.premiumag.de:8081
|
||||
MOODLE_URL=
|
||||
MOODLE_API_TOKEN=
|
||||
MOODLE_USER_PASSWORD=
|
||||
NEXT_PUBLIC_MOODLE_URL=
|
||||
|
||||
|
||||
# ───────────────────────────────────────────────
|
||||
# 📧 E-Mail Einstellungen (nur HUB Server)
|
||||
# ───────────────────────────────────────────────
|
||||
MAIL_SERVER=asmtp.mail.hostpoint.ch
|
||||
MAIL_PORT=465
|
||||
MAIL_USER=noreply@virtualairrescue.com
|
||||
MAIL_PASSWORD=b7316PB8aDPCC%-&
|
||||
MAIL_SERVER=
|
||||
MAIL_PORT=
|
||||
MAIL_USER=
|
||||
MAIL_PASSWORD=
|
||||
|
||||
# ───────────────────────────────────────────────
|
||||
# 🕹️ Discord OAuth (optional)
|
||||
# ───────────────────────────────────────────────
|
||||
|
||||
DISCORD_GUILD_ID=1077269395019141140
|
||||
DISCORD_GUILD_ID=
|
||||
|
||||
DISCORD_OAUTH_CLIENT_ID=930384053344034846
|
||||
DISCORD_OAUTH_SECRET=96aSvmIePqFTbGc54mad0QsZfDnYwhl1
|
||||
DISCORD_BOT_TOKEN=OTMwMzg0MDUzMzQ0MDM0ODQ2.G7zIy-._hE3dTbtUv6sd7nIP2PUn3d8s-2MFk0x3nYMg8
|
||||
DISCORD_REDIRECT_URL=https://hub.premiumag.de/api/discord-redirect
|
||||
NEXT_PUBLIC_DISCORD_URL=https://discord.com/oauth2/authorize?client_id=930384053344034846&response_type=code&redirect_uri=https%3A%2F%2Fhub.premiumag.de%2Fapi%2Fdiscord-redirect&scope=identify+guilds+email
|
||||
DISCORD_OAUTH_CLIENT_ID=
|
||||
DISCORD_OAUTH_SECRET=
|
||||
DISCORD_BOT_TOKEN=
|
||||
DISCORD_REDIRECT_URL=
|
||||
NEXT_PUBLIC_DISCORD_URL=
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -18,9 +18,7 @@ mkcert
|
||||
# Local env files
|
||||
.env
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
.env.prod
|
||||
|
||||
# Testing
|
||||
coverage
|
||||
|
||||
@@ -34,30 +34,15 @@ export const StationForm = ({ station }: { station?: Station }) => {
|
||||
<h2 className="card-title">
|
||||
<FileText className="w-5 h-5" /> Allgemeines
|
||||
</h2>
|
||||
<Input
|
||||
form={form}
|
||||
label="BOS Rufname"
|
||||
name="bosCallsign"
|
||||
className="input-sm"
|
||||
/>
|
||||
<Input form={form} label="BOS Rufname" name="bosCallsign" className="input-sm" />
|
||||
<Input
|
||||
form={form}
|
||||
label="BOS Rufname (kurz)"
|
||||
name="bosCallsignShort"
|
||||
className="input-sm"
|
||||
/>
|
||||
<Input
|
||||
form={form}
|
||||
label="Betreiber"
|
||||
name="operator"
|
||||
className="input-sm"
|
||||
/>
|
||||
<Input
|
||||
form={form}
|
||||
label="ATC Rufname"
|
||||
name="atcCallsign"
|
||||
className="input-sm"
|
||||
/>
|
||||
<Input form={form} label="Betreiber" name="operator" className="input-sm" />
|
||||
<Input form={form} label="ATC Rufname" name="atcCallsign" className="input-sm" />
|
||||
<Input
|
||||
form={form}
|
||||
label="FIR (Flight Information Region)"
|
||||
@@ -72,9 +57,7 @@ export const StationForm = ({ station }: { station?: Station }) => {
|
||||
/>
|
||||
|
||||
<label className="form-control w-full">
|
||||
<span className="label-text text-lg flex items-center gap-2">
|
||||
BOS Nutzung
|
||||
</span>
|
||||
<span className="label-text text-lg flex items-center gap-2">BOS Nutzung</span>
|
||||
<select
|
||||
className="input-sm select select-bordered select-sm"
|
||||
{...form.register("bosUse")}
|
||||
@@ -94,9 +77,7 @@ export const StationForm = ({ station }: { station?: Station }) => {
|
||||
<LocateIcon className="w-5 h-5" /> Standort + Ausrüstung
|
||||
</h2>
|
||||
<label className="form-control w-full">
|
||||
<span className="label-text text-lg flex items-center gap-2">
|
||||
Land
|
||||
</span>
|
||||
<span className="label-text text-lg flex items-center gap-2">Land</span>
|
||||
<select
|
||||
className="input-sm select select-bordered select-sm"
|
||||
{...form.register("country", {})}
|
||||
@@ -108,55 +89,30 @@ export const StationForm = ({ station }: { station?: Station }) => {
|
||||
))}
|
||||
</select>
|
||||
</label>
|
||||
<Input
|
||||
form={form}
|
||||
label="Bundesland"
|
||||
name="locationState"
|
||||
className="input-sm"
|
||||
/>
|
||||
<Input form={form} label="Bundesland" name="locationState" className="input-sm" />
|
||||
<Input
|
||||
form={form}
|
||||
label="Bundesland (kurz)"
|
||||
name="locationStateShort"
|
||||
className="input-sm"
|
||||
/>
|
||||
<span className="label-text text-lg flex items-center gap-2">
|
||||
Ausgerüstet mit:
|
||||
</span>
|
||||
<span className="label-text text-lg flex items-center gap-2">Ausgerüstet mit:</span>
|
||||
<div className="form-control space-y-2">
|
||||
<label className="label cursor-pointer flex">
|
||||
<span className="flex-1 text-left">Winde</span>
|
||||
<input
|
||||
type="checkbox"
|
||||
className="toggle"
|
||||
{...form.register("hasWinch")}
|
||||
/>
|
||||
<input type="checkbox" className="toggle" {...form.register("hasWinch")} />
|
||||
</label>
|
||||
<label className="label cursor-pointer flex">
|
||||
<span className="flex-1 text-left">Nachtsicht gerät</span>
|
||||
<input
|
||||
type="checkbox"
|
||||
className="toggle"
|
||||
{...form.register("hasNvg")}
|
||||
/>
|
||||
<span className="flex-1 text-left">Nachtsicht-Gerät</span>
|
||||
<input type="checkbox" className="toggle" {...form.register("hasNvg")} />
|
||||
</label>
|
||||
<label className="label cursor-pointer flex">
|
||||
<span className="flex-1 text-left">
|
||||
24-Stunden Einsatzfähig
|
||||
</span>
|
||||
<input
|
||||
type="checkbox"
|
||||
className="toggle"
|
||||
{...form.register("is24h")}
|
||||
/>
|
||||
<span className="flex-1 text-left">24-Stunden Einsatzfähig</span>
|
||||
<input type="checkbox" className="toggle" {...form.register("is24h")} />
|
||||
</label>
|
||||
<label className="label cursor-pointer flex">
|
||||
<span className="flex-1 text-left">Bergetau</span>
|
||||
<input
|
||||
type="checkbox"
|
||||
className="toggle"
|
||||
{...form.register("hasRope")}
|
||||
/>
|
||||
<input type="checkbox" className="toggle" {...form.register("hasRope")} />
|
||||
</label>
|
||||
</div>
|
||||
|
||||
@@ -179,14 +135,8 @@ export const StationForm = ({ station }: { station?: Station }) => {
|
||||
step="any"
|
||||
/>
|
||||
<label className="label cursor-pointer flex">
|
||||
<span className="text-lg flex-1 text-left">
|
||||
Reichweiten ausblenden
|
||||
</span>
|
||||
<input
|
||||
type="checkbox"
|
||||
className="toggle"
|
||||
{...form.register("hideRangeRings")}
|
||||
/>
|
||||
<span className="text-lg flex-1 text-left">Reichweiten ausblenden</span>
|
||||
<input type="checkbox" className="toggle" {...form.register("hideRangeRings")} />
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
@@ -195,12 +145,7 @@ export const StationForm = ({ station }: { station?: Station }) => {
|
||||
<h2 className="card-title">
|
||||
<PlaneIcon className="w-5 h-5" /> Hubschrauber
|
||||
</h2>
|
||||
<Input
|
||||
form={form}
|
||||
label="Hubschrauber Typ"
|
||||
name="aircraft"
|
||||
className="input-sm"
|
||||
/>
|
||||
<Input form={form} label="Hubschrauber Typ" name="aircraft" className="input-sm" />
|
||||
<Input
|
||||
form={form}
|
||||
formOptions={{ valueAsNumber: true }}
|
||||
@@ -220,11 +165,7 @@ export const StationForm = ({ station }: { station?: Station }) => {
|
||||
<div className="card bg-base-200 shadow-xl col-span-6">
|
||||
<div className="card-body ">
|
||||
<div className="flex w-full gap-4">
|
||||
<Button
|
||||
isLoading={loading}
|
||||
type="submit"
|
||||
className="btn btn-primary flex-1"
|
||||
>
|
||||
<Button isLoading={loading} type="submit" className="btn btn-primary flex-1">
|
||||
Speichern
|
||||
</Button>
|
||||
{station && (
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
services:
|
||||
redis:
|
||||
container_name: redis
|
||||
image: redis/redis-stack:latest
|
||||
ports:
|
||||
- "6379:6379"
|
||||
volumes:
|
||||
- "redis_data:/data"
|
||||
# Für den Zugriff auf den Host
|
||||
livekit-server:
|
||||
image: livekit/livekit-server
|
||||
container_name: livekit_server
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "7880:7880"
|
||||
- "7881:7881"
|
||||
- "7882:7882/udp"
|
||||
volumes:
|
||||
- "./livekit.yaml:/livekit.yaml"
|
||||
command:
|
||||
- "--config"
|
||||
- "/livekit.yaml"
|
||||
- "--node-ip=127.0.0.1"
|
||||
|
||||
volumes:
|
||||
redis_data:
|
||||
driver: local
|
||||
Reference in New Issue
Block a user