This repository has been archived on 2026-03-19. You can view files and clone it, but cannot push or open issues or pull requests.
Files
galvanic-corrosion/src/config/GalvanicConfiguration.ts
zombieb 746c2203e5
All checks were successful
Galvanic Corrosion Cross-Compile / build (push) Successful in 57s
uhh
The Rewrite™️

- Discord bot removed, will return *eventually*
- Watchdog kills the server with a knife when it does not shut down in (default) 60 seconds
- New event system that works.. better.. and callbacks have types
- Removed a metric ton of circular dependencies that previously would not let the server start up
    * This included splitting up some classes
- Other. internal stuff. I forgot.
2025-06-29 00:16:07 -04:00

73 lines
1.9 KiB
TypeScript

/* Galvanic Corrosion - Rec Room custom server for communities.
<https://gitea.proxnet.dev/zombieb/galvanic-corrosion>
Copyright (C) 2025 @zombieb (Discord / proxnet Gitea)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
import type { PhotonRegionCodeNumber, PhotonRegionCodeString } from "../data/live/PhotonTypes.ts";
type RedisConfiguration = {
host: string;
port: number;
username: string;
password: string;
db: number;
};
type WebConfiguration = {
port: number;
host: string;
publichost: string;
securepublichost: boolean;
};
type WebRootConfiguration = {
api: WebConfiguration;
socket: WebConfiguration;
};
type PublicConfiguration = {
serverName: string;
serverId: string;
owner: string;
motd: string;
levelScale: number;
maxLevels: number;
patches: string[];
photonRegionId: PhotonRegionCodeNumber | PhotonRegionCodeString;
initialRoom: string | null;
};
type LoggingConfiguration = {
notfound: boolean;
debug: boolean;
network: boolean;
};
type AuthConfiguration = {
secret: string;
/**
* In Hours
*/
timeout: number;
steamkey: string | null;
};
type GeneralConfiguration = {
/** In milliseconds */
watchdogTimeout: number;
}
export type GalvanicConfiguration = {
redis: RedisConfiguration;
web: WebRootConfiguration;
public: PublicConfiguration;
general: GeneralConfiguration;
logging: LoggingConfiguration;
auth: AuthConfiguration;
};