collab-vm-server-1.3/config.example.toml

130 lines
4.9 KiB
TOML
Raw Permalink Normal View History

[HTTP]
# The host for the HTTP server to bind to.
# If you're reverse proxying behind nginx, this should probably be 127.0.0.1
# otherwise, 0.0.0.0 will open it to the internet.
Host = "0.0.0.0"
# Port for the HTTP server to listen on
Port = 6004
# Set to true if you will be proxying your VMs behing a reverse proxy, like NGINX.
# This is required for UserVMs.
ReverseProxy = false
# IPs allowed to reverse proxy your VMs. 99% of the time, this will just be 127.0.0.1
ProxyAllowedIPs = ["127.0.0.1"]
# Set to true to whitelist certain webapps from connecting to your VMs.
OriginCheck = false
# List of domains allowed to host webapps that connect to your VMs.
AllowedOrigins = ["https://computernewb.com", "http://localhost:3000"]
[Auth]
Enabled = false
AuthServerURI = "http://127.0.0.1:5858"
SecretKey = "hunter2"
[Auth.GuestPermissions]
Chat = true
Turns = false
Vote = false
[Turns]
# How long each turn is
TurnTime = 20
[Votes]
# How long a vote to reset lasts
VoteTime = 30
# The amount of time before another vote to reset can be started
VoteCooldown = 120
[Chat]
# Maximum length for chat messages. Messages above this length will be truncated
MaxMessageLength = 100
# The max amount of messages to store in the chat history and send to new clients, before old messages are deleted
ChatHistoryLength = 10
[Staff]
# Password hashes can be generated with the following command:
# echo -n '<password>' | sha256sum -
# SHA256 Hash of the Admin password. (Default: hunter2)
AdminPasswordHash = "f52fbd32b2b3b86ff88ef6c490628285f482af15ddcb29541f94bcf526a3f6c7"
# If the moderator role is enabled
ModeratorEnabled = true
# SHA256 Hash of the Mod password. (Default: hunter3)
ModPasswordHash = "fb8c2e2b85ca81eb4350199faddd983cb26af3064614e737ea9f479621cfa57a"
[Bans]
# If set to true, the server will store, track, and enforce bans in the mysql database.
# Requires mysql to be defined
UseInternalBlacklist = true
# If set, the server will run this command whenever a user is banned
# $IP - The IP of the banned user
# $NAME - Username of the banned user
# $REASON - Optional ban reason
#RunCommand = ""
[Limits]
# How long temporary mutes last
TempMuteTime = 30
# How many messages may be sent within the specified period of time before the user is temporarily muted
ChatLimit = { Enabled = true, Limit = 5, Cooldown = 5 }
# How many mouse and keyboard instructions may be sent within the specified period of time before the user is disconnected ("kit protection")
KitLimit = { Enabled = true, Limit = 700, Cooldown = 1 }
# Defines a MySQL server to connect to.
# This is only required if you are using the internal banlist, and may be commented otherwise
[MySQL]
Host = "127.0.0.1"
Username = "collabvm"
Password = "hunter2"
Database = "collabvm"
# Defines permissions moderators have. May be commented if moderators are not enabled
[ModPermissions]
# Restore the VM to snapshot
Restore = true
# Reboot the VM
Reboot = true
# Ban a user
Ban = true
# Forcibly end a vote-for-reset
ForceVote = true
# Mute a user
Mute = true
# Kick a user
Kick = true
# Manipulate the turn queue (toggle turns, end turns, steal turn, clear turn queue)
BypassTurn = true
# Rename a user
Rename = true
# Get a user's IP
GrabIP = true
# Send an XSS (not HTML sanitized) message
XSS = true
# Hide the screen from all non-staff
HideScreen = true
# The following section defines a VM. This section may be duplicated for any additional VMs.
[[VMs]]
# Node ID of the VM. Must be unique
ID = "examplevm"
# DIsplay name for the VM. Formatted with HTML
Name = "Test VM"
# Message of the day, sent when a user joins the VM
MOTD = "Welcome"
# Now you may configure a VM controller by uncommenting one of the below...
# For a VM that simply connects to a VNC server,
#VNC = {Host = "127.0.0.1", Port = 5901}
# A QEMU VM.
# QEMUCmd - QEMU start command. The pash to the QEMU executable MUST be specified in full.
# UseUnixSockets - Use UNIX domain sockets. Only available on Linux. Strongly recommended if available.
# QMPSocketDir - Path where the QMP socket is stored. Defaults to /tmp if not specified. 99% of the time you do not need to specify this
# QMPPort - If UseUnixSockets is disabled, a port for the QMP server to listen on. Required on windows
# VNCPort - Port to use for the VNC server. Must be at least 5900 and must be unique among other VMs.
# Snapshots - True if the VM state is temporary, and may be reset through a vote. If you set this to false on a public VM, prepare for it to get trashed quick.
QEMU = {QEMUCmd = "/bin/qemu-system-x86_64 -accel kvm -cpu host -smp cores=4 -m 4G", UseUnixSockets = true, VNCPort = 5900, Snapshots = true}
# True if the public can take turns, false to limit to staff and those with the turn password. This can be toggled at runtime with opcode 22
TurnsAllowed = true
# If defined, the hash for a password non-staff can use to take turns while they are disabled. (Default: hunter4)
TurnPasswordHash = "18183dd9009f2b7e1b44f9c4af287589c2415bc6258f547815b246ffeb955122"