Δημιουργήστε το κοινωνικό σας δίκτυο με τη διασπορά στο Debian 9

Το Diaspora είναι ένα κοινωνικό δίκτυο ανοιχτού κώδικα με επίγνωση της ιδιωτικής ζωής. Σε αυτό το σεμινάριο, θα μάθετε πώς να ρυθμίζετε και να ρυθμίζετε ένα Diaspora pod στο Debian 9.

Προαπαιτούμενα

  • Μια παρουσία διακομιστή Debian 9.
  • Εκτελώντας ένα pod μεσαίου μεγέθους, ο διακομιστής σας θα πρέπει να διαθέτει, τουλάχιστον, 512 MB μνήμης RAM (+1 GB χώρος ανταλλαγής) και μια αξιοπρεπή CPU πολλαπλών πυρήνων.
  • Ένας χρήστης sudo .

Εγκαταστήστε προαπαιτούμενα πακέτα

Πρώτα, ενημερώστε το σύστημα και εγκαταστήστε τα απαραίτητα πακέτα.

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

Εγκαταστήστε το PostgreSQL

Το Diaspora υποστηρίζει MySQL, MariaDB και PostgreSQL. Σε αυτόν τον οδηγό, θα χρησιμοποιήσουμε την PostgreSQL.

Εγκαταστήστε το PostgreSQL.

sudo apt-get install PostgreSQL-server

Συνδεθείτε στο PostgreSQL με τον postgresχρήστη.

sudo -u postgres psql

Δημιουργήστε έναν χρήστη της Διασποράς.

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

Προσθέστε έναν αποκλειστικό χρήστη της Διασποράς

Αυτός είναι ο λογαριασμός χρήστη που θα εκτελεί το Diaspora.

sudo adduser --disabled-login diaspora

Μετάβαση στον νέο χρήστη.

sudo  su - diaspora

Εγκαταστήστε το Ruby

Υπάρχουν διάφοροι τρόποι εγκατάστασης του Ruby. Θα χρησιμοποιήσουμε rbenvγια τη διαχείριση του περιβάλλοντος και των εκδόσεων.

Αρχικά, θα χρειαστεί να εγκαταστήσετε τα πακέτα που απαιτεί η Ruby.

sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev

Εγκαταστήστε 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

Επανασυνδεθείτε για να φορτώσετε ξανά τη διαδρομή.

exit
sudo su - diaspora

Εγκαταστήστε το ruby-buildπρόσθετο για rbenvμεταγλώττιση του Ruby:

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

Εγκαταστήστε το Ruby.

rbenv install 2.4.3
rbenv global 2.4.3

Εγκαταστήστε το Exim4

Θα χρησιμοποιήσουμε το Exim4 ως αναμετάδοση SMTP για την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου στους χρήστες.

Εγκαταστήστε και διαμορφώστε το πακέτο.

sudo apt-get install exim4
sudo dpkg-reconfigure exim4-config

Εγκαταστήστε και διαμορφώστε το Diaspora

Κλωνοποιήστε τον πηγαίο κώδικα για τη Διασπορά.

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

Αντιγράψτε το παράδειγμα αρχείου διαμόρφωσης βάσης δεδομένων στη θέση που απαιτείται από το Diaspora.

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

Ανοίξτε το αρχείο διαμόρφωσης της βάσης δεδομένων σε ένα πρόγραμμα επεξεργασίας κειμένου για να επεξεργαστείτε ορισμένες από τις ρυθμίσεις.

nano config/database.yml

Αλλάξτε τις ρυθμίσεις της βάσης δεδομένων ώστε να ταιριάζουν με τον χρήστη PostgreSQL και τον κωδικό πρόσβασης που δημιουργήσατε νωρίτερα.

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

Ανοίξτε το αρχείο διαμόρφωσης Diaspora.

nano config/diaspora.yml

Θα χρειαστεί να ενημερώσετε μερικές ρυθμίσεις σε αυτό το αρχείο για να λειτουργήσει σωστά το Diaspora.

  • url: Ορίστε τη δημόσια διεύθυνση URL στο pod σας εδώ.
  • certificate_authorities: Αφαιρέστε το #lead για να το αποσχολιάσετε.
  • rails_environment: Πρέπει να το ρυθμίσετε σε production.
  • require_ssl: Ρυθμίστε το σε για falseνα αποτρέψετε μια ανακατεύθυνση από http://σε https://.

Εγκαταστήστε το Required Gems

Εγκαταστήστε το Bundle, τον διαχειριστή βιβλιοθήκης Ruby.

gem install bundler
script/configure_bundler

Σημείωση: Εάν έχετε σφάλματα σχετικά με την έκδοση Ruby, επεξεργαστείτε .ruby-versionκαι βάλτε τη δική σας (εδώ 2.4.3αντί για 2.4).

Ρύθμιση βάσης δεδομένων

Δημιουργήστε και διαμορφώστε τη βάση δεδομένων.

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

Προκατασκευάστε τα στοιχεία ενεργητικού

Αυτή η εντολή rake θα προμεταγλωττίσει τα στοιχεία.

RAILS_ENV=production bin/rake assets:precompile

Diaspora systemd Services

Υπάρχουν πολλοί τρόποι διαχείρισης της Διασποράς ως υπηρεσίας. Σε αυτό το σεμινάριο, θα χρησιμοποιήσουμε το Systemd.

Αρχικά, δημιουργήστε τα ακόλουθα αρχεία.

  • targetαρχείο systemd :touch /etc/systemd/system/diaspora.target
  • webαρχείο υπηρεσίας systemd :touch /etc/systemd/system/diaspora-web.service
  • sidekiqαρχείο υπηρεσίας systemd :touch /etc/systemd/system/diaspora-sidekiq.service

Επικολλήστε το ακόλουθο κείμενο διαμόρφωσης για κάθε αρχείο που δημιουργήσατε νωρίτερα.

target αρχείο:

[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 αρχείο υπηρεσίας:

[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 αρχείο υπηρεσίας:

[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

Ενεργοποίηση υπηρεσιών εκκίνησης.

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

Επανεκκινήστε τις υπηρεσίες.

sudo systemctl restart diaspora.target

Βεβαιωθείτε ότι λειτουργούν σωστά.

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

Nginx Reverse Proxy

Θα χρησιμοποιήσουμε το Nginx ως αντίστροφο διακομιστή μεσολάβησης για την εξυπηρέτηση στατικών πόρων.

Θα χρησιμοποιήσουμε το acme.sh για να λάβουμε ένα πιστοποιητικό Let's Encrypt.

Κατεβάστε τον acme.shπηγαίο κώδικα.

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

Δημιουργήστε ένα πιστοποιητικό 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

Εγκαταστήστε το Nginx.

sudo apt-get install nginx

Δημιουργήστε ένα νέο αρχείο διαμόρφωσης Nginx για το Diaspora pod μας.

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

Συμπληρώστε το αρχείο με το ακόλουθο περιεχόμενο.

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

Σημείωση: αλλάξτε example.comστο δικό σας καταχωρημένο όνομα τομέα.

Αφού ολοκληρωθούν όλες οι τροποποιήσεις, ελέγξτε το αρχείο διαμόρφωσης για τυχόν σφάλματα.

sudo nginx -t

Επανεκκινήστε το Nginx για να εφαρμόσετε τις αλλαγές.

sudo systemctl restart nginx

Εάν τώρα επισκεφτείτε το όνομα τομέα του Diaspora pod στο πρόγραμμα περιήγησής σας (παράδειγμα: https://example.com), θα μεταβείτε στη σελίδα υποδοχής της Diaspora.

Δημιουργήστε έναν χρήστη της Διασποράς

Κάντε κλικ στον σύνδεσμο στο Start by creating an account., και συμπληρώστε τα στοιχεία για να δημιουργήσετε έναν νέο χρήστη της Diaspora. Στη συνέχεια, θα μπορείτε να δείτε την αρχική σελίδα του χρήστη σας και να αρχίσετε να χρησιμοποιείτε το κοινωνικό δίκτυο Diaspora.

Αφού δημιουργήσετε έναν λογαριασμό, δώστε του δικαιώματα διαχειριστή:.

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

Τώρα έχετε πρόσβαση στον πίνακα ελέγχου διαχειριστή.

https://example.com/admins/dashboard

Sidekiq

Η Sidekiq, η οποία χειρίζεται την επεξεργασία εργασιών στο παρασκήνιο, διαθέτει μια διεπαφή ιστού διαθέσιμη στη διεύθυνση https://example.com/sidekiq. Τα στατιστικά του pod είναι διαθέσιμα στο https://example.com/statistics.

Logrotate

Θα χρησιμοποιήσουμε logrotateγια τη διαχείριση των αρχείων καταγραφής της Διασποράς.

Δημιουργία νέου logrotateαρχείου για τη Διασπορά.

nano /etc/logrotate/diaspora

Στη συνέχεια, προσθέστε τις ακόλουθες γραμμές.

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

Αυτό θα περιστρέφει τα κούτσουρα κάθε εβδομάδα, θα τα συμπιέζει και θα τα διατηρεί για 52 εβδομάδες.

Ενημέρωση Diaspora

Όταν έρθει η ώρα να ενημερώσετε το Diaspora, ακολουθήστε αυτά τα βήματα.

Πρώτα, ενημερώστε το σύστημα.

sudo apt-get update
sudo apt-get dist-upgrade

Ενημερώστε τον πηγαίο κώδικα της Διασποράς με git.

su - diaspora
cd diaspora
git pull

Ενημερώστε τους πολύτιμους λίθους.

gem install bundler
bin/bundle --full-index

Μεταφέρετε τη βάση δεδομένων και μεταγλωττίστε ξανά τα στοιχεία.

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

Επιτέλους, επανεκκινήστε το Diaspora.

systemctl restart diaspora.target

Αφήστε ένα σχόλιο

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα