[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"] [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 '' | 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"