Skip to content
Snippets Groups Projects
Select Git revision
  • 7e899ebcdf62b18756bf8c0c939c8ea7e4ee89b7
  • develop default protected
  • ical-export
  • feature/audit_log
  • fix/index
  • badge-redeem-404
  • 720-schedule_source
  • room-docu
  • chore/event-views
  • 511-schedule-foo-fixed
  • 607-schedule-versions
  • deploy/curl-verbose
  • fix/public-badge-access-rights
  • 445-schedule-redirects
  • 623-wiki-im-baustellenmodus-sollte-mal-als-wiki-admin-trotzdem-seiten-anlegen-bearbeiten-konnen
  • fix/registration_mail_subject
  • feature/conference-query-set
  • feature/568-habitatmanagement
  • feat/unit-integration-tests
  • camp23-prod
  • production
  • prod-2024-12-27_20-15
  • prod-2024-12-27_16-37
  • prod-2024-12-27_16-01
  • prod-2024-12-27_13-29
  • prod-2024-12-27_00-34
  • prod-2024-12-26_21-45
  • prod-2024-12-26_13-12
  • prod-2024-12-26_00-21
  • prod-2024-12-25_21-04
  • prod-2024-12-25_15-54
  • prod-2024-12-25_01-29
  • prod-2024-12-24_14-48
  • prod-2024-12-23_23-39
  • prod-2024-12-22_21-12
  • prod-2024-12-22_17-25
  • prod-2024-12-22_01-34
  • prod-2024-12-22_00-55
  • prod-2024-12-21_13-42
  • prod-2024-12-21_10-44
  • prod-2024-12-20_12-25
41 results

deployment

Forked from hub / hub
722 commits behind the upstream repository.
Lucas Brandstaetter's avatar
Roang authored
Simplyfied the database connection setup by removing the schema setup and
using the postgres user created by the postgres image.
37de964f
History

Deployment

Überblick

Hub als auch PlainUI werden als Docker Container ausgerollt welcher vom GitLab CI erstellt wird. Die Datenbank läuft separat und ist aktuell auf postgres mit der PostGIS Erweiterung eingeschränkt.

Die Konfiguration des Docker-Containers kann über Umgebungsvariablen gesteuert werden. Alternativ kann aich wie gehabt die Konfiguration mit einer local_settings.py Datein in /data/ gesteuert weden.

Egal welche der Methden gewählt wir, muss zumindest angegeben werden welche Funktionen auszurollen sind und wie die Datenbank zu erreichen ist. Für die Umgebungsvariablen Konfiguration kann die docker-compose.yml als Beispiel zu rate gezogen werden. Beispiel einer local_settings.py:

IS_API = False
IS_BACKOFFICE = False
IS_FRONTEND = True

ALLOWED_HOSTS = ['fully.qualified.domain.name']

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'HOST': '172.17.0.1',
        'NAME': 'shinydb',
        'USER': 'karlklammer',
        'PASSWORD': 'shibboleth',
    }
}

Tipps & Tricks

Backup

Allgemein: für ein normales Backup sollte einfach die Datenbank über Bordmittel gesichert werden (pg_dump).

Django hat auch eine Funktion für den Export von Daten eingebaut, diese Variante ist allerdings nicht für den Produktiven Einsatz empfohlen. Das Problem liegt hier in der Struktur der Daten bei der Wiederherstellung. Diese ist mit dumpdata/loadata nicht garaniert. Grundsätzlich funktioniert es wie folgt:

  1. Docker Container mit "debug" Kommando starten
  2. ./manage.py dumpdata mit natural keys und ohne Django-Interna laufen lassen
root@host:~# /usr/bin/docker run --rm -it -v /etc/hub/hub:/data registry.git.cccv.de/hub/hub:develop debug
Operations to perform:
  Apply all migrations: admin, api, auth, contenttypes, core, sessions
Running migrations:
  No migrations to apply.
root@048a781aaec1:~# ./manage.py dumpdata --natural-primary --natural-foreign -e admin -e auth.permission -e contenttypes.contenttype -e sessions.session -o /data/bak.json
[...........................................................................]
root@048a781aaec1:~# exit
root@host:~#

Die Datei kann dann lokal wieder per ./manage.py loaddata bak.json eingespielt werden.