mirror of https://gitlab.com/litecord/litecord.git
|
|
||
|---|---|---|
| litecord | ||
| manage | ||
| tests | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| LICENSE | ||
| Pipfile | ||
| Pipfile.lock | ||
| README.md | ||
| __init__.py | ||
| config.ci.py | ||
| config.example.py | ||
| manage.py | ||
| nginx.conf | ||
| requirements.txt | ||
| run.py | ||
| schema.sql | ||
| setup.py | ||
| tox.ini | ||
README.md
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
# make sure you have tox installed
$ pip install tox
# run basic linter and tests
$ tox