Metadata-Version: 2.4
Name: django-moo
Version: 0.44.2
Summary: A game server for hosting text-based online MOO-like games.
License: AGPL
License-File: LICENSE
Author: Phil Christensen
Author-email: phil@bubblehouse.org
Requires-Python: >=3.11,<3.12
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: asyncssh[bcrypt] (>=2.14.0,<3.0.0)
Requires-Dist: celery[redis] (>=5.4.0,<6.0.0)
Requires-Dist: django (>=5,<6)
Requires-Dist: django-ace (>=1.32.4,<2.0.0)
Requires-Dist: django-celery-beat (>=2.6.0,<3.0.0)
Requires-Dist: django-celery-results (>=2.5.1,<3.0.0)
Requires-Dist: django-simplesshkey (>=2.1.0,<3.0.0)
Requires-Dist: more-itertools (>=10.7.0,<11.0.0)
Requires-Dist: packaging (>=25.0,<26.0)
Requires-Dist: poetry-plugin-export (>=1.8.0,<2.0.0)
Requires-Dist: prompt-toolkit (>=3.0.39,<4.0.0)
Requires-Dist: psycopg2-binary (>=2.9.7,<3.0.0)
Requires-Dist: ptpython (>=3.0.23,<4.0.0)
Requires-Dist: redis (>=5.2.1,<6.0.0)
Requires-Dist: restrictedpython (>=7.0,<8.0)
Requires-Dist: rich (>=13.5.3,<14.0.0)
Requires-Dist: uwsgi (>=2.0.22,<3.0.0)
Requires-Dist: watchdog (>=4.0.0,<5.0.0)
Requires-Dist: webssh (>=1.6.2,<2.0.0)
Project-URL: Repository, https://gitlab.com/bubblehouse/django-moo
Description-Content-Type: text/markdown

# DjangoMOO
> "LambdaMOO on Django"

![release](https://gitlab.com/bubblehouse/django-moo/-/badges/release.svg)
![pipeline](https://gitlab.com/bubblehouse/django-moo/badges/main/pipeline.svg?ignore_skipped=true&job=test)
![coverage](https://gitlab.com/bubblehouse/django-moo/badges/main/coverage.svg?job=test)
![quality](https://bubblehouse.gitlab.io/django-moo/badges/lint.svg)
![docs](https://readthedocs.org/projects/django-moo/badge/?version=latest)

DjangoMOO is a game server for hosting text-based online MOO-like games.

## Quick Start
Checkout the project and use Docker Compose to run the necessary components:

    git clone https://gitlab.com/bubblehouse/django-moo
    cd django-moo
    docker compose up

Run `migrate`, `collectstatic`, and bootstrap the initial database with some sample objects and users:

    docker compose run webapp manage.py migrate
    docker compose run webapp manage.py collectstatic
    docker compose run webapp manage.py moo_init
    docker compose run webapp manage.py createsuperuser --username phil
    docker compose run webapp manage.py moo_enableuser --wizard phil Wizard

Now you should be able to connect to https://localhost/ and login with the superuser you just created, described below.

## Login via Web

To make things easier for folks without SSH access or who are behind firewalls, the server interface is exposed through [webssh](https://github.com/huashengdun/webssh).

![WebSSH Client Example](https://gitlab.com/bubblehouse/django-moo/-/raw/main/docs/images/webssh-client-example.png)

This client is only able to open connections to the local SSH server.

### Admin Interface

As a secondary way to view the contents of a running server, a Django Admin interface is available at `/admin`. It's really a last resort for most things, but it's still the best way to modify verb code in a running server:

![Django Admin Example](https://gitlab.com/bubblehouse/django-moo/-/raw/main/docs/images/django-admin-example.png)

## Login via SSH

Of course, it's also possible (perhaps even preferred) to connect directly over SSH:

![SSH Client Example](https://gitlab.com/bubblehouse/django-moo/-/raw/main/docs/images/ssh-client-example.png)

It's also possible to associate an SSH Key with your user in the Django Admin so as to skip the password prompt.

When you're done exploring, you can hit `Ctrl-D` to exit.

