Handbuch
Kalenderfunktionen
  • Organisationsverwaltung
  • Instanzadministration
  • Einzeltermine
  • Serientermine
  • iCal-Dateien
  • Kalenderintegration
  • Werbemittelgenerator
  • Hosting
  • Repositories
  • Technologien
Handbuch
Kalenderfunktionen
  • Organisationsverwaltung
  • Instanzadministration
  • Einzeltermine
  • Serientermine
  • iCal-Dateien
  • Kalenderintegration
  • Werbemittelgenerator
  • Hosting
  • Repositories
  • Technologien
  • Hosting

« Zurück zur Handbuchübersicht

Hosting

Hinweise zur Instanzadministration

Der initiale Instanzadministrator, der bei der technischen Einrichtung des Systems angelegt wird, sollte nicht für die Erstellung von Organisationen oder Benutzerprofilen verwendet werden. Dieser Administrator dient ausschließlich der übergeordneten Instanzverwaltung (z. B. technische Konfiguration, Systempflege).

Es wird empfohlen, sich nach der Einrichtung mindestens einen weiteren Benutzeraccount anzulegen und diesen über den initialen Administrator im Bereich "Nutzer*innen verwalten" zum Instanzadministrator zu machen.

Alle über diesen Weg angelegten Instanzadministratoren können anschließend wie gewohnt Organisationen erstellen, freigeben, Instanzmitglieder verwalten, Instanzadministrationsrechte vergeben und weitere Aufgaben übernehmen.

Es können beliebig viele Administratoren mit Instanzrechten existieren. Diese Rechte sollten jedoch mit Bedacht vergeben werden.

Wichtige Informationen für die erste Installation: Registrierung freischalten

Bei der ersten Installation legen wir den oben genannten Benutzer für die Instanzadministration an. Bevor sich die ersten Nutzer*innen registrieren können, muss in der Mobilizon-Oberfläche zunächst die Registrierung freigeschaltet werden. Aus Sicherheitsgründen ist diese zunächst immer deaktiviert.

Freischaltung vornehmen: Im internen Bereich des Smarten Gemeinschaftskalenders finden Sie den Reiter „Instanz verwalten" (Seitenmenü). Hier werden Ihnen die Zugangsdaten für die Instanzadministration auf Mobilizon bereitgestellt. Über den Button „Zur Instanzverwaltung auf Mobilizon” gelangen Sie zur Mobilizon Oberfläche. Bitte loggen Sie sich mit den Zugangsdaten aus dem Bereich "Instanz verwalten" ein.

Navigieren Sie zum Bereich „Administration” und dann zu „Einstellungen der Instanz”. Wählen Sie nun „Erlaube Registrierungen” aus und speichern Sie Ihre Änderungen.

Server, Domain und Mailing

Um eine eigene Instanz des Smarten Gemeinschaftskalenders zu hosten, benötigen Sie einen Server. Je nachdem, wie viele Nutzende erwartet werden und wie viele Termine gespeichert werden sollen, muss dieser entsprechend groß sein. Für den Anfang reicht in der Regel etwas zwischen 2 vCPU/4 GB RAM und 4 vCPU/12 GB RAM.

Außerdem wird mindestens eine (Sub-)Domain benötigt, unter der die Instanz erreichbar ist sowie eine weitere Subdomain für die Mobilizon-Installation. Mobilizon wird von unseren Installationsmöglichkeiten direkt mitinstalliert. Um E-Mails zu verschicken, wird ein Mailpostfach mit SMTP-Zugangsdaten benötigt. Diese können in der Konfiguration hinterlegt werden. Einen Server oder V-Server kann zum Beispiel sehr nachhaltig bei Windcloud gemietet werden. Es gibt aber auch noch andere Anbieter wie z. B.: Hetzner oder Netcup

Ansible

Ansible ist eine Plattform zur IT-Automatisierung, die komplexe administrative Aufgaben vereinfacht und standardisiert. Damit können wiederkehrende Prozesse ("Infrastructure as Code") sehr gut zeitsparend abgebildet werden. Damit wird die Installation des Smarten Gemeinschaftskalenders zeitsparender und reproduzierbar. Daher empfehlen wir diese Art der Installation.

Um zu starten wird ein (V-)Server und ein Rechner mit installiertem Ansible benötigt. Die Informationen dazu finden Sie auf der Ansible-Webseite. Innerhalb des Repositories gibt es in dem Ordner "deployment" alle Dateien zu Ansible. Sie müssen sich auf dem Server per SSH verbinden können. Dort wird am besten die inventory/example.yml als Vorlage ausgewählt und umbenannt. In unserem Fall bspw. tavias.de.yml. Überall, wo in der Bedeutung "Anpassen:" steht, muss Ihre Konfiguration zwingend angepasst werden!

yml keyBeispielwertBedeutung
ansible_host192.168.1.1Anpassen: IP-Adresse des Zielservers für die Ansible-Bereitstellung
ansible_userrootAnpassen: Benutzername für die SSH-Verbindung zum Server
ansible_ssh_common_args"-o ForwardAgent=yes"Zusätzliche SSH-Argumente (hier: SSH-Agent-Weiterleitung)
domaintavias.deAnpassen: Hauptdomain der Anwendung
domain_mobilizonmobilizon.tavias.deAnpassen: Subdomain für die Mobilizon-Instanz
build_on_servertrueGibt an, ob der Build-Prozess auf dem Server stattfinden soll
certbot_emailadmin@example.deAnpassen: E-Mail-Adresse für Let's Encrypt SSL-Zertifikate
admin_mailadmin@example.deAnpassen: E-Mail-Adresse des Administrators
admin_passwordsuper_sicheres_passwort_adminAnpassen: Passwort für den Admin-Zugang
db_connectionpgsqlDatenbank-Typ (PostgreSQL)
db_hostpostgresHostname des Datenbankservers
db_port5432Port für die Datenbankverbindung
db_databaselaravelName der Datenbank
db_usernamelaravelBenutzername für die Datenbankverbindung
db_passwordsuper_sicheres_passwortAnpassen: Passwort für die Datenbankverbindung
mail_mailersmtpMail-Versandmethode
mail_hostsmtp.example.orgAnpassen: SMTP-Server für E-Mail-Versand
mail_port587Port für SMTP-Verbindung
mail_usernamemailbot@example.deAnpassen: Benutzername für SMTP-Authentifizierung
mail_passwordemailPasswortAnpassen: Passwort für SMTP-Authentifizierung
mail_encryptiontlsVerschlüsselungsmethode für E-Mail-Versand
mail_from_addressmailbot@example.deAnpassen: Absenderadresse für ausgehende E-Mails
app_name"Mein Kalender"Anpassen: Anzeigename der Anwendung
strict_mode"true" oder "false"Konfiguration ob die Instanz im Striktem Freigabemodus Modus läuft

Wenn das alles richtig konfiguriert wurde, muss nur noch ansible-playbook -i inventory/tavias.de.yml playbook.yml ausgeführt werden.

Wichtig: Beachten Sie unbedingt die Punkte zu Wichtige Informationen für die erste Installation.

overwriteConfig

Ergänzend zur instanceConfig.ts gibt es die overwriteConfig.ts

Dies ist eine Standarddatei, die ausgetauscht werden kann. Im Gegensatz zur instanceConfig.ts müssen hier nicht alle Werte gesetzt werden – es werden ausschließlich die Einstellungen angegeben, die für die jeweilige Instanz vom Standard abweichen sollen. Alle nicht aufgeführten Schlüssel behalten automatisch ihre Werte aus der instanceConfig.ts. Dadurch lässt sich eine Instanz gezielt anpassen, ohne die komplette Konfiguration zu duplizieren.

Verfügbare Felder

FeldUnterfeldTypBeschreibung
isStrictModeEnabled–booleanAktiviert den strikten Modus (überschreibt die Umgebungsvariable VITE_DSG_STRICT_MODE).
showPhysicalAddressRoutinggoogleMapsbooleanZeigt die Verlinkung zu Google Maps an.
appleMapsbooleanZeigt die Verlinkung zu Apple Maps an.
copyAdressButtonbooleanZeigt den Button zum Kopieren der Adresse an.
openGeoCoordinatesbooleanZeigt die Verlinkung zum Öffnen der Geo-Koordinaten an.
instanceInformationnamestringName der Instanz, z. B. „Der Smarte Gemeinschaftskalender“.
operatedBystringBetreiber der Instanz, z. B. „Amt Süderbrarup“.
allowedEventCreationsMethodssingleEventbooleanErlaubt das Erstellen einzelner Termine.
seriesEventbooleanErlaubt das Erstellen von Terminserien.
uploadedEventbooleanErlaubt das Hochladen von Terminen (z. B. via Datei).
importedEventbooleanErlaubt das Importieren von Terminen (z. B. via URL/Feed).
landingPageheadingstringÜberschrift der Startseite.
descriptionstringBeschreibungstext der Startseite (Plain Text).
descriptionHtmlstringBeschreibungstext der Startseite als HTML (überschreibt description, sofern gesetzt).
showNotificationbooleanZeigt die Benachrichtigungsbox auf der Startseite an.
showCategoriesbooleanZeigt die Kategorieübersicht auf der Startseite an.
numberOfUpcomingEventsnumberAnzahl der angezeigten kommenden Termine.
upcomingEventsMapTitlestringTitel über der Karte mit kommenden Terminen.
upcomingEventsMapBeforeDateFromNowInDaysnumber | nullZeitraum in Tagen, für den kommende Termine auf der Karte angezeigt werden (null = unbegrenzt).
showNotificationImageAltstringAlt-Text für das Bild in der Benachrichtigungsbox.
searchPagedescriptionstringBeschreibungstext der Suchseite (Plain Text).
descriptionHtmlstringBeschreibungstext der Suchseite als HTML.
searchDefaultssearchTermstringStandard-Suchbegriff.
searchRadiusnumberStandard-Suchradius in Kilometern.
locationAddressstringStandard-Adresse für die Suche, z. B. „24392 Süderbrarup, Schleswig-Holstein“.
locationGeoHashstringGeohash der Standard-Adresse (siehe Hinweis unten).
targetstringStandard-Suchziel (z. B. INTERNAL).
mainHeadershowCalendarLinkbooleanZeigt den Kalender-Link im Hauptmenü an.
externalLinkUrlstringURL des ersten externen Links im Header.
externalLinkTextstringAnzeigetext des ersten externen Links im Header.
externalLinkUrl2string | nullURL des zweiten externen Links im Header (null = ausgeblendet).
externalLinkText2string | nullAnzeigetext des zweiten externen Links im Header (null = ausgeblendet).
mainFooterdisclaimerTextstringDisclaimer-Text im Footer.
createEventDefaultscategorystringStandardkategorie beim Erstellen eines neuen Termins, z. B. NETWORKING.
showEventPageeventShareTitlestringTitel, der beim Teilen eines Termins verwendet wird.
materialGeneratorDefaultsunderlineColorstringStandardfarbe der Unterstreichung im Materialgenerator (Hex-Code, z. B. #800080).
defaultEventImageBasedOnCategory–booleanWenn aktiviert, wird für Termine ohne eigenes Bild das Standardbild der jeweiligen Kategorie angezeigt.
eventsMapinitialZoomLevelnumberStandard-Zoomstufe der Terminkarte.
defaultCenter.latnumberBreitengrad der Standard-Kartenzentrierung.
defaultCenter.lonnumberLängengrad der Standard-Kartenzentrierung.
seriesEventsHolidaysFilterenabledbooleanAktiviert den Filter für Deutsche Feiertage/Schulferien bei Terminserien.
statestringBundesland-Kürzel für den Feiertagsfilter, z. B. sh für Schleswig-Holstein.

Hinweis: Es sollten ausschließlich diejenigen Werte in die overwriteConfig.ts eingetragen werden, die tatsächlich vom Standard abweichen – alle übrigen Schlüssel können weggelassen werden und werden automatisch aus der instanceConfig.ts übernommen.

Hinweis: Der Geohash kann aus den Geo-Koordinaten erstellt werden – z. B. mit diesem Online-Tool.

Instance Config

Wichtig: seit der V1.4.0 sollte zum konfigurieren der Instanz nicht mehr die die instanceConfig.ts sondern die overwriteConfig.ts benutzt werden. Damit die einzelnen Instanzen an die eigene Organisation oder Kampagne angepasst werden können, gibt es die instanceConfig.ts

Default Dateien

Mit der overwriteConfig lässt sich nicht nur die Instanz personalisieren, sondern es lassen sich auch sehr viele Dateien austauschen. Im Repository gibt es daher das Projekt example-termine.di.day.yml und den Ordner deploy/roles/dsgdev/files/example-termine.di.day, in dem sich die Beispiele für die Anpassungen von termine.di.day befinden. Der Ordner muss dabei genauso heißen wie die YAML-Datei. Es werden nur die Anpassungen übernommen, die im Ordner hinterlegt sind. Für den Rest werden die Standarddateien verwendet.

Die genaue Liste der Anpassungsmöglichkeiten befinden sich in folgender Datei: deployment/roles/dsgdev/tasks/main.yml

Liste der möglichen Anpassungen:

  • Logo logo.png
  • Startseiten Bild notifications.png
  • Standardbild für Karten – sowohl für Veranstaltungen als auch Organisation default_card.png
  • Ordner mit diversen Dateien für Favicons z. B. erstellt mit realfavicongenerator.net favicons
  • Ordner mit Standardbildern für den Werbemittelgenerator material_generator
  • Neue Konfiguration für Kategorien und Oberkategorien und categoryOptions.ts
  • Die overwriteConfig (siehe oben) overwriteConfig.ts
  • Für Style Anpassungen app.scss
  • Für Anpassungen bezüglich hinterlegte Favicons oder Link Vorschau Informationen index.html
  • Es kann eine custom nginx-combined.conf hinterlegt werden.

(Strikter) Freigabemodus

Bei der Installation lässt sich der strikte Freigabemodus konfigurieren. Hierbei ist zu beachten, dass bei einer bestehenden Instanz alle bestehenden Termine, Organisationen, Serientermine und Terminimporte erhalten bleiben, wenn dieser Modus geändert wird. Eine Änderung wird nicht empfohlen. Wichtig: In der overwriteConfig.ts sollte unter allowedEventCreationsMethods nur singleEvent: true hinterlegt sein.