Skip to content

will-scargill/Echo-Server

Repository files navigation

Logo Logo Logo

Logo
Echo Client | Echo Server

Getting started

To get an instance up and running follow these steps. Recommended deployment method is via docker compose.

Prerequisites

Installation

  1. 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

  2. Run the compose file

    docker-compose up
  3. Verify connectivity using the Echo Client

  4. Use the letmein command to give yourself administrator permissions

    /letmein [key]
    

    The key can be found in the data folder - data/key.txt

Configuration

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!

Upgrading

TBA

Misc

regenerateRsaKeys.py

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.

License

Distributed under the GPL-3.0 License.

Contact

Twitter - @willscargill

Project Link: https://github.com/will-scargill/echo-server

About

The Python server for Echo

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •  

Languages