Headless Server Software/Example Configurations: Difference between revisions

From Resonite Wiki
m ProbablePrime moved page Headless Client/Example Configurations to Headless Server Software/Example Configurations: Clarifying our terminology.
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
To help our users with [[Headless Client/Configuration File|Headless Client configuration]] here are some example configuration files. When using these keep in mind that basic familiarity with the structure of JSON is required to ensure that you do not create an invalid file.
To help our users with [[Headless Server Software/Configuration File|Headless Server configuration]] here are some example configuration files. When using these keep in mind that basic familiarity with the structure of [https://www.json.org/ JSON] is required to ensure that you do not create an invalid file.


== Minimal ==
== Minimal ==
Line 19: Line 19:


== Minimal with Login ==
== Minimal with Login ==
This is an exact copy of the Minimal config but includes a User Login. For user management make sure to checkout [[Headless Client/Recommendations#Users| our recommendations for users on Headless]]
This is an exact copy of the Minimal config but includes a User Login. For user management make sure to checkout [[Headless Server Software/Recommendations#Users| our recommendations for users on Headless]]


<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
Line 72: Line 72:
}
}
</syntaxhighlight>
</syntaxhighlight>
== Multiple Worlds/Sessions ==
Resonite's Headless Server Software can run multiple worlds, to do this just add more entries to the <code>startWorlds</code> array, for example:
<syntaxhighlight lang="json">
{
  "$schema": "https://raw.githubusercontent.com/Yellow-Dog-Man/JSONSchemas/main/schemas/HeadlessConfig.schema.json",
  "startWorlds": [
    {
      "isEnabled": true,
      "sessionName": "Testing ONE",
      "accessLevel": "Anyone",
      "loadWorldPresetName": "Grid"
    },
    {
      "isEnabled": true,
      "sessionName": "Testing TWO",
      "accessLevel": "Anyone",
      "loadWorldPresetName": "Grid"
    }
  ]
}
</syntaxhighlight>


== Default ==
== Default ==

Latest revision as of 05:52, 23 May 2024

To help our users with Headless Server configuration here are some example configuration files. When using these keep in mind that basic familiarity with the structure of JSON is required to ensure that you do not create an invalid file.

Minimal

The bare minimum required to run a single headless world. In this case it just runs a Grid world with a name of "Testing"

{
  "$schema": "https://raw.githubusercontent.com/Yellow-Dog-Man/JSONSchemas/main/schemas/HeadlessConfig.schema.json",
  "startWorlds": [
    {
      "isEnabled": true,
      "sessionName": "Testing",
      "accessLevel": "Anyone",
      "loadWorldPresetName": "Grid"
    }
  ]
}

Minimal with Login

This is an exact copy of the Minimal config but includes a User Login. For user management make sure to checkout our recommendations for users on Headless

{
  "$schema": "https://raw.githubusercontent.com/Yellow-Dog-Man/JSONSchemas/main/schemas/HeadlessConfig.schema.json",
  "loginCredential": "<username>",
  "loginPassword": "<password>",
  "startWorlds": [
    {
      "isEnabled": true,
      "sessionName": "Testing",
      "accessLevel": "Anyone",
      "loadWorldPresetName": "Grid"
    }
  ]
}

Minimal with Specified World

This is the same as the minimal setup but will load a specified world record url rather than a grid space.

{
  "$schema": "https://raw.githubusercontent.com/Yellow-Dog-Man/JSONSchemas/main/schemas/HeadlessConfig.schema.json",
  "startWorlds": [
    {
      "isEnabled": true,
      "sessionName": "Testing",
      "accessLevel": "Anyone",
      "loadWorldURL": "resrec:///U-ProbablePrime/R-49dd64cd-b2d6-40ac-be73-440abfa8bc48"
    }
  ]
}

Minimal with Builder/Admin Permissions

{
  "$schema": "https://raw.githubusercontent.com/Yellow-Dog-Man/JSONSchemas/main/schemas/HeadlessConfig.schema.json",
  "startWorlds": [
    {
      "isEnabled": true,
      "sessionName": "Testing",
      "accessLevel": "Anyone",
      "loadWorldPresetName": "Grid",
      "defaultUserRoles" : { 
        "ProbablePrime":"Admin",
        "Frooxius":"Builder"
      }
    }
  ]
}

Multiple Worlds/Sessions

Resonite's Headless Server Software can run multiple worlds, to do this just add more entries to the startWorlds array, for example:

{
  "$schema": "https://raw.githubusercontent.com/Yellow-Dog-Man/JSONSchemas/main/schemas/HeadlessConfig.schema.json",
  "startWorlds": [
    {
      "isEnabled": true,
      "sessionName": "Testing ONE",
      "accessLevel": "Anyone",
      "loadWorldPresetName": "Grid"
    },
    {
      "isEnabled": true,
      "sessionName": "Testing TWO",
      "accessLevel": "Anyone",
      "loadWorldPresetName": "Grid"
    }
  ]
}


Default

The default configuration file from the Resonite Installation.

{
  "$schema": "https://raw.githubusercontent.com/Yellow-Dog-Man/JSONSchemas/main/schemas/HeadlessConfig.schema.json",
  "comment": "DO NOT EDIT THIS FILE! Your changes will be lost. Copy it over and create a new file called Config.json",
  "universeId": null,
  "tickRate": 60.0,
  "maxConcurrentAssetTransfers": 4,
  "usernameOverride": null,
  "loginCredential": null,
  "loginPassword": null,
  "startWorlds": [
    {
      "isEnabled": true,
      "sessionName": null,
      "customSessionId": null,
      "description": null,
      "maxUsers": 16,
      "accessLevel": "Anyone",
      "useCustomJoinVerifier": false,
      "hideFromPublicListing": null,
      "tags": null,
      "mobileFriendly": false,
      "loadWorldURL": null,
      "loadWorldPresetName": "Grid",
      "overrideCorrespondingWorldId": null,
      "forcePort": null,
      "keepOriginalRoles": false,
      "defaultUserRoles": null,
      "roleCloudVariable": null,
      "allowUserCloudVariable": null,
      "denyUserCloudVariable": null,
      "requiredUserJoinCloudVariable": null,
      "requiredUserJoinCloudVariableDenyMessage": null,
      "awayKickMinutes": -1.0,
      "parentSessionIds": null,
      "autoInviteUsernames": null,
      "autoInviteMessage": null,
      "saveAsOwner": null,
      "autoRecover": true,
      "idleRestartInterval": -1.0,
      "forcedRestartInterval": -1.0,
      "saveOnExit": false,
      "autosaveInterval": -1.0,
      "autoSleep": true
    }
  ],
  "dataFolder": null,
  "cacheFolder": null,
  "logsFolder": null,
  "allowedUrlHosts": null,
  "autoSpawnItems": null
}