Mobilizon
Mobilizon ist eine Plattform, die am sog. "Fediverse" teilnimmt. Das Fediverse bezeichnet ein Netzwerk föderierter, voneinander unabhängiger sozialer Netzwerke. Dazu gehören insbesondere die Micro-Blogging Plattformen Mastodon, Pleroma und Misskey.
Mobilizon stellt im Fediverse Funktionen für die Bekanntmachung von Veranstaltungen bereit. Veranstalungen werden hier organisiert, Terlnehmende werden mobilisiert. Mobilizon bietet gute Alternativen zu Facebook-Gruppen und -Fanpages.
Installation
Der Betrieb von Mobilizon erfordert in der Regel einen Webspace auf einem eigenen Managed Server, weil mehrere Server-Dienste betrieben werden und weil Erweiterungen in der PostgreSQL-Datenbank installiert werden müssen.
Vorbereitung
Zur Vorbereitung wird im Hostsharing-Webspace mit HSAdmin ein Service-User (im Beispiel xyz00-mobilizon) angelegt. Der Service-User wird Domain-Admin für die Domain, unter der die Mobilizon-Instanz später erreichbar sein soll. Im folgenden nutzen wir die Domain groups.hs-example.de als Beispiel.
Die Software verwendet PostgreSQL als Datenbanksystem mit der PostGIS-Erweiterung. Als weiteren Vobereitungsschritt legen wir mit HSAdmin einen User in PostgreSQL an und verwenden den PostgreSQL-User als Eigentümer für die Mobilizon-Datenbank. Im Folgenden heißen PostgreSQL-User und PostgreSQL-Datenbank beides xyz00_mobilizon.
Damit die PostGIS-Funktionalität in der neuen Datenbank zur Verfügung steht, muss der Hostsharing-Service die Erweiterungen postgis, pg_trgm und unaccent in der neu angelegten Datenbank einspielen. Wir bitten den Service in einer E-Mail an service@hostsharing.net unter Angabe Namens der Datenbank um die Aktivierung der Erweiterungen.
Download und Entpacken der Software
mkdir ~/tmp cd ~/tmp wget https://joinmobilizon.org/latest-package -O mobilizon.tgz cd ~ tar xzf ~/tmp/mobilizon.tgz
Konfiguration
Die Datei config.exs:
# Mobilizon instance configuration import Config config :mobilizon, Mobilizon.Web.Endpoint, server: true, url: [host: "groups.hs-example.de"], http: [ ip: {127,0,0,1}, port: 37080 ], secret_key_base: "XXXXXXXX" config :mobilizon, Mobilizon.Web.Auth.Guardian, secret_key: "YYYYYYYY" config :mobilizon, :instance, name: "Veranstaltungen", description: "Veranstaltungen Online", hostname: "groups.hs-example.de", registrations_open: false, demo: false, allow_relay: true, federating: true, email_from: "noreply@groups.hs-example.de", email_reply_to: "noreply@groups.hs-example.de" config :mobilizon, Mobilizon.Storage.Repo, adapter: Ecto.Adapters.Postgres, username: "xyz00_mobilizon", password: "******, database: "xyz00_mobilizon", hostname: "localhost", port: "5432", pool_size: 10 config :mobilizon, Mobilizon.Web.Upload.Uploader.Local, uploads: "/home/storage/xyz00/users/mobilizon/uploads"
Datenbank-Initialisierung
export MOBILIZON_CONFIG_PATH=$HOME/mobilizon/config.exs cd ~/mobilizon ./bin/mobilizon_ctl migrate ./bin/mobilizon_ctl users.new "webmaster@groups.hs-example.de" --admin --password "******"
Systemd-Service
cat ~/.config/systemd/user/mobilizon.service
[Unit] Description=Mobilizon Service After=network.target postgresql.service [Service] Type=simple WorkingDirectory=%h/mobilizon ExecStart=%h/mobilizon/bin/mobilizon start Restart=always Environment=MIX_ENV=prod Environment=PATH=/usr/local/bin:/usr/bin:/bin Environment=HOME=%h Environment=MOBILIZON_CONFIG_PATH=%h/mobilizon/config.exs Environment=ERL_EPMD_ADDRESS=127.0.0.1 Environment=ERL_EPMD_PORT=37369 Environment=LANG=de_DE.UTF-8 PrivateTmp=true NoNewPrivileges=true [Install] WantedBy=default.target