diff --git a/.env.example b/.env.example
index 70e5cca..fa0be7c 100644
--- a/.env.example
+++ b/.env.example
@@ -4,3 +4,8 @@ ADMIN_PASSWORD=admin
 REPORT_SECRET=
 PUBLIC_START_DATE=2023-12-26T00:00:00+0200
 PUBLIC_BASE_PATH=
+
+PUBLIC_SERVER_IP=example.com
+PUBLIC_TS_LINK=ts3server://example.com
+PUBLIC_DISCORD_LINK=https://example.com
+PUBLIC_PAYPAL_LINK=https://example.com
diff --git a/src/routes/admin/settings/+page.server.ts b/src/routes/admin/settings/+page.server.ts
index 5f731cf..1c6253a 100644
--- a/src/routes/admin/settings/+page.server.ts
+++ b/src/routes/admin/settings/+page.server.ts
@@ -22,9 +22,7 @@ export const load: PageServerLoad = async ({ parent, cookies }) => {
 
 	return {
 		settings: {
-			global: {
-				paypal_link: settings['global.paypal_link'] ?? ''
-			},
+			global: {},
 			register: {
 				enabled: settings['register.enabled'] ?? true,
 				disabled_title: settings['register.disabled_title'] ?? 'Anmeldung geschlossen',
diff --git a/src/routes/admin/settings/+page.svelte b/src/routes/admin/settings/+page.svelte
index d8c9de9..2d16c52 100644
--- a/src/routes/admin/settings/+page.svelte
+++ b/src/routes/admin/settings/+page.svelte
@@ -8,9 +8,7 @@
 		await fetch(`${env.PUBLIC_BASE_PATH}/admin/settings`, {
 			method: 'POST',
 			body: JSON.stringify({
-				global: {
-					paypal_link: returnIfNoDup(settings.global.paypal_link, data.settings.global.paypal_link)
-				},
+				global: {},
 				register: {
 					enabled: returnIfNoDup(settings.register.enabled, data.settings.register.enabled),
 					disabled_title: returnIfNoDup(
@@ -35,13 +33,13 @@
 
 <div class="h-full flex flex-col items-center justify-between">
 	<div class="grid grid-cols-3 w-full [&>*]:mx-8">
-		<div>
+		<!--div>
 			<div class="divider">Global</div>
 			<label class="label">
 				<span class="label-text">PayPal-Spendenlink</span>
 				<input type="text" class="input input-bordered" bind:value={settings.global.paypal_link} />
 			</label>
-		</div>
+		</div-->
 		<div>
 			<div class="divider">Anmeldung</div>
 			<label class="label cursor-pointer">
diff --git a/src/routes/faq/+page.server.ts b/src/routes/faq/+page.server.ts
deleted file mode 100644
index db0a81b..0000000
--- a/src/routes/faq/+page.server.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import type { PageServerLoad } from './$types';
-import { Settings } from '$lib/server/database';
-
-export const load: PageServerLoad = async () => {
-	return {
-		paypal_link: (await Settings.findOne({ where: { key: 'global.paypal_link' } }))?.value ?? ''
-	};
-};
diff --git a/src/routes/faq/+page.svelte b/src/routes/faq/+page.svelte
index f4f38d1..bdde7b9 100644
--- a/src/routes/faq/+page.svelte
+++ b/src/routes/faq/+page.svelte
@@ -1,5 +1,6 @@
 <script lang="ts">
 	import type { PageData } from './$types';
+	import { env } from '$env/dynamic/public';
 
 	export let data: PageData;
 
@@ -9,7 +10,7 @@
 			questions: [
 				{
 					title: 'Wie kann ich einen Admin kontaktieren?',
-					content: `<p>Einen Admin kannst du im Chat, über WhatsApp, per Teamspeak (<a class="link" href="ts3server://mhsl.eu?port=9987">mhsl.eu</a>) oder Discord (<a class="link" href="https://discord.gg/EBGefWPc2K" target="_blank">https://discord.gg/EBGefWPc2K</a>) kontaktieren.</p>`
+					content: `<p>Einen Admin kannst du im Chat, über WhatsApp, per Teamspeak (<a class="link" href="${env.PUBLIC_TS_LINK}">mhsl.eu</a>) oder Discord (<a class="link" href="https://discord.gg/EBGefWPc2K" target="_blank">https://discord.gg/EBGefWPc2K</a>) kontaktieren.</p>`
 				},
 				{
 					title: 'Wer ist eigentlich Organisator und warum?',
@@ -28,11 +29,11 @@ des Projekts.</p>`
 				},
 				{
 					title: 'Gibt es einen Teamspeak-Server?',
-					content: `<p>Ja, den offiziellen Teamspeak-Server erreichst du unter der IP <a class="link" href="ts3server://mhsl.eu?port=9987">mhsl.eu</a>.</p>`
+					content: `<p>Ja, den offiziellen Teamspeak-Server erreichst du unter der IP <a class="link" href="${env.PUBLIC_TS_LINK}">mhsl.eu</a>.</p>`
 				},
 				{
 					title: 'Gibt es einen Discord-Server?',
-					content: `<p>Ja, den offiziellen Discord-Server erreichst du unter <a class="link" href="https://discord.gg/EBGefWPc2K" target="_blank">https://discord.gg/EBGefWPc2K</a>.</p>`
+					content: `<p>Ja, den offiziellen Discord-Server erreichst du unter <a class="link" href="${env.PUBLIC_DISCORD_LINK}" target="_blank">${env.PUBLIC_DISCORD_LINK}</a>.</p>`
 				},
 				{
 					title: 'Wozu dient die CraftAttack-WhatsApp-Gruppe?',
@@ -82,7 +83,7 @@ dich jederzeit beim Admin-Team melden.</p>`
 					title: 'Ich komme nicht auf den Server, was kann ich tun?',
 					content: `<p>Wenn du dem Server nicht beitreten kannst, überprüfe Folgendes:</p>
 <ol class="list-decimal pl-8 py-3">
-<li>Hast du die korrekte IP verwendet? Sie lautet <span class="underline italic">craftattack.mhsl.eu</span>.</li>
+<li>Hast du die korrekte IP verwendet? Sie lautet <span class="underline italic">${env.PUBLIC_SERVER_IP}</span>.</li>
 <li>Hast du Leerzeichen verwendet, insbesondere vor oder hinter der IP, oder dich vertippt?</li>
 <li>Kommst du auf andere Server, oder ist es nur ein Problem beim CraftAttack-Server?</li>
 <li>Hast du dich korrekt auf der Webseite angemeldet?</li>
@@ -92,14 +93,14 @@ Fehlermeldung bereit.</p>`
 				},
 				{
 					title: 'Was ist die Server-IP?',
-					content: `<p>Die Serveradresse lautet: <span class="underline italic">craftattack.mhsl.eu</span>.</p>`
+					content: `<p>Die Serveradresse lautet: <span class="underline italic">${env.PUBLIC_SERVER_IP}</span>.</p>`
 				},
 				{
 					title: 'Ist es kostenlos mitzuspielen?',
 					content: `<p>Ja, die Teilnahme ist selbstverständlich kostenlos.${
-						data.paypal_link
+						env.PUBLIC_PAYPAL_LINK
 							? `Wir freuen uns aber, wenn du das Projekt mit einer Spende nach der Anmeldung unterstützen würdest.<br>
-Hier kannst du für das Projekt spenden: <a class="link" href=${data.paypal_link} target="_blank">${data.paypal_link}</a>.`
+Hier kannst du für das Projekt spenden: <a class="link" href=${data.paypal_link} target="_blank">${env.PUBLIC_PAYPAL_LINK}</a>.`
 							: ''
 					}</p>`
 				},
diff --git a/src/routes/register/RegistrationComplete.svelte b/src/routes/register/RegistrationComplete.svelte
index a378cb1..a478e9f 100644
--- a/src/routes/register/RegistrationComplete.svelte
+++ b/src/routes/register/RegistrationComplete.svelte
@@ -59,6 +59,13 @@
 	>.
 </p>
 <p>Alle weiteren Informationen werden in der Whatsapp-Gruppe bekannt gegeben.</p>
+<p class="mt-1">Weiterführende Links:</p>
+<ul class="list-disc pl-8">
+	<li><a class="link" href="{env.PUBLIC_BASE_PATH}/faq" target="_blank">FAQ</a></li>
+	<li><a class="link" href={env.PUBLIC_TS_LINK} target="_blank">TeamSpeak</a></li>
+	<li><a class="link" href={env.PUBLIC_DISCORD_LINK} target="_blank">Discord</a></li>
+	<li><a class="link" href={env.PUBLIC_PAYPAL_LINK} target="_blank">PayPal Spendenlink</a></li>
+</ul>
 <div class="divider" />
 <div class="flex justify-around mt-2 mb-4">
 	<div class="grid grid-cols-1 sm:grid-cols-2 w-full sm:w-fit gap-x-4 gap-y-2">
diff --git a/src/routes/reports/+page.server.ts b/src/routes/reports/+page.server.ts
new file mode 100644
index 0000000..0d5a440
--- /dev/null
+++ b/src/routes/reports/+page.server.ts
@@ -0,0 +1,15 @@
+import type { PageServerLoad } from './$types';
+import { Report, Settings } from '$lib/server/database';
+
+export const load: PageServerLoad = async () => {
+	return {
+		created: Report.findAll({ where: {} }),
+
+		enabled: (await Settings.findOne({ where: { key: 'register.enabled' } }))?.value ?? true,
+		disabled_title:
+			(await Settings.findOne({ where: { key: 'register.disabled_title' } }))?.value ??
+			'Anmeldung geschlossen',
+		disabled_details:
+			(await Settings.findOne({ where: { key: 'register.disabled_details' } }))?.value ?? ''
+	};
+};
diff --git a/src/routes/reports/+page.svelte b/src/routes/reports/+page.svelte
new file mode 100644
index 0000000..e69de29