100 lines
3.7 KiB
Plaintext
100 lines
3.7 KiB
Plaintext
{
|
|
// In a production environment, be sure to change this value to a random secret for security.
|
|
// You can use `npm run generate-secret` to generate a suitable value.
|
|
// Note that changes to this value will kick all users from all games.
|
|
secret: "CHANGE ME",
|
|
// This will be overwritten by the environment variable MD_SECRET, if set.
|
|
|
|
// The port to serve on. Note this should always be behind a reverse proxy.
|
|
listenOn: 8081,
|
|
// It is also possible to listen on a unix socket.
|
|
// listenOn: "/tmp/sock",
|
|
// This will be overwritten by the environment variable MD_LISTEN_ON, if set.
|
|
|
|
// The path this is hosted behind - only relevant when behind a reverse proxy, this won't actually host on a different
|
|
// path. This should always have a trailing slash if it isn't empty, and never one at the start.
|
|
basePath: "",
|
|
// This will be overwritten by the environment variable MD_BASE_PATH, if set.
|
|
|
|
// Timeouts determine how long the server waits before taking certain actions.
|
|
// These values are all ISO 8601 durations.
|
|
timeouts: {
|
|
// How long to wait in between checking timeouts.
|
|
// Note that this will effectively determine the resolution of all other timeouts, so should be kept low.
|
|
// Increasing the value will decrease server load, however.
|
|
// Zero-durations will result in instant execution, regardless of frequency here.
|
|
timeoutCheckFrequency: "PT1S",
|
|
|
|
// How long to wait before marking a player as disconnected.
|
|
disconnectionGracePeriod: "PT5S",
|
|
|
|
// How long to wait after everyone has played to begin the revealing phase. Having this as a non-zero value lets
|
|
// the last person playing
|
|
finishedPlayingDelay: "PT2S",
|
|
|
|
// How long to wait after a winner for the round is decided to move to the next round.
|
|
// Note the client will let users look at the winner for longer than this, this just means users can't advance and
|
|
// the round timer won't start for this long after a winner is picked, as such zero is a perfectly valid setting
|
|
// here.
|
|
nextRoundDelay: "PT5S"
|
|
},
|
|
|
|
// How to store game data.
|
|
storage: {
|
|
// Example of a configuration using in-memory storage. Note this means server restart wipes all data.
|
|
type: "InMemory",
|
|
|
|
// type: "PostgreSQL",
|
|
// connection: {
|
|
// host: "localhost",
|
|
// port: 5432,
|
|
// user: "postgres",
|
|
// database: "postgres",
|
|
// password: "md",
|
|
// keepAlive: false
|
|
// },
|
|
|
|
//// Example of a configuration using a postgres database.
|
|
// type: "PostgreSQL",
|
|
// connection: {
|
|
// host: "postgres",
|
|
// port: 5432 ,
|
|
// user: "massivedecks",
|
|
// database: "massivedecks",
|
|
// password: "massivedecks",
|
|
// keepAlive: false,
|
|
// },
|
|
|
|
// How often to delete abandoned/finished games (an ISO 8601 duration).
|
|
garbageCollectionFrequency: "PT5M"
|
|
},
|
|
|
|
// How to cache game data.
|
|
cache: {
|
|
// Example of a configuration using in-memory storage.
|
|
type: "InMemory",
|
|
|
|
//// Example of a configuration using a postgres database.
|
|
// type: "PostgreSQL",
|
|
// connection: {
|
|
// host: "postgres",
|
|
// port: 5432 ,
|
|
// user: "massivedecks",
|
|
// database: "massivedecks",
|
|
// password: "massivedecks",
|
|
// keepAlive: false,
|
|
// },
|
|
|
|
// How old a cached value should be before we check to see if we should update it on a hit.
|
|
checkAfter: "PT5M"
|
|
},
|
|
|
|
// A file to touch when the server is started. If null, we won't touch any files.
|
|
touchOnStart: null,
|
|
// This will be overwritten by the environment variable MD_TOUCH_ON_START, if set.
|
|
|
|
// The version of Massive Decks.
|
|
version: "dev"
|
|
// This will be overwritten by the environment variable MD_VERSION, if set.
|
|
}
|