Vybudujte si svou sociální síť s diasporou na CentOS 7

Diaspora je sociální síť s otevřeným zdrojovým kódem, která bere na vědomí soukromí. V tomto tutoriálu se naučíte, jak nastavit a nakonfigurovat Diaspora pod na CentOS 7.

Předpoklady

  • Instance serveru CentOS 7.
  • Při provozu na průměrně velkém modulu by váš server měl mít minimálně 512 MB RAM (+ 1 GB odkládacího prostoru) a slušný vícejádrový procesor.
  • Uživatel sudo .

Nainstalujte nezbytné balíčky

Nejprve si stáhněte a nainstalujte nejnovější verzi EPEL.

sudo yum install epel-release

Nainstalujte potřebné balíčky.

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

Povolte redisspuštění při spuštění systému.

sudo systemctl enable redis
sudo systemctl start redis

Nainstalujte PostgreSQL

Diaspora podporuje MySQL, MariaDB a PostgreSQL. V této příručce budeme používat PostgreSQL.

Nainstalujte PostgreSQL.

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

Povolte spouštění PostgreSQL při startu systému.

sudo systemctl enable postgresql
sudo systemctl start postgresql

Připojte se k PostgreSQL s postgresuživatelem.

sudo -u postgres psql

Vytvořte uživatele Diaspory.

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

Přidejte vyhrazeného uživatele diaspory

Toto je uživatelský účet, který bude provozovat Diaspora.

sudo adduser --disabled-login diaspora

Přepnout na nového uživatele.

sudo  su - diaspora

Nainstalujte Ruby

Ruby lze nainstalovat několika způsoby. Použijeme rbenvke správě prostředí a verzí.

Nejprve budete muset nainstalovat balíčky, které Ruby vyžaduje.

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

Nainstalujte rbenv.

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

Znovu se připojte, abyste znovu načetli cestu.

exit
sudo su - diaspora

Nainstalujte si ruby-buildplugin pro rbenvkompilaci Ruby.

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

Nainstalujte Ruby.

rbenv install 2.4.3
rbenv global 2.4.3

Nastavte poštovní server

Použijeme Postfix jako přenos SMTP k odesílání e-mailů uživatelům. V tomto článku se dozvíte, jak nainstalovat jednoduchý poštovní server s Postfixem jako MTA, Dovecotem jako MDA a Sieve pro třídění pošty.

Nainstalujte a nakonfigurujte Diaspora

Naklonujte zdrojový kód pro Diaspora.

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

Zkopírujte ukázkový konfigurační soubor databáze do umístění požadovaného Diasporou.

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

Otevřete konfigurační soubor databáze v textovém editoru a upravte některá nastavení.

nano config/database.yml

Změňte nastavení databáze tak, aby odpovídala uživateli a heslu PostgreSQL, které jste vytvořili dříve.

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

Otevřete konfigurační soubor Diaspora.

nano config/diaspora.yml

Aby Diaspora fungovala správně, budete muset v tomto souboru aktualizovat několik nastavení.

  • url: Zde nastavte veřejnou adresu URL svého modulu.
  • certificate_authorities: Odstraňte úvodní #, abyste jej odkomentovali.
  • rails_environment: Toto musíte nastavit na produkci.
  • require_ssl: Nastavte toto na false, abyste zabránili přesměrování z http:// na https://.

Nainstalujte požadované drahokamy

Nainstalujte Bundle, správce knihovny Ruby.

gem install bundler
script/configure_bundler

Poznámka : Pokud máte chyby týkající se vaší verze Ruby, upravte .ruby-versiona vložte vlastní (zde 2.4.3místo 2.4).

Nastavení databáze

Vytvořte a nakonfigurujte databázi.

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

Předkompilujte aktiva

Tento příkaz rake předkompiluje aktiva.

RAILS_ENV=production bin/rake assets:precompile

Služby diaspora systemd

Existuje mnoho způsobů, jak spravovat diasporu jako službu. V tomto tutoriálu budeme používat Systemd.

Nejprve vytvořte následující soubory.

  • targetsoubor systemd :

    touch /etc/systemd/system/diaspora.target
    
  • webservisní soubor systemd :

    touch /etc/systemd/system/diaspora-web.service
    
  • sidekiqservisní soubor systemd :

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

Vložte následující konfigurační text pro každý soubor, který jste vytvořili dříve.

target soubor:

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

[Install]
WantedBy=multi-user.target

web servisní soubor:

[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

sidekiq servisní soubor:

[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

Povolit spouštěcí služby.

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

Restartujte služby.

sudo systemctl restart diaspora.target

Ujistěte se, že běží správně.

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

Reverzní proxy Nginx

Nginx použijeme jako reverzní proxy pro obsluhu statických zdrojů.

K získání certifikátu Let's Encrypt použijeme acme.sh.

Stáhněte si acme.shzdrojový kód.

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

Vygenerujte certifikát Let's Encrypt.

./.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

Nainstalujte Nginx.

sudo yum install nginx

Vytvořte nový konfigurační soubor Nginx pro náš modul Diaspora.

nano /etc/nginx/conf.d/diaspora.conf

Naplňte soubor následujícím obsahem.

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;
  }
}

Poznámka : změňte example.comna svůj vlastní registrovaný název domény.

Po dokončení všech úprav zkontrolujte konfigurační soubor, zda neobsahuje nějaké chyby.

sudo nginx -t

Chcete-li použít změny, restartujte Nginx.

sudo systemctl restart nginx

Pokud používáte bránu firewall, spusťte následující příkazy pro povolení HTTPa HTTPSprovoz.

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

Pokud nyní navštívíte název vaší domény Diaspora ve svém prohlížeči ( https://example.com), dostanete se na uvítací stránku Diaspory.

Vytvořte uživatele diaspory

Klikněte na odkaz v Start by creating an account.a vyplňte podrobnosti pro vytvoření nového uživatele Diaspory. Poté budete moci zobrazit domovskou stránku svého uživatele a začít používat sociální síť Diaspora.

Po vytvoření účtu mu dejte administrátorská práva.

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

Nyní máte přístup k administračnímu panelu.

https://example.com/admins/dashboard

Sidekiq

Sidekiq, který zpracovává úlohy na pozadí, má webové rozhraní dostupné na adrese https://example.com/sidekiq. Statistiky modulu jsou k dispozici na adrese https://example.com/statistics.

Logrotate

Budeme používat logrotateke správě protokolů diaspory.

Vytvořte nový logrotatesoubor pro Diaspora.

nano /etc/logrotate/diaspora

Poté přidejte následující řádky.

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

Tím se budou protokoly týdně otáčet, komprimovat a uchovávat po dobu 52 týdnů.

Aktualizujte diasporu

Až přijde čas na aktualizaci Diaspory, postupujte takto.

Nejprve upgradujte nainstalované balíčky.

sudo yum update

Aktualizujte zdrojový kód diaspory pomocí git.

su - diaspora
cd diaspora
git pull

Aktualizujte drahokamy.

gem install bundler
bin/bundle --full-index

Proveďte migraci databáze a znovu zkompilujte aktiva.

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

Nakonec restartujte Diasporu.

systemctl restart diaspora.target

Nainstalujte Plesk na CentOS 7

Nainstalujte Plesk na CentOS 7

Používáte jiný systém? Plesk je proprietární ovládací panel webového hostitele, který umožňuje uživatelům spravovat jejich osobní a/nebo klientské webové stránky, databáze

Jak nainstalovat Squid Proxy na CentOS

Jak nainstalovat Squid Proxy na CentOS

Squid je populární bezplatný linuxový program, který vám umožňuje vytvořit webový proxy pro předávání. V této příručce uvidíte, jak nainstalovat Squid na CentOS, aby vás otočil

Jak nainstalovat Lighttpd (LLMP Stack) na CentOS 6

Jak nainstalovat Lighttpd (LLMP Stack) na CentOS 6

Úvod Lighttpd je fork Apache, jehož cílem je být mnohem méně náročný na zdroje. Je lehký, odtud jeho název, a jeho použití je docela jednoduché. Installin

Konfigurace statické sítě a IPv6 na CentOS 7

Konfigurace statické sítě a IPv6 na CentOS 7

VULTR nedávno provedl změny na jejich konci a vše by nyní mělo fungovat dobře po vybalení s povoleným NetworkManagerem. Pokud si přejete deaktivovat

Úprava Icinga2 pro použití modelu Master/Client na CentOS 6 nebo CentOS 7

Úprava Icinga2 pro použití modelu Master/Client na CentOS 6 nebo CentOS 7

Icinga2 je výkonný monitorovací systém a při použití v modelu master-client může nahradit potřebu monitorovacích kontrol založených na NRPE. Hlavní klient

Jak nainstalovat Apache Cassandra 3.11.x na CentOS 7

Jak nainstalovat Apache Cassandra 3.11.x na CentOS 7

Používáte jiný systém? Apache Cassandra je bezplatný a otevřený systém pro správu databází NoSQL, který je navržen tak, aby poskytoval škálovatelnost, vysokou

Jak nainstalovat Microweber na CentOS 7

Jak nainstalovat Microweber na CentOS 7

Používáte jiný systém? Microweber je open source drag and drop CMS a online obchod. Zdrojový kód Microweber je hostován na GitHubu. Tento průvodce vám to ukáže

Jak nainstalovat Vanilla Forum na CentOS 7

Jak nainstalovat Vanilla Forum na CentOS 7

Používáte jiný systém? Vanilla forum je open source aplikace fóra napsaná v PHP. Je plně přizpůsobitelný, snadno použitelný a podporuje externí

Jak nainstalovat Mattermost 4.1 na CentOS 7

Jak nainstalovat Mattermost 4.1 na CentOS 7

Používáte jiný systém? Mattermost je open source alternativa k zasílání zpráv Slack SAAS s vlastním hostitelem. Jinými slovy, s Mattermostem můžete ca

Vytvoření sítě serverů Minecraft pomocí BungeeCord na Debian 8, Debian 9 nebo CentOS 7

Vytvoření sítě serverů Minecraft pomocí BungeeCord na Debian 8, Debian 9 nebo CentOS 7

Co budete potřebovat Vultr VPS s alespoň 1 GB RAM. Přístup SSH (s oprávněními root/administrátor). Krok 1: Instalace BungeeCord První věci

Umožňuje šifrovat na Plesku

Umožňuje šifrovat na Plesku

Ovládací panel Plesk se vyznačuje velmi pěknou integrací pro Lets Encrypt. Lets Encrypt je jedním z jediných poskytovatelů SSL, kteří rozdávají kompletní certifikáty

Umožňuje šifrovat na cPanel

Umožňuje šifrovat na cPanel

Lets Encrypt je certifikační autorita určená k bezplatnému poskytování certifikátů SSL. cPanel vytvořil úhlednou integraci, takže vy a váš klient

Jak nainstalovat Concrete5 na CentOS 7

Jak nainstalovat Concrete5 na CentOS 7

Používáte jiný systém? Concrete5 je open source CMS, který nabízí mnoho charakteristických a užitečných funkcí, které pomáhají editorům snadno vytvářet obsah

Jak nainstalovat kontrolní panel na CentOS 7

Jak nainstalovat kontrolní panel na CentOS 7

Používáte jiný systém? Review Board je bezplatný a open source nástroj pro kontrolu zdrojového kódu, dokumentace, obrázků a mnoha dalších. Je to webový software

Nastavte ověřování HTTP pomocí Nginx na CentOS 7

Nastavte ověřování HTTP pomocí Nginx na CentOS 7

V této příručce se dozvíte, jak nastavit HTTP ověřování pro webový server Nginx běžící na CentOS 7. Požadavky Chcete-li začít, budete potřebovat

Jak nainstalovat YOURLS na CentOS 7

Jak nainstalovat YOURLS na CentOS 7

YOURLS (Your Own URL Shortener) je open source aplikace pro zkracování adres URL a analýzu dat. V tomto článku se budeme zabývat procesem instalace

Jak nainstalovat a nakonfigurovat ArangoDB na CentOS 7

Jak nainstalovat a nakonfigurovat ArangoDB na CentOS 7

Používáte jiný systém? Úvod ArangoDB je open source databáze NoSQL s flexibilním datovým modelem pro dokumenty, grafy a páry klíč–hodnota. to je

Použití Etckeeper pro správu verzí /etc

Použití Etckeeper pro správu verzí /etc

Úvod Adresář /etc/ hraje kritickou roli ve způsobu fungování systému Linux. Důvodem je skutečnost, že téměř každá konfigurace systému

Proč byste měli používat SSHFS? Jak připojit vzdálený souborový systém s SSHFS na CentOS 6

Proč byste měli používat SSHFS? Jak připojit vzdálený souborový systém s SSHFS na CentOS 6

Mnoho systémových administrátorů spravuje velké množství serverů. Když je potřeba přistupovat k souborům přes různé servery, přihlaste se ke každému zvlášť ca

Nastavení serveru Half Life 2 na CentOS 6

Nastavení serveru Half Life 2 na CentOS 6

Tento návod pokryje proces instalace herního serveru Half Life 2 na systém CentOS 6. Krok 1: Instalace předpokladů Aby bylo možné nastavit ou

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více