Ndërtoni rrjetin tuaj social me diasporën në CentOS 7

Diaspora është një rrjet social me burim të hapur, i ndërgjegjshëm për privatësinë. Në këtë tutorial, do të mësoni se si të konfiguroni dhe konfiguroni një pod Diaspora në CentOS 7.

Parakushtet

  • Një shembull i serverit CentOS 7.
  • Duke ekzekutuar një pod me madhësi mesatare, serveri juaj duhet të ketë, të paktën, 512 MB RAM (+1 GB hapësirë ​​shkëmbimi) dhe një CPU të mirë me shumë bërthama.
  • Një përdorues sudo .

Instaloni paketat parakushte

Së pari, shkarkoni dhe instaloni versionin më të fundit të EPEL.

sudo yum install epel-release

Instaloni paketat e nevojshme.

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

Aktivizo redispër të nisur kur sistemi juaj të niset.

sudo systemctl enable redis
sudo systemctl start redis

Instaloni PostgreSQL

Diaspora mbështet MySQL, MariaDB dhe PostgreSQL. Në këtë udhëzues, ne do të përdorim PostgreSQL.

Instaloni PostgreSQL.

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

Aktivizo PostgreSQL të fillojë kur sistemi juaj të fillojë.

sudo systemctl enable postgresql
sudo systemctl start postgresql

Lidhu me PostgreSQL me postgrespërdoruesin.

sudo -u postgres psql

Krijo një përdorues të Diasporës.

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

Shto një përdorues të përkushtuar të diasporës

Kjo është llogaria e përdoruesit që do të drejtojë Diasporën.

sudo adduser --disabled-login diaspora

Kalo te përdoruesi i ri.

sudo  su - diaspora

Instaloni Ruby

Ka disa mënyra për të instaluar Ruby. Ne do të përdorim rbenvpër të menaxhuar mjedisin dhe versionet.

Së pari, do t'ju duhet të instaloni paketat që kërkon Ruby.

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

Instaloni 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

Rilidheni për të ringarkuar shtegun.

exit
sudo su - diaspora

Instaloni ruby-buildshtojcën për rbenvtë përpiluar Ruby.

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

Instaloni Ruby.

rbenv install 2.4.3
rbenv global 2.4.3

Konfiguro një server Mail

Ne do të përdorim Postfix si një reletë SMTP për të dërguar email tek përdoruesit. Ju lutemi referojuni këtij artikulli për të mësuar se si të instaloni një server të thjeshtë poste, me Postfix si MTA, Dovecot si MDA dhe Sieve për renditjen e postës.

Instaloni dhe konfiguroni Diasporën

Klononi kodin burimor për diasporën.

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

Kopjo shembullin e skedarit të konfigurimit të bazës së të dhënave në vendndodhjen e kërkuar nga Diaspora.

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

Hapni skedarin e konfigurimit të bazës së të dhënave në një redaktues teksti për të modifikuar disa nga cilësimet.

nano config/database.yml

Ndryshoni cilësimet e bazës së të dhënave që të përputhen me përdoruesin dhe fjalëkalimin e PostgreSQL që keni krijuar më parë.

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

Hapni skedarin e konfigurimit të Diasporës.

nano config/diaspora.yml

Do t'ju duhet të përditësoni disa cilësime në këtë skedar që Diaspora të funksionojë siç duhet.

  • url: Vendosni URL-në e përballjes publike në podin tuaj këtu.
  • certificate_authorities: Hiqni # kryesore për ta hequr komentin.
  • rails_environment: Ju duhet ta vendosni këtë në prodhim.
  • require_ssl: Vendoseni këtë në false për të parandaluar një ridrejtim nga http:// në https://.

Instaloni gurët e çmuar të kërkuar

Instaloni Bundle, menaxherin e bibliotekës Ruby.

gem install bundler
script/configure_bundler

Shënim : Nëse keni gabime në lidhje me versionin tuaj Ruby, modifikoni .ruby-versiondhe vendosni tuajin (këtu 2.4.3në vend të 2.4).

Vendosja e bazës së të dhënave

Krijoni dhe konfiguroni bazën e të dhënave.

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

Përpiloni paraprakisht asetet

Kjo komandë raketë do të parapërpilojë asetet.

RAILS_ENV=production bin/rake assets:precompile

Shërbimet e sistemit të diasporës

Ka shumë mënyra për të menaxhuar diasporën si shërbim. Në këtë tutorial, ne do të përdorim Systemd.

Së pari, krijoni skedarët e mëposhtëm.

  • targetskedar systemd :

    touch /etc/systemd/system/diaspora.target
    
  • skedari i webshërbimit systemd :

    touch /etc/systemd/system/diaspora-web.service
    
  • skedari i sidekiqshërbimit systemd :

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

Ngjitni tekstin e mëposhtëm të konfigurimit për çdo skedar që keni krijuar më parë.

target dosje:

[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 skedari i shërbimit:

[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 skedari i shërbimit:

[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

Aktivizo shërbimet e nisjes.

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

Rinisni shërbimet.

sudo systemctl restart diaspora.target

Sigurohuni që ato të funksionojnë siç duhet.

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

Nginx Reverse Proxy

Ne do të përdorim Nginx si një përfaqësues të kundërt për të shërbyer burime statike.

Ne do të përdorim acme.sh për të marrë një certifikatë Let's Encrypt.

Shkarkoni acme.shkodin burimor.

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

Gjeneroni një certifikatë 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

Instaloni Nginx.

sudo yum install nginx

Krijo një skedar të ri konfigurimi Nginx për podin tonë të Diasporës.

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

Plotësoni skedarin me përmbajtjen e mëposhtme.

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

Shënim : ndryshoni example.comnë emrin tuaj të regjistruar të domain-it.

Pasi të kenë përfunduar të gjitha modifikimet, kontrolloni skedarin e konfigurimit për ndonjë gabim.

sudo nginx -t

Rinisni Nginx për të aplikuar ndryshimet.

sudo systemctl restart nginx

Nëse jeni duke ekzekutuar një mur zjarri, ekzekutoni komandat e mëposhtme për të lejuar HTTPdhe HTTPStrafikuar.

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

Nëse tani vizitoni emrin e domain-it të Diasporës në shfletuesin tuaj ( https://example.com), do të arrini në faqen e mirëseardhjes së Diasporës.

Krijo një përdorues të diasporës

Klikoni lidhjen në Start by creating an account., dhe plotësoni detajet për të krijuar një përdorues të ri nga Diaspora. Më pas, do të mund të shikoni faqen kryesore të përdoruesit tuaj dhe të filloni të përdorni rrjetin social të Diasporës.

Pasi të krijoni një llogari, jepini të drejtat e administratorit.

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

Tani keni akses në panelin e administratorit.

https://example.com/admins/dashboard

Sidekiq

Sidekiq, i cili merret me përpunimin e punëve në sfond, ka një ndërfaqe në internet të disponueshme në https://example.com/sidekiq. Statistikat e pod janë në dispozicion në https://example.com/statistics.

Logrotoj

Ne do të përdorim logrotatepër të menaxhuar regjistrat e diasporës.

Krijo një logrotateskedar të ri për diasporën.

nano /etc/logrotate/diaspora

Pastaj shtoni rreshtat e mëposhtëm.

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

Kjo do t'i rrotullojë shkrimet çdo javë, do t'i ngjesh ato dhe do t'i mbajë për 52 javë.

Përditëso diasporën

Kur të vijë koha për të përditësuar Diasporën, ndiqni këto hapa.

Së pari, përditësoni paketat e instaluara.

sudo yum update

Përditëso kodin burimor të Diasporës me git.

su - diaspora
cd diaspora
git pull

Përditësoni gurët e çmuar.

gem install bundler
bin/bundle --full-index

Migroni bazën e të dhënave dhe ripërpiloni asetet.

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

Më në fund, rinisni Diasporën.

systemctl restart diaspora.target

Lëreni një koment

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë