Ein IC-Hostinganbieter im Spiel. Er vergibt Domaenen, richtet je Domaene einen Zugang ein, und die Inhaber pflegen darauf ihre Webseite. Die gesamte Verwaltung haengt an einer Anmeldung, nicht an Job oder Serverrechten. Ein Zugang ist zugleich ein Postfach: wer sich anmeldet, bekommt das Postfach dieser Adresse. Mehrere Personen koennen denselben Zugang benutzen und dasselbe Postfach gleichzeitig offen haben - ein Firmenpostfach gehoert der Firma, nicht einer Person. Drei Ebenen: superadmin vergibt Domaenen und setzt je Domaene einen Admin ein admin pflegt die Seiten seiner Domaene und legt dort Zugaenge an editor pflegt nur die Seiten Seiteninhalte sind kein HTML, sondern typisierte Bloecke. Die Seiten werden im NUI des IC-Computers angezeigt, also im selben Kontext wie dieser selbst - wer dort Markup einschleusen kann, kann auch dessen Callbacks aufrufen. Ein Blockmodell schliesst das konstruktiv aus, statt es filtern zu muessen. Passwoerter liegen gesalzen und gehasht in der Datenbank, gerechnet wird in der Datenbank. Fuenf Fehlversuche je Benutzername sperren den Namen kurzzeitig. Enthaelt README.md mit Einrichtung und Anbindung an den IC-Computer sowie ANLEITUNG.md fuer die Bedienung im Spiel.
127 lines
6.1 KiB
Lua
127 lines
6.1 KiB
Lua
-- ─────────────────────────────────────────────────────────────────────────────
|
||
-- ic-web – Konfiguration
|
||
--
|
||
-- IC-Webhosting: der Anbieter vergibt Domaenen, jede Domaene hat eigene
|
||
-- Zugaenge, und jeder Zugang ist zugleich ein Postfach. Die Webseiten sind im
|
||
-- pc-live-Browser unter ic://domaene erreichbar.
|
||
--
|
||
-- Die Domaene selbst wird in ic-mail angelegt (ic_mail_realms). Eine Webseite
|
||
-- ist ein zweiter Dienst darauf, keine eigene Domaenenliste.
|
||
-- ─────────────────────────────────────────────────────────────────────────────
|
||
|
||
Config = {}
|
||
|
||
Config.Debug = false
|
||
|
||
-- ── Der Anbieter ─────────────────────────────────────────────────────────────
|
||
-- Der erste Zugang wird beim ersten Start angelegt. Ohne ihn kaeme niemand in
|
||
-- die Verwaltung hinein.
|
||
--
|
||
-- Das Startpasswort steht hier im Klartext: es ist genau einmal noetig und
|
||
-- sollte nach der ersten Anmeldung geaendert werden (in der Verwaltung oder in
|
||
-- der Serverkonsole mit /webpasswd).
|
||
Config.MainAdmin = {
|
||
username = 'admin@liveinvader.ls',
|
||
providerName = 'Liveinvader Hosting',
|
||
initialPassword = 'liveinvader',
|
||
}
|
||
|
||
-- ── Anmeldung ────────────────────────────────────────────────────────────────
|
||
Config.Login = {
|
||
minPasswordLength = 6,
|
||
-- Bremse gegen Durchprobieren: so viele Fehlversuche je Benutzername
|
||
-- innerhalb des Zeitfensters, danach ist der Name kurz gesperrt.
|
||
maxAttempts = 5,
|
||
windowSeconds = 300,
|
||
-- Anmeldung laeuft nach dieser Zeit ohne Aktivitaet ab. 0 = nie.
|
||
idleSeconds = 3600,
|
||
}
|
||
|
||
-- Zugaenge je Domaene (Admins und Editoren zusammen).
|
||
Config.MaxAccountsPerDomain = 15
|
||
|
||
-- Wie viele fremde Postfaecher jemand im Mailclient gleichzeitig offen haben
|
||
-- darf ("Postfach hinzufuegen"). Das eigene und dienstlich zugewiesene zaehlen
|
||
-- nicht mit.
|
||
Config.MaxOpenMailboxes = 10
|
||
|
||
-- ── Wer darf Domaenen anlegen ────────────────────────────────────────────────
|
||
-- Im Normalfall nur der Anbieter (superadmin) ueber die Verwaltung.
|
||
--
|
||
-- Die Selbstanmeldung ueber den ESX-Job ist der aeltere Weg und bleibt als
|
||
-- Schalter erhalten. Eingeschaltet duerfen Behoerden und Unternehmen sich ohne
|
||
-- Anmeldung selbst eine Domaene holen; der Zugang dazu wird dabei automatisch
|
||
-- erzeugt und einmalig angezeigt.
|
||
Config.SelfRegistration = {
|
||
enabled = false,
|
||
allowedJobs = {}, -- leer = alle ausser blockedJobs
|
||
minGrade = 3,
|
||
blockedJobs = { unemployed = true },
|
||
maxDomainsPerJob = 2,
|
||
}
|
||
|
||
-- Rueckwaertsname: der uebrige Code liest weiterhin Config.Registration.
|
||
Config.Registration = Config.SelfRegistration
|
||
|
||
-- ── Domaenennamen ────────────────────────────────────────────────────────────
|
||
Config.Domain = {
|
||
-- Erlaubte Endungen. Ohne Begrenzung entstehen schnell .com-Domaenen,
|
||
-- die in eine GTA-Welt nicht passen.
|
||
allowedTlds = { 'ls', 'sa', 'gov', 'org', 'net' },
|
||
minLength = 3,
|
||
maxLength = 30,
|
||
-- Namen, die sich niemand per Selbstanmeldung greifen darf. Der Anbieter
|
||
-- vergibt sie sehr wohl – lspd.ls soll ja beim LSPD landen.
|
||
--
|
||
-- Domaenen des Mailsystems (mail.ls und andere System-/Buergerdomaenen)
|
||
-- sind unabhaengig davon gesperrt, das prueft D.EnsureRealm fuer alle.
|
||
reserved = {
|
||
'mail', 'www', 'admin', 'police', 'lspd', 'lsmd', 'ambulance',
|
||
'gov', 'government', 'doj', 'system', 'ic', 'pc',
|
||
},
|
||
}
|
||
|
||
-- ── Inhalte ──────────────────────────────────────────────────────────────────
|
||
Config.MaxPagesPerSite = 8
|
||
Config.MaxBlocksPerPage = 60
|
||
|
||
-- Erlaubte Bildhosts.
|
||
--
|
||
-- Bilder werden extern verlinkt – FiveM-NUI kann keine Dateien hochladen.
|
||
-- Ohne diese Liste laesst sich jede beliebige Adresse einbetten. Die
|
||
-- Meldefunktion faengt den Rest, greift aber erst nachtraeglich.
|
||
--
|
||
-- Subdomains sind eingeschlossen: 'imgur.com' erlaubt auch 'i.imgur.com'.
|
||
Config.ImageHosts = {
|
||
'imgur.com',
|
||
'discordapp.net',
|
||
'discordapp.com',
|
||
'discord.com',
|
||
'githubusercontent.com',
|
||
}
|
||
|
||
-- ── Themes ───────────────────────────────────────────────────────────────────
|
||
-- Reine CSS-Vorlagen im Browser von pc-live. Der Name wird nur durchgereicht.
|
||
Config.Themes = { 'clean', 'dark', 'gov', 'business' }
|
||
Config.DefaultTheme = 'clean'
|
||
|
||
-- ── Serverseitige Notbremse ──────────────────────────────────────────────────
|
||
-- Kein IC-Weg, sondern der Zugriff des Serverbetreibers: Konsolenbefehle zum
|
||
-- Zuruecksetzen eines Passworts und zum Sperren einer Seite, falls im Spiel
|
||
-- niemand mehr an die Verwaltung kommt.
|
||
Config.Console = {
|
||
-- 'esx' | 'ace' | 'either'
|
||
mode = 'either',
|
||
esxGroups = { admin = true, superadmin = true },
|
||
acePermission = 'ic_web.admin',
|
||
}
|
||
|
||
-- Alter Name, wird an einigen Stellen noch gelesen.
|
||
Config.Admin = Config.Console
|
||
|
||
-- ── Logging ──────────────────────────────────────────────────────────────────
|
||
-- Ausschliesslich ueber fmsdk, wie im Projekt ueblich.
|
||
Config.Logging = {
|
||
dataset = 'ic_web',
|
||
actionPrefix = 'ic_web.',
|
||
}
|