Diaspora è un social network open source, attento alla privacy e distribuito. Consiste in un gruppo di nodi di proprietà e distribuiti in modo indipendente che interagiscono per creare la rete. Diaspora è un social network incentrato su tre filosofie, decentramento, libertà e privacy.
In questo tutorial, ti mostreremo come installare il social network distribuito Diaspora su Debian Buster 10. Installeremo Diaspora con il server web Nginx e il server di database PostgreSQL. Inoltre, proteggeremo l'installazione di Diaspora utilizzando SSL Letsencrypt.
Prerequisiti
- Debian Buster 10
- Minimo 2 GB di RAM
- Privilegi di root
Cosa faremo?
- Installa le dipendenze dei pacchetti
- Crea un nuovo utente PostgreSQL per la diaspora
- Crea nuovo utente
- Installa Ruby con RVM (Ruby Version Manager)
- Installa e configura il social network decentralizzato Diaspora
- Imposta Diaspora come servizio Systemd
- Imposta Nginx come proxy inverso per la diaspora
- Test
Passaggio 1:installazione delle dipendenze dei pacchetti
Innanzitutto, installeremo alcune dipendenze dei pacchetti per la nostra installazione di Diaspora, inclusi il server Web PostgreSQL, Redis e Nginx.
Installa le dipendenze dei pacchetti usando il comando apt di seguito.
sudo apt-get install build-essential cmake gnupg2 libssl-dev libcurl4-openssl-dev libxml2-dev libxslt-dev imagemagick ghostscript curl libmagickwand-dev git libpq-dev redis-server nodejs postgresql
Una volta completata l'installazione, avvia i servizi PostgreSQL, Nginx e Redis, quindi aggiungili tutti all'avvio del sistema.
systemctl start redis-server
systemctl enable redis-server
systemctl start postgresql
systemctl enable postgresql
Di conseguenza, alcune dipendenze dei pacchetti per l'installazione di Diaspora sono state installate su Debian Buster 10.
Passaggio 2:crea un nuovo utente PostgreSQL per la diaspora
In questo passaggio, cambieremo la password per l'utente 'postgres' predefinito e creeremo un nuovo utente PostgreSQL per Diaspora.
Accedi alla shell di PostgreSQL usando il comando 'psql' di seguito.
sudo -i -u postgres psql
Modifica la password per l'utente predefinito 'postgres' utilizzando la seguente query.
\password postgres
Ora digita la tua nuova password e ripeti, e la password per l'utente predefinito 'postgres ' è stato configurato.
Successivamente, crea un nuovo utente 'diaspora' con il privilegio 'CREATEDB ' per la creazione di un database utilizzando la query PostgreSQL di seguito.
CREATE USER diaspora WITH CREATEDB PASSWORD 'yourpassword';
Digita 'ESCI ' per disconnettersi dalla shell di PostgreSQL.
Di conseguenza, è stato creato il nuovo utente PostgreSQL per Diaspora.
Passaggio 3:crea un nuovo utente
Dopo aver creato l'utente del database PostgreSQL, creeremo un nuovo utente di sistema chiamato 'diaspora' e lo aggiungeremo al gruppo sudo.
Crea un nuovo utente chiamato 'diaspora' e imposta la password usando il comando seguente.
adduser --disabled-login Diaspora
passwd diaspora
Ora aggiungi l'utente 'diaspora' al gruppo 'sudo'.
usermod -a -G sudo diaspora
Di conseguenza, l'utente 'diaspora' sarà in grado di eseguire il comando 'sudo' per ottenere i privilegi di root.
Fase 4:installa RVM e Ruby
Prima di procedere oltre, accedi all'utente 'diaspora' utilizzando il comando seguente.
su - diaspora
Successivamente, installeremo RVM (Ruby Version Manager) e installeremo Ruby 2.6 per l'utente 'diaspora'.
Aggiungi la chiave GPGP per i pacchetti RVM utilizzando il comando seguente.
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
Ora installa RVM (Ruby Version Manager) usando il seguente comando.
curl -sSL https://get.rvm.io | bash -s stable
Digita la tua password per l'utente 'diaspora' e premi Invio.
Una volta completata l'installazione, carica lo script rvm sul tuo server.
source /home/diaspora/.rvm/scripts/rvm
Di conseguenza, puoi eseguire il comando rvm per installare Ruby.
Installa Ruby 2.6 usando il comando rvm qui sotto.
rvm install 2.6
Una volta completata l'installazione, controlla la tua versione di ruby.
ruby -v
Di seguito è riportato il risultato che otterrai.
Di conseguenza, l'installazione di RVM e Ruby sotto l'utente 'diaspora' è stata completata.
Passaggio 5 - Scarica e configura Diaspora
Prima di andare oltre, assicurati di aver effettuato l'accesso con l'utente 'diaspora'.
Scarica il codice sorgente di Diaspora usando il comando git ed entraci.
git clone -b master https://github.com/diaspora/diaspora.git
cd diaspora
Ora copia l'esempio di configurazione del database 'database.yml' e la configurazione della diaspora 'diaspora.yml'.
cp config/database.yml.example config/database.yml
cp config/diaspora.yml.example config/diaspora.yml
Quindi, modifica la configurazione del database 'database.yml' usando vim editor.
vim config/database.yml
Nella sezione del database 'PostgreSQL', cambia il nome utente e la password dettagliati con i tuoi dati.
postgresql: &postgresql
adapter: postgresql
host: "localhost"
port: 5432
username: "diaspora"
password: "yourpassword"
encoding: unicode
Salva e chiudi.
Quindi, modifica la configurazione della diaspora 'diaspora.yml'.
vim config/diaspora.yml
Modifica la configurazione come di seguito e assicurati che il nome di dominio sia il tuo.
configuration: ## Section
...
environment: ## Section
...
url: "https://pod.hakase-labs.to/"
certificate_authorities: '/etc/ssl/certs/ca-certificates.crt'
require_ssl: true
...
server: ## Section
rails_environment: 'production'
...
Salva e chiudi.
Quindi, installa le librerie gem e ruby necessarie per Diaspora usando i seguenti comandi.
gem install bundler
script/configure_bundler
bin/bundle install --full-index
Successivamente, esegui la migrazione del database per Diaspora.
RAILS_ENV=production bundle exec rake db:create db:migrate
Una volta completato tutto, compila la pipeline di asset di tutte le rotaie utilizzando il comando seguente.
RAILS_ENV=production bin/rake assets:precompile
E l'installazione di Diaspora è stata completata.
Passaggio 6:imposta Diaspora come servizio
Dopo aver installato Diaspora, configureremo Diaspora come servizio systemd.
Ora vai nella directory '/etc/systemd/system' e crea un nuovo file di servizio delle unità di raggruppamento 'diaspora.target' usando l'editor vim.
cd /etc/systemd/system/
vim diaspora.target
Incolla la seguente configurazione al suo interno.
[Unit]
Description=Diaspora social network
Wants=postgresql.service
Wants=redis-server.service
After=redis-server.service
After=postgresql.service
[Install]
WantedBy=multi-user.target
Salva e chiudi.
Quindi, crea un nuovo file di servizio per Diaspora chiamato 'diaspora-web.service' usando l'editor vim.
vim diaspora-web.service
Incolla la seguente configurazione al suo interno.
[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
Salva e chiudi.
Quindi, crea un nuovo file di servizio 'diaspora-sidekiq.service' per il servizio di monitoraggio utilizzando il comando vim seguente.
vim diaspora-sidekiq.service
Incolla la seguente configurazione.
[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
Salva e chiudi.
Ora ricarica il systemd manager e aggiungi tutti i servizi di diaspora all'avvio del sistema.
sudo systemctl daemon-reload
sudo systemctl enable diaspora.target diaspora-sidekiq.service diaspora-web.service
Quindi avvia il servizio Diaspora utilizzando il comando seguente.
systemctl start diaspora.target
Il 'diaspora.target' avvierà automaticamente altri servizi il 'diaspora-web.service' e 'diaspora-sidekiq.service'.
Controlla i servizi di diaspora usando il seguente comando.
systemctl status diaspora-web
systemctl status diaspora-sidekiq
Di seguito è riportato il risultato che otterrai.
Di conseguenza, Diaspora è ora attivo e funzionante come servizio systemd. E, infine, la configurazione della Diaspora è stata completata.
Passaggio 7:genera SSL Letsencrypt
Per questo tutorial, proteggeremo la nostra installazione di Diaspora utilizzando SSL Letsencrypt. in questo passaggio, installeremo lo strumento certbot e genereremo SSL Letsencrypt per l'installazione del nostro dominio Diaspora.
Installa Certbot usando il comando apt di seguito.
sudo apt install certbot
Una volta completata l'installazione, genera SSL Letsencrypt per il tuo nome di dominio Diaspora utilizzando il comando certbot di seguito.
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d pod.hakase-labs.to
Ora il tuo certificato sarà disponibile nella directory '/etc/letsencrypt/live/tuodominio.com/'.
Passaggio 8:crea un nuovo utente e scarica Diaspora
In questo passaggio, installeremo e configureremo il server web Nginx come proxy inverso per Diaspora.
Installa Nginx usando il comando apt di seguito.
sudo apt install nginx
Una volta completata l'installazione, vai alla directory '/etc/nginx/sites-available' e crea una nuova configurazione di host virtuale 'diaspora' usando l'editor vim.
cd /etc/nginx/sites-available/
vim diaspora
Modifica il nome di dominio e il percorso di SSL Letsencrypt con il tuo, quindi incollalo.
upstream diaspora_server {
server unix:/home/diaspora/diaspora/tmp/diaspora.sock;
}
server {
listen 80;
listen [::]:80;
server_name pod.hakase-labs.to;
return 301 https://pod.hakase-labs.to$request_uri;
access_log /dev/null;
error_log /dev/null;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name pod.hakase-labs.to;
access_log /var/log/nginx/dspr-access.log;
error_log /var/log/nginx/dspr-error.log;
ssl_certificate /etc/letsencrypt/live/pod.hakase-labs.to/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/pod.hakase-labs.to/privkey.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_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;
}
}
Salva e chiudi.
Ora attiva la configurazione Diaspora e testa la configurazione Nginx.
ln -s /etc/nginx/sites-available/diaspora /etc/nginx/sites-enabled/
nginx -t
Assicurati che non ci siano errori, quindi riavvia il servizio Nginx e aggiungilo all'avvio del sistema.
systemctl restart nginx
systemctl enable nginx
Di conseguenza, la configurazione del server web Nginx come proxy inverso per Diaspora è stata completata.
Fase 9 - Test
Apri il tuo browser web e digita il tuo nome di dominio Diaspora nella barra degli indirizzi.
http://pod.hakase-labs.to/
E otterrai la home page predefinita di Diaspora come di seguito.
Fare clic sul collegamento su "Crea un account sezione '.
Ora digita il tuo indirizzo e-mail, nome utente e password per il primo account Diaspora, quindi fai clic su "Crea un account '.
Carica la tua immagine del profilo ecc., quindi fai clic su 'Fantastico! Portami in diaspora pulsante '.
E otterrai la dashboard della Diaspora come di seguito.
Come si può vedere, l'installazione di Diaspora con Nginx Reverse Proxy su Debian Buster 10 è stata completata con successo.