Vybudujte si svoju sociálnu sieť s diasporou na CentOS 7

Diaspora je sociálna sieť s otvoreným zdrojom, ktorá si uvedomuje súkromie. V tomto návode sa naučíte, ako nastaviť a nakonfigurovať Diaspora pod na CentOS 7.

Predpoklady

  • Inštancia servera CentOS 7.
  • Váš server, ktorý beží na priemernej veľkosti, by mal mať aspoň 512 MB RAM (+ 1 GB odkladacieho priestoru) a slušný viacjadrový procesor.
  • Sudo používateľ.

Nainštalujte nevyhnutné balíky

Najprv si stiahnite a nainštalujte najnovšiu verziu EPEL.

sudo yum install epel-release

Nainštalujte potrebné 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

Povoľte redisspustenie pri spustení systému.

sudo systemctl enable redis
sudo systemctl start redis

Nainštalujte PostgreSQL

Diaspora podporuje MySQL, MariaDB a PostgreSQL. V tejto príručke budeme používať PostgreSQL.

Nainštalujte PostgreSQL.

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

Povoľte spustenie PostgreSQL pri spustení systému.

sudo systemctl enable postgresql
sudo systemctl start postgresql

Pripojte sa k PostgreSQL s postgrespoužívateľom.

sudo -u postgres psql

Vytvorte používateľa diaspóry.

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

Pridajte vyhradeného používateľa diaspóry

Toto je používateľský účet, ktorý bude spúšťať Diaspora.

sudo adduser --disabled-login diaspora

Prepnúť na nového používateľa.

sudo  su - diaspora

Nainštalujte Ruby

Existuje niekoľko spôsobov, ako nainštalovať Ruby. Použijeme rbenvna správu prostredia a verzií.

Najprv budete musieť nainštalovať balíky, ktoré 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

Nainštalujte 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

Znova sa pripojte, aby ste znova načítali cestu.

exit
sudo su - diaspora

Nainštalujte ruby-builddoplnok pre rbenvkompiláciu Ruby.

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

Nainštalujte Ruby.

rbenv install 2.4.3
rbenv global 2.4.3

Nastavte poštový server

Postfix budeme používať ako prenos SMTP na odosielanie e-mailov používateľom. V tomto článku sa dozviete, ako nainštalovať jednoduchý poštový server s Postfixom ako MTA, Dovecotom ako MDA a Sieve na triedenie pošty.

Nainštalujte a nakonfigurujte Diaspora

Naklonujte zdrojový kód pre Diaspora.

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

Skopírujte vzorový konfiguračný súbor databázy do umiestnenia, ktoré vyžaduje Diaspora.

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

Ak chcete upraviť niektoré nastavenia, otvorte konfiguračný súbor databázy v textovom editore.

nano config/database.yml

Zmeňte nastavenia databázy tak, aby zodpovedali používateľovi PostgreSQL a heslu, ktoré ste vytvorili predtým.

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

Otvorte konfiguračný súbor Diaspora.

nano config/diaspora.yml

Aby Diaspora fungovala správne, budete musieť aktualizovať niekoľko nastavení v tomto súbore.

  • url: Tu nastavte verejnú adresu URL pre svoj modul.
  • certificate_authorities: Ak chcete zrušiť komentár, odstráňte úvodné #.
  • rails_environment: Toto musíte nastaviť na produkciu.
  • require_ssl: Set this to false to prevent a redirect from http:// to https://.

Install Required Gems

Install Bundle, the Ruby library manager.

gem install bundler
script/configure_bundler

Note: If you have errors concerning your Ruby version, edit .ruby-version and put your own (here 2.4.3 instead of 2.4).

Setup Database

Create and configure the database.

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

Pre-compile the assets

This rake command will precompile the assets.

RAILS_ENV=production bin/rake assets:precompile

Diaspora systemd Services

There are many ways to manage Diaspora as a service. In this tutorial, we will use Systemd.

First, create the following files.

  • systemd target file:

    touch /etc/systemd/system/diaspora.target
    
  • systemd web service file:

    touch /etc/systemd/system/diaspora-web.service
    
  • systemd sidekiq service file:

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

Paste in the following configuration text for each file that you created earlier.

target file:

[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 service file:

[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 service file:

[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

Enable boot services.

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

Restart the services.

sudo systemctl restart diaspora.target

Ensure that they are running correctly.

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

Nginx Reverse Proxy

We will use Nginx as a reverse proxy to serve static resources.

We will use acme.sh to get a Let's Encrypt certificate.

Download the acme.sh source code.

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

Generate a Let's Encrypt certificate.

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

Install Nginx.

sudo yum install nginx

Create a new Nginx configuration file for our Diaspora pod.

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

Populate the file with the following content.

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

Note: change example.com to your own registered domain name.

After all modifications have been completed, check the configuration file for any errors.

sudo nginx -t

Restart Nginx to apply the changes.

sudo systemctl restart nginx

If you are running a firewall, run the following commands to allow HTTP and HTTPS traffic.

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

Ak teraz navštívite názov domény vašej Diaspora pod vo vašom prehliadači ( https://example.com), dostanete sa na uvítaciu stránku Diaspora.

Vytvorte používateľa diaspóry

Kliknite na odkaz v Start by creating an account.a vyplňte podrobnosti, aby ste vytvorili nového používateľa Diaspóry. Potom budete môcť zobraziť domovskú stránku svojho používateľa a začať používať sociálnu sieť Diaspora.

Po vytvorení účtu mu poskytnite práva správcu.

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

Teraz máte prístup k hlavnému panelu správcu.

https://example.com/admins/dashboard

Sidekiq

Sidekiq, ktorý spracováva úlohy na pozadí, má webové rozhranie dostupné na adrese https://example.com/sidekiq. Štatistiky modulu sú k dispozícii na adrese https://example.com/statistics.

Logrotate

Použijeme logrotatena správu denníkov diaspóry.

Vytvorte nový logrotatesúbor pre Diaspora.

nano /etc/logrotate/diaspora

Potom pridajte nasledujúce riadky.

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

Takto sa budú protokoly týždenne otáčať, komprimovať a uchovávať 52 týždňov.

Aktualizovať diaspóru

Keď príde čas na aktualizáciu diaspory, postupujte podľa týchto krokov.

Najprv inovujte nainštalované balíky.

sudo yum update

Aktualizujte zdrojový kód diaspory pomocou git.

su - diaspora
cd diaspora
git pull

Aktualizujte drahokamy.

gem install bundler
bin/bundle --full-index

Migrujte databázu a prekompilujte aktíva.

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

Nakoniec reštartujte Diasporu.

systemctl restart diaspora.target

Zanechať komentár

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac