To get an instance up and running follow these steps. Recommended deployment method is via docker compose.
-
Create a docker-compose.yml file with the following template
version: '3.9' services: echo: container_name: echo image: ghcr.io/will-scargill/echo:latest environment: ECHO_LIVE: "true" ECHO_DB_TYPE: mysql ECHO_MYSQL_HOST: server-host ECHO_MYSQL_USER: username ECHO_MYSQL_PASS: password ECHO_MYSQL_DB: database_name ports: - 16000:16000 volumes: - ./configs:/usr/src/app/configs - ./data:/usr/src/app/data
ECHO_DB_TYPE can be:
- mysql
- sqlite
If using sqlite, other MYSQL environment variables are not needed
-
Run the compose file
docker-compose up
-
Verify connectivity using the Echo Client
-
Use the letmein command to give yourself administrator permissions
/letmein [key]
The key can be found in the data folder - data/key.txt
Most settings are self-explanatory. Do not change serverVersion and CompatibleClientVers. This will break your server.
clientnum - the maximum number of clients that can connect at once
strictBanning - bans use IP as well as Echo IDs
useBlacklist - Enables/disables the word blacklist
kickOnUse - Kicks a user when they attempt to use a word on the blacklist
A very simple blacklist for words. One word per line. If any word in a user's message is in the file the message will not be sent to other clients.
Do not change this file. More functionality to be added later.
New roles can be added in the following format
"role_name": ["heirarchy_value", "command flag 1", "command flag 2"]
The heirarchy value determines which roles can target other roles. A lower heirarchy value cannot target a higher one. The command flags and their corresponding commands can be found in roles.json.
The command flag * is special. It grants a role permission to use any commands the server has installed.
This flag is only given to the "admin" role by default. Be careful when giving it to other roles!
TBA
The RSA keys used by the server can be regenerated by running this script. Alternatively, you can delete the key files from the data folder and the server will regenerate them automatically.
Distributed under the GPL-3.0 License.
Twitter - @willscargill
Project Link: https://github.com/will-scargill/echo-server