Requisits previs
Instal·leu paquets de prerequisits
Instal·leu PostgreSQL
Afegiu un usuari dedicat a la diàspora
Instal·leu Ruby
Instal·leu Exim4
Instal·leu i configureu Diaspora
Instal·leu les gemmes necessàries
Configuració de la base de dades
Compilar prèviament els actius
Serveis del sistema de la diàspora
Proxy invers Nginx
Crear un usuari de la diàspora
Sidekiq
Logrotació
Actualització de la diàspora
Diaspora és una xarxa social de codi obert i conscient de la privadesa. En aquest tutorial, aprendràs a configurar i configurar un pod Diaspora a Debian 9.
Requisits previs
- Una instància del servidor Debian 9.
- Amb un pod de mida mitjana, el vostre servidor hauria de tenir, com a mínim, 512 MB de RAM (+ 1 GB d'espai d'intercanvi) i una CPU multinucli decent.
- Un usuari de sudo .
Instal·leu paquets de prerequisits
Primer, actualitzeu el sistema i instal·leu els paquets necessaris.
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
Instal·leu PostgreSQL
Diaspora és compatible amb MySQL, MariaDB i PostgreSQL. En aquesta guia, utilitzarem PostgreSQL.
Instal·leu PostgreSQL.
sudo apt-get install PostgreSQL-server
Connecteu-vos a PostgreSQL amb l' postgresusuari.
sudo -u postgres psql
Crear un usuari de la diàspora.
CREATE USER diaspora WITH CREATEDB PASSWORD '<password>';
Afegiu un usuari dedicat a la diàspora
Aquest és el compte d'usuari que executarà Diaspora.
sudo adduser --disabled-login diaspora
Canvia al nou usuari.
sudo su - diaspora
Instal·leu Ruby
Hi ha diverses maneres d'instal·lar Ruby. Utilitzarem rbenvper gestionar l'entorn i les versions.
Primer, haureu d'instal·lar els paquets que requereix Ruby.
sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
Instal·lar 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
Torneu a connectar per tornar a carregar el camí.
exit
sudo su - diaspora
Instal·leu el ruby-buildconnector per rbenvcompilar Ruby:
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Instal·leu Ruby.
rbenv install 2.4.3
rbenv global 2.4.3
Instal·leu Exim4
Utilitzarem Exim4 com a retransmissió SMTP per enviar correus electrònics als usuaris.
Instal·leu i configureu el paquet.
sudo apt-get install exim4
sudo dpkg-reconfigure exim4-config
Clonar el codi font per a la diàspora.
cd ~
git clone -b master https://github.com/diaspora/diaspora.git
cd diaspora
Copieu el fitxer de configuració de la base de dades d'exemple a la ubicació requerida per Diaspora.
cp config/database.yml.example config/database.yml
cp config/diaspora.yml.example config/diaspora.yml
Obriu el fitxer de configuració de la base de dades en un editor de text per editar alguns dels paràmetres.
nano config/database.yml
Canvieu la configuració de la base de dades perquè coincideixi amb l'usuari i la contrasenya de PostgreSQL que heu creat anteriorment.
postgresql: &postgresql
adapter: postgresql
host: localhost
port: 5432
username: diaspora
password: __password__
encoding: unicode
Obriu el fitxer de configuració de Diaspora.
nano config/diaspora.yml
Haureu d'actualitzar alguns paràmetres en aquest fitxer perquè Diaspora funcioni correctament.
url: configureu aquí l'URL d'accés públic al vostre pod.
certificate_authorities: elimina l'inici #per eliminar-lo del comentari.
rails_environment: Heu de configurar-ho com a production.
require_ssl: Establiu-ho a falseper evitar una redirecció de cap http://a https://.
Instal·leu les gemmes necessàries
Instal·leu Bundle, el gestor de biblioteques Ruby.
gem install bundler
script/configure_bundler
Nota: si teniu errors relacionats amb la vostra versió de Ruby, editeu .ruby-versioni poseu-ne la vostra (aquí 2.4.3en lloc de 2.4).
Configuració de la base de dades
Crear i configurar la base de dades.
RAILS_ENV=production bin/rake db:create db:migrate
Compilar prèviament els actius
Aquesta ordre rake precompilarà els actius.
RAILS_ENV=production bin/rake assets:precompile
Serveis del sistema de la diàspora
Hi ha moltes maneres de gestionar Diàspora com a servei. En aquest tutorial, utilitzarem Systemd.
Primer, creeu els fitxers següents.
targetfitxer systemd :touch /etc/systemd/system/diaspora.target
webfitxer de servei systemd :touch /etc/systemd/system/diaspora-web.service
sidekiqfitxer de servei systemd :touch /etc/systemd/system/diaspora-sidekiq.service
Enganxeu el text de configuració següent per a cada fitxer que hàgiu creat anteriorment.
target dossier:
[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 fitxer de servei:
[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 fitxer de servei:
[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
Habilita els serveis d'arrencada.
sudo systemctl enable diaspora.target diaspora-sidekiq.service diaspora-web.service
Reinicieu els serveis.
sudo systemctl restart diaspora.target
Assegureu-vos que funcionen correctament.
sudo systemctl status diaspora-web.service
sudo systemctl status diaspora-sidekiq.service
Proxy invers Nginx
Utilitzarem Nginx com a servidor intermediari invers per servir recursos estàtics.
Utilitzarem acme.sh per obtenir un certificat Let's Encrypt.
Descarrega el acme.shcodi font.
git clone https://github.com/Neilpang/acme.sh.git
Genereu un certificat 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
Instal·leu Nginx.
sudo apt-get install nginx
Creeu un fitxer de configuració Nginx nou per al nostre pod de diàspora.
nano /etc/nginx/conf.d/diaspora.conf
Omple el fitxer amb el contingut següent.
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;
}
}
Nota: canvieu example.comal vostre propi nom de domini registrat.
Un cop s'hagin completat totes les modificacions, comproveu si hi ha errors al fitxer de configuració.
sudo nginx -t
Reinicieu Nginx per aplicar els canvis.
sudo systemctl restart nginx
Si ara visiteu el nom de domini del vostre pod de Diàspora al vostre navegador (exemple: https://example.com), arribareu a la pàgina de benvinguda de Diàspora.
Crear un usuari de la diàspora
Feu clic a l'enllaç de Start by creating an account., i ompliu els detalls per crear un nou usuari de Diàspora. Aleshores, podreu veure la pàgina d'inici del vostre usuari i començar a utilitzar la xarxa social Diàspora.
Després de crear un compte, doneu-li drets d'administrador:.
Role.add_admin User.where(username: "your_username").first.person
Ara teniu accés al tauler d'administració.
https://example.com/admins/dashboard
Sidekiq
Sidekiq, que gestiona el processament de treballs en segon pla, té una interfície web disponible a https://example.com/sidekiq. Les estadístiques del pod estan disponibles a https://example.com/statistics.
Logrotació
Utilitzarem logrotateper gestionar els registres de la diàspora.
Creeu un logrotatefitxer nou per a la diàspora.
nano /etc/logrotate/diaspora
A continuació, afegiu les línies següents.
/home/diaspora/diaspora/log/*.log {
notifempty
copytruncate
missingok
compress
weekly
rotate 52
}
Això farà girar els registres setmanalment, els comprimirà i els mantindrà durant 52 setmanes.
Actualització de la diàspora
Quan arribi el moment d'actualitzar Diaspora, seguiu aquests passos.
Primer, actualitzeu el sistema.
sudo apt-get update
sudo apt-get dist-upgrade
Actualitzeu el codi font de la diàspora amb git.
su - diaspora
cd diaspora
git pull
Actualitza les joies.
gem install bundler
bin/bundle --full-index
Migreu la base de dades i recompileu els actius.
RAILS_ENV=production bin/rake db:migrate
RAILS_ENV=production bin/rake assets:precompile
Finalment, reinicieu Diàspora.
systemctl restart diaspora.target