litecord/README.md

1.6 KiB

litecord

Litecord is an open source implementation of Discord's backend and API in Python.

This project is a rewrite of litecord-reference.

Notes

  • Unit testing isn't completly perfect.
  • No voice is planned to be developed, for now.
  • You must figure out connecting to the server yourself. Litecord will not distribute Discord's official client code nor provide ways to modify the client.

Install

Requirements:

  • Python 3.7 or higher
  • PostgreSQL
  • Pipenv
$ git clone https://gitlab.com/luna/litecord.git && cd litecord

# Setup the database:
# don't forget that you can create a specific
# postgres user just for the litecord database
$ createdb litecord
$ psql -f schema.sql litecord

# Configure litecord:
# edit config.py as you wish
$ cp config.example.py config.py

# run database migrations (this is a
# required step in setup)
$ pipenv run ./manage.py migrate

# Install all packages:
$ pipenv install --dev

Running

Hypercorn is used to run litecord. By default, it will bind to 0.0.0.0:5000. You can use the -b option to change it (e.g. -b 0.0.0.0:45000).

Use --access-log - to output access logs to stdout.

$ pipenv run hypercorn run:app

Updating

$ git pull
$ pipenv run ./manage.py migrate

Running tests

To run tests we must create users that we know the passwords of. Because of that, never setup a testing environment in production.

# setup the testing users
$ pipenv run ./manage.py setup_tests

# run tests
$ pipenv run tox