From 9df0f04b0f5468bcdac58f56de9c51a7cf0ebdce Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Thu, 1 Sep 2022 16:50:00 -0400
Subject: [PATCH] Update instructions to use meta's docker-compose

---
 README.rst | 88 ++++++++++++++++--------------------------------------
 1 file changed, 25 insertions(+), 63 deletions(-)

diff --git a/README.rst b/README.rst
index f10a5411..06b7c186 100644
--- a/README.rst
+++ b/README.rst
@@ -2,79 +2,43 @@
 AURA Steering: Program Scheduler
 ================================
 
-AURA Steering is the scheduling module, where the actual program schedule of the
-whole station is stored as well as all infos regarding single shows and
+AURA Steering is the scheduling module, where the actual program schedule of
+the whole station is stored as well as all infos regarding single shows and
 emissions.
 
-It also acts as an OpenID Connect provider for `dashboard` and `tank`.
+It also acts as an OpenID Connect provider for ``dashboard`` and ``tank``.
 
-Requirements
+Installation
 ------------
 
-- Docker Engine 20.10+
-- Docker Compose 2.2+
+Follow the instructions to deploy AURA Web from the `Docker Compose
+Installation`_.
 
-Quickstart
-----------
-
-First build the services::
-
-    $ docker compose build
-
-Then, you can setup the database::
-
-    $ docker compose run django ./manage.py migrate
-
-You can the load all the fixtures. This loads data for the authentication
-(users, groups and permissions) and for the program app (categories, funding
-categories, hosts, languages, music focus, recurrence rules, shows, topics and
-types).
+If you just want to try ``steering`` locally, use the provided compose setup
+and be sure to put put ``AURA_PROTO=http`` in the ``.env`` file.
 
-This provides enough data to get started::
+A better development setup for ``steering``, that pulls the docker images for
+``dashboard`` and ``tank`` from Docker Hub, builds the image for ``steering``
+locally and exposes the ports can be achieved with the
+``docker-compose.steering.yml`` by adding this lines to the end of the ``.env``
+file::
 
-    $ docker compose run django ./manage.py loaddata fixtures/*/*.json
-
-Alternatively, if you prefer, you can just create a super user after setting up
-the database::
-
-    $ docker compose run django python manage.py createsuperuser
-
-The only required fixtures are the recurrence rules, these are needed to create
-schedules::
-
-    $ docker compose run django ./manage.py loaddata fixtures/program/rrule.json
-
-.. warning:: Currently, if you only create a supert user and load the recurrence rules, you will need to create at least one show using the API in order to use the dashboard.
-
-Then, you can create a RSA Key and the clients for `dashboard` and `tank`::
-
-    $ docker compose run django ./manage.py creatersakey
-    $ docker compose run django ./manage.py create_oidc_client dashboard public -r "id_token token" -u http://localhost:8080/oidc_callback.html -u http://localhost:8080/oidc_callback_silentRenew.html -p http://localhost:8080/
-    $ docker compose run django ./manage.py create_oidc_client tank confidential -r "code" -u http://localhost:8040/auth/oidc/callback
-
-If you prefer to use the admin interface for this, refer to the [OpenID Client
-Configuration](https://gitlab.servus.at/aura/meta/-/blob/master/docs/administration/oidc-client-config.md#registering-oidc-clients-via-the-admin-interface).
-
-Finally, you can start the services::
-
-    $ docker compose up
-
-You can then login into the admin interface at http://localhost:8000/admin or
-use the API at http://localhost:8000/api/v1/
+    STEERING_VERSION=latest
+    COMPOSE_FILE=docker-compose.yml:docker-compose.steering.yml
 
 Testing
 -------
 
-If you want to run the test suite, you can run `pytest` in the container::
+If you want to run the test suite, you can run ``pytest`` in the container::
 
-    $ docker compose run django pytest
+    $ docker compose run steering pytest
 
 venv
 ----
 
-.. warning::  This is not the recommended way: it uses SQLite instead of Postgres and you may run into other issues.
+.. warning::  This is not the recommended way: it uses SQLite instead of Postgres and will be deprecated soon
 
-If you really don't want to use Docker, you can install `steering` using a
+If you really don't want to use Docker, you can install ``steering`` using a
 virtual environment.
 
 Create and activate a virtual environment::
@@ -118,14 +82,12 @@ Finally, you can start the development server::
 Data Model
 ----------
 
-You can generate a visualization of the data model using the Django extensions.
-
-First, install GraphViz globally:
-
-    apt-get install graphviz
-
-Then, run following to generate an image out of the models:
+A visualization of the data model can be generated using the `Graph Models
+Django Extensions`_
 
-    (venv) $ ./manage.py graph_models --pydot -g -o steering_data_model.png program profile
+The following command will generate an image out of the models::
 
+    (venv) $ docker compose steering run ./manage.py graph_models --pydot -g -o steering_data_model.png program profile
 
+.. _Docker Compose Installation: https://docs.aura.radio/en/latest/administration/install-docker-compose.html
+.. _Graph Models Django Extensions: https://django-extensions.readthedocs.io/en/latest/graph_models.html
-- 
GitLab