Mobilizon

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen

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:

 cat ~/mobilizon/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

Links