This repository contains the source code which runs the RPG Sites Phase Six and Realms of Tirakan. This is a Django project.
The code is licensed under the GNU GPLv3 as stated in the LICENSE.txt file. However, the text content of both phasesix.org and tirakans-reiche.de (game elements, rules etc.) is licensed under the CC-BY-NC-SA 4.0.
This source code comes with a minimal example set of demo data, which can be inserted into a database to get started.
To run the project in a docker compose environment, all you need is an installed Docker engine or Docker Desktop, and the docker-compose package.
$ docker-compose up
$ docker-compose exec web .venv/bin/python manage.py migrate
$ docker-compose exec web .venv/bin/python manage.py loaddata demo_data.json
$ docker-compose exec web .venv/bin/python manage.py createsuperuserYou can access the admin interface at http://localhost:8000/admin after that.
Alternatively, you can install the needed setup locally on your machine without docker.
You need a Linux (WSL2 works too), macOS (untested) or Windows (untested) machine to run this project. There are some prerequisites used by this django project.
Phase Six relies on a local redis server. The installation depends on your system. For linux, use your package manager (i.e. apt install redis-server). On macOS, use Homebrew to brew install redis.
The supported python versions are 3.10-3.13. A system-wide installed python interpreter is fine, but you want to create a virtualenv. PhaseSix uses uv for requirements. This can be done with:
$ cd phasesix
$ uv sync
$ . .venv/bin/activateThis project uses a .env file to set basic settings (like mail server and database). There is an example .env.example, which can be copied to the name .env in the project folder. Adjust the settings for your needs. The default settings should run fine for a local setup with sqlite3 database.
The database file db.sqlite3 will be created in the project folder. If you use a postgres database, you have to create the database and an owner before running migrations.
To create the database tables, run the django migrations:
(venv) $ python manage.py migrateThis will not create a superuser for the site, so you need to use the django management command to do this:
(venv) $ python manage.py createsuperuserAfter this, a simple setup without any data should be ready to run. Although phase six needs some prerequisites present in the database. A simple set of demo data containing some extensions, weapons, armour and skills can be inserted from a json file.
(venv) $ python manage.py loaddata demo_data.jsonTo run the local development server, just run the following management command:
(venv) $ python manage.py runserverA single threaded server will be available at http://localhost:8000. Note that this server is not suitable for production deployment. There are many ways to deploy a django project.