Hitobito kann wie die meisten Ruby on Rails Applikationen auf verschiedene Arten deployt werden. Folgende Umsysteme müssen vorgängig eingerichtet werden:
- Ruby >= 2.5
- Apache HTTPD
- Phusion Passenger
- MySql
- Memcached
- Sphinx (optional)
- Eine Catch-All E-Mail Adresse einer bestimmte Domain für die Mailinglisten (optional)
- SSL Zertifikat (optional)
- Sentry (optional)
Um hitobito mit den Umsystemen zu verbinden und zu konfigurieren, können folgende Umgebungsvariablen gesetzt werden. Werte ohne Default müssen in der Regel definiert werden.
Umgebungsvariable | Beschreibung | Default |
---|---|---|
RAILS_HOST_NAME | Öffentlicher Hostname der Applikation. Wird für Links in E-Mails verwendet. | - |
RAILS_HOST_SSL | Gibt an, ob die Applikation unter HTTPS läuft (true or false ) |
false |
RAILS_DB_NAME | Name der Datenbank | hitobito_[environment] |
RAILS_DB_USERNAME | Benutzername, um auf die Datenbank zu verbinden. | - |
RAILS_DB_PASSWORD | Passwort, um auf die Datenbank zu verbinden. | - |
RAILS_DB_HOST | Hostname der Datenbank | - |
RAILS_DB_PORT | Port der Datenbank | - |
RAILS_DB_ADAPTER | Datenbank adapter | mysql2 |
RAILS_MAIL_DELIVERY_METHOD | smtp oder sendmail . Siehe ActionMailer für Details. |
sendmail |
RAILS_MAIL_DELIVERY_CONFIG | Eine Komma-separierte key: value Liste mit allen erforderlichen E-Mail Sendeeinstellungen der gewählten Methode, z.B. address: smtp.local, port: 25 . Siehe ActionMailer für gültige Optionen. Wenn diese Variable leer ist, werden die Rails Defaultwerte verwendet. |
Rails defaults |
RAILS_MAIL_DOMAIN | Der Domainname für die Mailinglisten/Abos | RAILS_HOST_NAME |
RAILS_MAIL_RETRIEVER_TYPE | pop3 oder imap , alles was vom Mail Gem unterstützt wird. |
pop3 |
RAILS_MAIL_RETRIEVER_CONFIG | Eine Komma-separierte key: value Liste mit allen erforderlichen E-Mail Empfangseinstellungen des gewählten Typs, z.B. address: mailhost.local, port: 995, enable_ssl: true . Siehe Mail für gültige Optionen. Wenn diese Variable nicht gesetzt ist, funktionieren die Mailinglisten nicht. |
- |
RAILS_SPHINX_HOST | Hostname des Sphinx Servers | 127.0.0.1 |
RAILS_SPHINX_PORT | Eindeutiger Port des Sphinx Servers. Muss für jede laufende Instanz eindeutig sein. | 9312 |
MEMCACHE_SERVERS | Komme-getrennte Liste von Memcache Servern in der Form host:port |
localhost:11211 |
SENTRY_DNS | Configuration der Sentry Instanz, an welche Fehler gesendet werden sollen. Falls diese Variable nicht gesetzt ist, werden keine Fehlermeldungen verschickt. | - |
Einmal installiert, müssen zur Inbetriebnahme von hitobito noch folgende Schritte unternommen werden:
- Integration: Laden der Seed Daten.
- Produktion: Setzen des Passworts des Root Users über die Passwort vergessen Funktion.
- Erstellen eines Benutzers für den Kunden mit einer Haupt/Admin Rolle.
- Einrichten einer Noreply Liste in einer geeigneten Gruppe.
- Full Text Search liefert Resultate (Suchfeld oben rechts)
- Mails werden über Mailing Listen empfangen und weitergeschickt (z.B. via noreply Liste)
- Die Links in den gesendeten Emails sind https (z.B. Passwort vergessen)
- Errbit erhält Fehlermeldungen (Konsole:
rake airbrake:test
)
- Anpassen und Übersetzen der Texte (Admin > Texte).
- Erfassen von Etikettenformaten, Qualifikationen und Kurstypen.
- Erfassen von weiteren Gruppen.
- Erfassen von Personen und diesen ein Login Email schicken.
Die Emailadresse des Root User ist in RAILS_ROOT_USER_EMAIL
oder im settings.yml
des
entsprechenden Wagons definiert und wird automatisch über die Seed Daten in die Datenbank geladen.
Über die Passwort vergessen Funktion kann dafür ein Passwort gesetzt werden. Danach können weitere
Personen für den Kunden erstellt werden. Der Root User bleibt die einzige Person, mit welcher sich
Entwickler auf der Produktion einloggen können. Auf der Produktion wird dem Root User keine Gruppe geseedet.
Um dem Root eine Gruppe/Rolle zu geben, gibt es die assign_role_to_root
Methode auf der PersonSeeder
Klasse.
Damit jemand bei ungültigen E-Mailadressen oder sonstigen Versandfehlern von E-Mails benachrichtigt
wird, sollte eine spezielle Mailingliste (in der Applikation unter "Abos" > "Abo erstellen")
eingerichtet werden, welche auf die Applikations-Sendeadresse lautet (Settings.email.sender
, z.B.
[email protected]
). Als zusätzlicher Absender muss dabei der verwendete Mailer Daemon definiert
werden (z.B. [email protected]
). Bei dieser Liste sollte eine Person der Organisation als
Abonnent vorhanden sein, welcher sich um die fehlerhaften Adressen kümmert.
Um auf der Integration die Development Seed Daten zu laden, kann folgender Symlink erstellt werden. Dies lädt die im Core und dem Wagon definierten Development Seed Daten.
cd db/seeds && ln -s development/ production
cd vendor/wagons/hitobito_[wagon]/db/seeds && ln -s development/ production
Alle geseedeten Personen haben Dummy Email Adressen und das selbe Passwort (in den Seed Daten definiert). Dadurch kann man sich ohne weiteres als eine andere Person einloggen und die Applikation in dieser Rolle testen.
Achtung: Der Symlink sollte nach dem initalen Seeden wieder entfernt werden. Geschieht dies nicht, werden für neu (vom Benutzer) angelegten Gruppen bei folgenden Deployements entsprechend Mitglieder und Events geseeded.
Um die schweizer Addressdaten zu importieren kann der bundle exec rake address:import
Task genutzt werden. Um die Addressdaten von der Post API zu fetchen, muss ein API Token gegeben sein (ENV['ADDRESSES_TOKEN']
).
Hitobito benötigt für den Betrieb einige weitere Dienste die installiert und konfiguriert werden müssen.
Damit es möglich ist über das Webfrontend nach Personen, Events und weiteren definierten Einträgen zu Suchen wird Sphinx verwendet. Über die Umgebungsvariablen RAILS_SPHINX_HOST und RAILS_SPHINX_PORT wird dabei definiert wie der Sphinx-Daemon erreichbar ist. Sphinx lässt sich unter Centos/Rhel folgendermassen installieren:
yum install sphinx
Um eine entsprechende Konfiguration für Sphinx zu generieren steht ein Rake Task zur Verfügung. Vor dem Ausführen dieses Befehls innerhalb des Rails Verzeichnisses muss sichergestellt sein das die zuvor erwähnten Environment Variablen für Host und Port gesetzt sind.
cd $rails_dir
bundle exec rake ts:configure
Über diesen Task wird nun eine entsprechende Sphinx Konfiguration unter config/production.sphinx.conf abgelegt. Diese erstellte Konfiguration linkt man nun am besten gleich nach /etc/sphinx/app-name.conf
ln -s $app_dir/config/production.sphinx.conf /etc/sphinx/$app-name.conf
Danach lässt sich der Sphinx Daemon mit der neuen Konfiguration starten:
service searchd start