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:

cd ~/mobilizon
./bin/mobilizon_ctl instance gen --output ~/mobilizon/config.exs

!!! /home/pacs/peh19/users/mobilizon/mobilizon/config.exs not found! Please ensure it exists and that     
MOBILIZON_CONFIG_PATH is unset or points to an existing file

What domain will your instance use? (e.g mobilizon.org) [] groups.hs-example.de
What is the name of your instance? (e.g. Mobilizon) [] Mobilizon
What's the address email will be send with? [noreply@groups.hs-example.de] 
What is the hostname of your database? [localhost] 
What is the name of your database? [mobilizon_prod] xyz00_mobilizon
What is the user used to connect to your database? [mobilizon] xyz00_mobilizon
What is the password used to connect to your database? [autogenerated] 
What port will the app listen to (leave it if you are using the default setup with nginx)? [4000] 37080
Writing config to /home/pacs/xyz00/users/mobilizon/mobilizon/config.exs.
Writing setup_db.psql.
# 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: "Mobilizon",
  description: "Change this to a proper description of your instance", 
  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
  
# manuell hinzugefuegt!
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