.. _geoffrey_setup: .. |br| raw:: html
*************** Geoffrey Setup *************** Requirements ############# Versions shown have been tested to work * `Python 3.6.6`_ * `Django 2.1.2`_ * `Requests 2.20.0`_ * `simplejson 3.16.0`_ .. _Python 3.6.6: https://www.python.org/ .. _Django 2.1.2: https://pypi.org/project/Django/ .. _Requests 2.20.0: https://pypi.org/project/requests2/ .. _simplejson 3.16.0: https://pypi.org/project/simplejson/ Setup ##### .. Note:: Geoffrey is a Django application. To install Geoffrey, you need to have a Django site already setup instructions to do that can be found `here`_ .. _here: https://docs.djangoproject.com/en/2.1/intro/tutorial01/ Installing GeoffreyApp From Source ********************************** 1. Download Geoffrey by cloning it :: git clone https://git.etztech.xyz/ZeroHD/Geoffrey.git GeoffreyApp 2. Change directories into GeoffreyApp :: cd GeoffreyApp/ 3. Install Geoffrey as a module :: pip3 install -e . Integrate Geoffrey Into a Django Project ****************************************** 1. In ``settings.py`` add ``GeoffreyApp`` to ``INSTALLED_APPS`` :: INSTALLED_APPS = [ 'GeoffreyApp', ... 2. Once installed, run the migrations to setup the database for the first time :: python manage.py makemigrations python manage.py migrate 3. Then add the URLs to your projects's ``urls.py`` :: path('GeoffreyApp/', include('GeoffreyApp.urls')), Setup Settings ************** To setup your ``settings.py`` for Geoffrey, checkout :ref:`django_settings` Enable Username Updates *********************** Minecraft usernames in Geoffrey can be updated using the `update_mc_username` sub-command: :: python manage.py update_mc_username To handle username updates automatically, an external scheduling program should be used. Below is an example of how to do this with a Linux cron job: .. code-block:: bash #!/bin/bash PATH_TO_GEOFFREY_MANAGE=/home/geoffrey/django/manage.py PATH_TO_VENV=/home/geoffrey/venv source "$PATH_TO_VENV/bin/activate" python $PATH_TO_GEOFFREY_MANAGE update_mc_username deactivate The above script should be placed in the appropriate `/etc/cron.` directory.