Preduvjeti
Instalirajte preduvjetne pakete
Instalirajte PostgreSQL
Dodajte namjenskog korisnika iz dijaspore
Instalirajte Ruby
Postavite poslužitelj pošte
Instalirajte i konfigurirajte Diaspora
Instalirajte potrebne dragulje
Postavljanje baze podataka
Predkompilirajte sredstva
Dijaspora systemd usluge
Nginx Reverse Proxy
Stvorite korisnika iz dijaspore
Sidekiq
Lorotirati
Ažuriraj dijasporu
Diaspora je društvena mreža otvorenog koda svjesna privatnosti. U ovom vodiču naučit ćete kako postaviti i konfigurirati Diaspora pod na CentOS 7.
Preduvjeti
- Instanca poslužitelja CentOS 7.
- Pokrećući pod prosječne veličine, vaš poslužitelj bi trebao imati najmanje 512 MB RAM-a (+1 GB prostora za zamjenu) i pristojan višejezgreni CPU.
- Korisnik sudoa .
Instalirajte preduvjetne pakete
Prvo preuzmite i instalirajte najnovije izdanje EPEL-a.
sudo yum install epel-release
Instalirajte potrebne pakete.
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
Omogućite redisza pokretanje kada se vaš sustav pokrene.
sudo systemctl enable redis
sudo systemctl start redis
Instalirajte PostgreSQL
Diaspora podržava MySQL, MariaDB i PostgreSQL. U ovom vodiču koristit ćemo PostgreSQL.
Instalirajte PostgreSQL.
sudo yum install postgresql-server postgresql-contrib postgresql-setup initdb
Omogućite PostgreSQL da se pokrene kada se vaš sustav pokrene.
sudo systemctl enable postgresql
sudo systemctl start postgresql
Povežite se na PostgreSQL s postgreskorisnikom.
sudo -u postgres psql
Stvorite korisnika iz dijaspore.
CREATE USER diaspora WITH CREATEDB PASSWORD '<password>';
Dodajte namjenskog korisnika iz dijaspore
Ovo je korisnički račun koji će pokretati Diaspora.
sudo adduser --disabled-login diaspora
Prijeđite na novog korisnika.
sudo su - diaspora
Instalirajte Ruby
Ruby možete instalirati na nekoliko načina. Koristit ćemo se rbenvza upravljanje okruženjem i verzijama.
Prvo ćete morati instalirati pakete koje Ruby zahtijeva.
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
Instaliraj 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
Ponovno se povežite za ponovno učitavanje putanje.
exit
sudo su - diaspora
Instalirajte ruby-builddodatak za rbenvkompajliranje Rubyja.
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Instalirajte Ruby.
rbenv install 2.4.3
rbenv global 2.4.3
Postavite poslužitelj pošte
Koristit ćemo Postfix kao SMTP relej za slanje e-pošte korisnicima. Molimo pogledajte ovaj članak kako biste saznali kako instalirati jednostavan poslužitelj pošte, s Postfixom kao MTA, Dovecotom kao MDA i Sieveom za razvrstavanje pošte.
Klonirajte izvorni kod za Diasporu.
cd ~
git clone -b master https://github.com/diaspora/diaspora.git
cd diaspora
Kopirajte primjer konfiguracijske datoteke baze podataka na mjesto koje zahtijeva Diaspora.
cp config/database.yml.example config/database.yml
cp config/diaspora.yml.example config/diaspora.yml
Otvorite konfiguracijsku datoteku baze podataka u uređivaču teksta da biste uredili neke postavke.
nano config/database.yml
Promijenite postavke baze podataka tako da odgovaraju korisniku i lozinki za PostgreSQL koje ste prethodno kreirali.
postgresql: &postgresql
adapter: postgresql
host: localhost
port: 5432
username: diaspora
password: __password__
encoding: unicode
Otvorite konfiguracijsku datoteku Diaspora.
nano config/diaspora.yml
Morat ćete ažurirati nekoliko postavki u ovoj datoteci kako bi Diaspora ispravno radila.
url: Ovdje postavite javni okrenuti URL na svoj pod.
certificate_authorities: Uklonite vodeći # da biste ga dekomentirali.
rails_environment: Ovo morate postaviti na proizvodnju.
require_ssl: Postavite ovo na false kako biste spriječili preusmjeravanje s http:// na https://.
Instalirajte potrebne dragulje
Instalirajte Bundle, Ruby upravitelj knjižnice.
gem install bundler
script/configure_bundler
Napomena : Ako imate pogreške u vezi s vašom Ruby verzijom, uredite .ruby-versioni stavite svoju (ovdje 2.4.3umjesto 2.4).
Postavljanje baze podataka
Kreirajte i konfigurirajte bazu podataka.
RAILS_ENV=production bin/rake db:create db:migrate
Predkompilirajte sredstva
Ova naredba rake će prekompilirati sredstva.
RAILS_ENV=production bin/rake assets:precompile
Dijaspora systemd usluge
Postoji mnogo načina za upravljanje dijasporom kao uslugom. U ovom vodiču koristit ćemo Systemd.
Prvo stvorite sljedeće datoteke.
systemd targetdatoteka:
touch /etc/systemd/system/diaspora.target
systemd webservisna datoteka:
touch /etc/systemd/system/diaspora-web.service
systemd sidekiqservisna datoteka:
touch /etc/systemd/system/diaspora-sidekiq.service
Zalijepite sljedeći konfiguracijski tekst za svaku datoteku koju ste prethodno stvorili.
target datoteka:
[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 servisna datoteka:
[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 servisna datoteka:
[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
Omogućite usluge podizanja sustava.
sudo systemctl enable diaspora.target diaspora-sidekiq.service diaspora-web.service
Ponovno pokrenite usluge.
sudo systemctl restart diaspora.target
Provjerite rade li ispravno.
sudo systemctl status diaspora-web.service
sudo systemctl status diaspora-sidekiq.service
Nginx Reverse Proxy
Koristit ćemo Nginx kao obrnuti proxy za posluživanje statičkih resursa.
Koristit ćemo acme.sh da dobijemo Let's Encrypt certifikat.
Preuzmite acme.shizvorni kod.
git clone https://github.com/Neilpang/acme.sh.git
Generirajte 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
Instalirajte Nginx.
sudo yum install nginx
Izradite novu Nginx konfiguracijsku datoteku za našu Diaspora pod.
nano /etc/nginx/conf.d/diaspora.conf
Popunite datoteku sljedećim sadržajem.
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;
}
}
Napomena : promijenite example.comsvoj registrirani naziv domene.
Nakon što su sve izmjene dovršene, provjerite ima li grešaka u konfiguracijskoj datoteci.
sudo nginx -t
Ponovno pokrenite Nginx da biste primijenili promjene.
sudo systemctl restart nginx
Ako koristite vatrozid, pokrenite sljedeće naredbe za dopuštanje HTTPi HTTPSpromet.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Ako sada posjetite naziv domene vašeg Diaspora pod u svom pregledniku ( https://example.com), doći ćete do stranice dobrodošlice za Diaspora.
Stvorite korisnika iz dijaspore
Kliknite vezu u Start by creating an account., i ispunite detalje kako biste stvorili novog korisnika iz dijaspore. Tada ćete moći vidjeti početnu stranicu svog korisnika i početi koristiti društvenu mrežu Diaspora.
Nakon što kreirate račun, dajte mu administratorska prava.
Role.add_admin User.where(username: "your_username").first.person
Sada imate pristup administrativnoj nadzornoj ploči.
https://example.com/admins/dashboard
Sidekiq
Sidekiq, koji se bavi obradom pozadinskih poslova, ima web sučelje dostupno na https://example.com/sidekiq. Pod statistika je dostupna na https://example.com/statistics.
Lorotirati
Koristit ćemo se logrotateza vođenje dnevnika dijaspore.
Napravite novu logrotatedatoteku za dijasporu.
nano /etc/logrotate/diaspora
Zatim dodajte sljedeće retke.
/home/diaspora/diaspora/log/*.log {
notifempty
copytruncate
missingok
compress
weekly
rotate 52
}
Ovo će rotirati trupce tjedno, komprimirati ih i zadržati 52 tjedna.
Ažuriraj dijasporu
Kada dođe vrijeme za ažuriranje Diaspore, slijedite ove korake.
Prvo, nadogradite instalirane pakete.
sudo yum update
Ažurirajte izvorni kod Diaspore pomoću git-a.
su - diaspora
cd diaspora
git pull
Ažurirajte dragulje.
gem install bundler
bin/bundle --full-index
Migrirajte bazu podataka i ponovno kompajlirajte sredstva.
RAILS_ENV=production bin/rake db:migrate
RAILS_ENV=production bin/rake assets:precompile
Konačno, ponovno pokrenite dijasporu.
systemctl restart diaspora.target