Tutorials  /  Linux Basics

Diaspora auf CentOS 7 installieren und sicher betreiben

Ccentron Redaktion · Juli 2025 ·7 Min. Lesezeit ·Linux Basics, Tutorial

Diaspora ist ein quelloffenes soziales Netzwerk mit Schwerpunkt auf Datenschutz. In dieser Anleitung erfährst du, wie du einen Diaspora-Pod unter CentOS 7 einrichtest und konfigurierst.

Voraussetzungen

  • Ein laufender CentOS-7-Server
  • Mindestens 512 MB RAM, 1 GB Swap-Speicher und ein Mehrkern-Prozessor
  • Ein Benutzerkonto mit sudo-Rechten
VM

Passende Infrastruktur bei centron

Zum Ausprobieren braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff gibt es ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →

Erforderliche Pakete installieren

Beginne mit der Installation der neuesten EPEL-Version:

Konsole
sudo yum install epel-release

Installiere die notwendigen Systempakete:

Konsole
sudo yum install tar make automake gcc gcc-c++ git net-tools cmake libcurl-devel libxml2-devel libffi-devel libxslt-devel wget redis ImageMagick nodejs postgresql-devel

Aktiviere Redis beim Systemstart und starte es direkt:

Konsole
sudo systemctl enable redis
sudo systemctl start redis

PostgreSQL installieren und konfigurieren

Obwohl Diaspora auch MySQL oder MariaDB unterstützt, verwenden wir in dieser Anleitung PostgreSQL.

Installiere den PostgreSQL-Server und die dazugehörigen Tools:

Konsole
sudo yum install postgresql-server postgresql-contrib postgresql-setup initdb

Aktiviere den automatischen Start von PostgreSQL und starte den Dienst:

Konsole
sudo systemctl enable postgresql
sudo systemctl start postgresql

Wechsle in die PostgreSQL-Konsole:

Konsole
sudo -u postgres psql

Erstelle einen neuen PostgreSQL-Benutzer für Diaspora:

Code
CREATE USER diaspora WITH CREATEDB PASSWORD '<password>';

Eigenen Systembenutzer für Diaspora anlegen

Erstelle einen dedizierten Systembenutzer, der Diaspora ausführt:

Konsole
sudo adduser --disabled-login diaspora

Wechsle in die Sitzung des neuen Benutzers:

Konsole
sudo  su - diaspora

Ruby mit rbenv installieren

Installiere zunächst alle benötigten Abhängigkeiten für Ruby:

Konsole
sudo yum install -y git-core zlib zlib-devel gcc-c++ patch readline readline-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison curl sqlite-devel

Klone das rbenv Repository und baue es:

Konsole
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

Starte die Benutzersitzung neu, damit die Umgebungsvariablen aktiv werden:

Code
exit
sudo su - diaspora

Installiere das Plugin ruby-build, um Ruby-Versionen mit rbenv zu kompilieren:

Konsole
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

Installiere Ruby 2.4.3 und setze es als Standardversion:

Code
rbenv install 2.4.3
rbenv global 2.4.3

Mailserver einrichten

Verwende Postfix als Mail Transfer Agent. Die genaue Einrichtung erfolgt über eine separate Anleitung, z. B. mit Postfix, Dovecot und Sieve zur Mailzustellung.

Diaspora installieren und konfigurieren

Klone das Diaspora-Repository und wechsle ins Verzeichnis:

Konsole
cd ~
git clone -b master https://github.com/diaspora/diaspora.git
cd diaspora

Kopiere die Beispielkonfigurationsdateien:

Code
cp config/database.yml.example config/database.yml
cp config/diaspora.yml.example config/diaspora.yml

Bearbeite die Datenbankkonfiguration und ergänze deine Zugangsdaten:

Code
nano config/database.yml

Beispielkonfiguration für PostgreSQL:

YAML
postgresql: &postgresql
  adapter: postgresql
  host: localhost
  port: 5432
  username: diaspora
  password: __password__
  encoding: unicode

Öffne die Hauptkonfiguration von Diaspora und nimm folgende Anpassungen vor:

Code
nano config/diaspora.yml
  • Setze url auf die öffentliche URL deiner Diaspora-Instanz
  • Entferne das Kommentarzeichen bei certificate_authorities
  • Setze rails_environment auf production
  • Setze require_ssl auf false

Gems mit Bundler installieren

Installiere Bundler und konfiguriere das Ruby-Umfeld für Diaspora:

Code
gem install bundler
script/configure_bundler

Hinweis: Bei Versionsfehlern in Ruby öffne die Datei .ruby-version und trage 2.4.3 ein.

Datenbank einrichten

Erstelle die Datenbank und führe die Migrationsskripte aus:

Code
RAILS_ENV=production bin/rake db:create db:migrate

Assets vorkompilieren

Erzeuge produktionsfertige Assets mit folgendem Befehl:

Code
RAILS_ENV=production bin/rake assets:precompile

Diaspora mit systemd verwalten

Erstelle die systemd-Diensteinheiten, um Diaspora als Service zu betreiben.

Erstelle zunächst die Target-Datei:

Code
touch /etc/systemd/system/diaspora.target

Erzeuge die Web-Service-Datei:

Code
touch /etc/systemd/system/diaspora-web.service

Erzeuge die Sidekiq-Service-Datei:

Code
touch /etc/systemd/system/diaspora-sidekiq.service

diaspora.target

Code
[Unit]
Description=Diaspora social network
Wants=postgresql.service
Wants=redis-server.service
After=redis-server.service
After=postgresql.service

[Install]
WantedBy=multi-user.target

diaspora-web.service

Code
[Unit]
Description=Diaspora social network (unicorn)
PartOf=diaspora.target
StopWhenUnneeded=true

[Service]
User=diaspora
Environment=RAILS_ENV=production
WorkingDirectory=/home/diaspora/diaspora
ExecStart=/bin/bash -lc "bin/bundle exec unicorn -c config/unicorn.rb -E production"
Restart=always

[Install]
WantedBy=diaspora.target

diaspora-sidekiq.service

Code
[Unit]
Description=Diaspora social network (sidekiq)
PartOf=diaspora.target
StopWhenUnneeded=true

[Service]
User=diaspora
Environment=RAILS_ENV=production
WorkingDirectory=/home/diaspora/diaspora
ExecStart=/bin/bash -lc "bin/bundle exec sidekiq"
Restart=always

[Install]
WantedBy=diaspora.target

Dienste aktivieren und starten

Aktiviere die Diaspora-Dienste beim Systemstart und starte sie anschließend manuell:

Konsole
sudo systemctl enable diaspora.target diaspora-sidekiq.service diaspora-web.service
sudo systemctl restart diaspora.target

Prüfe, ob die Dienste wie erwartet laufen:

Konsole
sudo systemctl status diaspora-web.service
sudo systemctl status diaspora-sidekiq.service

Nginx als Reverse Proxy einrichten

Setze Nginx als Reverse Proxy auf, um Diaspora bereitzustellen und statische Inhalte auszuliefern. Verwende acme.sh, um ein Let's Encrypt SSL-Zertifikat zu erhalten.

acme.sh klonen

Konsole
git clone https://github.com/Neilpang/acme.sh.git

Zertifikat anfordern

Code
./.acme.sh/acme.sh --issue --log \
--dns \
--keylength ec-256 \
--cert-file /etc/nginx/https/cert.pem \
--key-file /etc/nginx/https/key.pem \
--fullchain-file /etc/nginx/https/fullchain.pem \
-d example.com \
-d www.example.com

Nginx installieren und konfigurieren

Konsole
sudo yum install nginx
nano /etc/nginx/conf.d/diaspora.conf

Füge die folgende Konfiguration ein:

Code
upstream diaspora_server {
 server unix:/home/diaspora/diaspora/tmp/diaspora.sock;
}

server {
  listen 80;
  listen [::]:80; 
  server_name www.example.com example.com;
  return 301 https://example.com$request_uri;

  access_log /dev/null;
  error_log /dev/null;
}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name www.example.com example.com;

  if ($host = www.example.com) {
   return 301 https://example.com$request_uri;
  }

  access_log /var/log/nginx/dspr-access.log;
  error_log /var/log/nginx/dspr-error.log;

  ssl_certificate /etc/nginx/https/fullchain.pem;
  ssl_certificate_key /etc/nginx/https/key.pem;

  ssl_protocols TLSv1.2;
  ssl_ciphers EECDH+CHACHA20:EECDH+AESGCM:EECDH+AES;
  ssl_ecdh_curve X25519:P-521:P-384:P-256;
  ssl_prefer_server_ciphers on;
  ssl_stapling on;
  ssl_stapling_verify on;
  resolver 80.67.169.40 80.67.169.12 valid=300s;
  resolver_timeout 5s;
  ssl_session_cache shared:SSL:10m;

  root /home/diaspora/diaspora/public;

  client_max_body_size 5M;
  client_body_buffer_size 256K;

  try_files $uri @diaspora;

  location /assets/ {
    expires max;
    add_header Cache-Control public;
  }

  location @diaspora {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://diaspora_server;
  }
}

Hinweis: Ersetze example.com durch deinen tatsächlichen Domainnamen.

Konfiguration testen und Nginx neu starten

Konsole
sudo nginx -t
sudo systemctl restart nginx

Firewall für Webzugriff konfigurieren

Konsole
sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Diaspora im Browser aufrufen

Öffne https://example.com in deinem Browser. Du solltest die Startseite von Diaspora sehen.

Administratorbenutzer anlegen

Erstelle zunächst einen Diaspora-Account über den Button „Start by creating an account.“ Gib dem Benutzer danach Adminrechte:

Code
Role.add_admin User.where(username: "your_username").first.person

Adminbereich aufrufen: https://example.com/admins/dashboard

Sidekiq-Dashboard und Statistiken

  • Sidekiq-Oberfläche: https://example.com/sidekiq
  • Pod-Statistiken: https://example.com/statistics

Logverwaltung mit logrotate

Erstelle eine Logrotate-Konfigurationsdatei für Diaspora:

Code
nano /etc/logrotate/diaspora

Füge folgende Konfiguration ein:

Code
/home/diaspora/diaspora/log/*.log {
  notifempty
  copytruncate
  missingok
  compress
  weekly
  rotate 52
}

Diaspora aktualisieren

  • Systempakete aktualisieren:
Konsole
sudo yum update
  • Quellcode und Abhängigkeiten aktualisieren:
Code
su - diaspora
cd diaspora
git pull
gem install bundler
bin/bundle --full-index

Datenbank migrieren und Assets neu kompilieren:

Code
RAILS_ENV=production bin/rake db:migrate
RAILS_ENV=production bin/rake assets:precompile

Starte den Diaspora-Dienst neu:

Konsole
systemctl restart diaspora.target

Fazit

Mit diesen Schritten hast du erfolgreich einen eigenen, produktionsreifen Diaspora-Pod unter CentOS 7 installiert. Du hast PostgreSQL, Ruby, Nginx, systemd-Dienste, SSL-Verschlüsselung, Benutzerrechte und Logrotation konfiguriert. Deine Instanz ist jetzt sicher, performant und bereit zur Nutzung. Halte sie regelmäßig durch Updates aktuell und überwache ihre Funktion mit Sidekiq und dem Admin-Dashboard.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Linux Basics
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren