Preduvjeti
Instalirajte preduvjetne pakete
Instalirajte PostgreSQL
Dodajte namjenskog korisnika iz dijaspore
Instalirajte Ruby
Instalirajte Exim4
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 Debianu 9.
Preduvjeti
- Instanca poslužitelja Debian 9.
- 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
Najprije ažurirajte sustav i instalirajte potrebne pakete.
sudo apt-get update
sudo apt-get install build-essential libssl-dev libcurl4-openssl-dev libxml2-dev libxslt-dev imagemagick ghostscript curl libmagickwand-dev git libpq-dev redis-server nodejs
Instalirajte PostgreSQL
Diaspora podržava MySQL, MariaDB i PostgreSQL. U ovom vodiču koristit ćemo PostgreSQL.
Instalirajte PostgreSQL.
sudo apt-get install PostgreSQL-server
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 apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
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
Instalirajte Exim4
Koristit ćemo Exim4 kao SMTP relej za slanje e-pošte korisnicima.
Instalirajte i konfigurirajte paket.
sudo apt-get install exim4
sudo dpkg-reconfigure exim4-config
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 početak #kako biste ga dekomentirali.
rails_environment: Ovo morate postaviti na production.
require_ssl: Postavite ovo na falsekako 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 apt-get 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 sada posjetite naziv domene vašeg Diaspora pod u svom pregledniku (primjer: 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, ažurirajte sustav.
sudo apt-get update
sudo apt-get dist-upgrade
Ažurirajte izvorni kod Diaspore sa git.
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