Bina Rangkaian Sosial Anda Dengan Diaspora di CentOS 7

Diaspora adalah rangkaian sosial sumber terbuka yang sedar privasi. Dalam tutorial ini, anda akan belajar bagaimana mengatur dan mengkonfigurasi pod Diaspora di CentOS 7.

Prasyarat

  • Contoh server CentOS 7.
  • Menjalankan pod bersaiz rata-rata, pelayan anda semestinya memiliki RAM sekurang-kurangnya 512MB (ruang pertukaran + 1GB) dan CPU berbilang teras yang layak.
  • Pengguna sudo .

Pasang Pakej Prasyarat

Pertama, muat turun dan pasang pelepasan EPEL terkini.

sudo yum install epel-release

Pasang pakej yang diperlukan.

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

Aktifkan redisuntuk memulakan semasa sistem anda boot.

sudo systemctl enable redis
sudo systemctl start redis

Pasang PostgreSQL

Diaspora menyokong MySQL, MariaDB, dan PostgreSQL. Dalam panduan ini, kami akan menggunakan PostgreSQL.

Pasang PostgreSQL.

sudo yum install postgresql-server postgresql-contrib postgresql-setup initdb

Dayakan PostgreSQL untuk memulakan apabila sistem anda boot.

sudo systemctl enable postgresql
sudo systemctl start postgresql

Sambung ke PostgreSQL dengan postgrespengguna.

sudo -u postgres psql

Buat pengguna Diaspora.

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

Tambahkan Pengguna Diaspora yang Dedikasi

Ini adalah akaun pengguna yang akan menjalankan Diaspora.

sudo adduser --disabled-login diaspora

Beralih kepada pengguna baru.

sudo  su - diaspora

Pasang Ruby

Terdapat beberapa cara untuk memasang Ruby. Kami akan gunakan rbenvuntuk mengurus persekitaran dan versi.

Pertama, anda perlu memasang pakej yang diperlukan oleh Ruby.

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

Pasang 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

Sambung semula untuk memuatkan semula jalan.

exit
sudo su - diaspora

Pasang ruby-buildplugin untuk rbenvmenyusun Ruby.

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

Pasang Ruby.

rbenv install 2.4.3
rbenv global 2.4.3

Persiapkan pelayan Mel

Kami akan menggunakan Postfix sebagai relay SMTP untuk menghantar e-mel kepada pengguna. Sila rujuk artikel ini untuk mengetahui cara memasang pelayan mel mudah, dengan Postfix sebagai MTA, Dovecot sebagai MDA dan Sieve untuk menyusun e-mel.

Pasang dan konfigurasikan Diaspora

Klon kod sumber untuk Diaspora.

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

Salin contoh fail konfigurasi pangkalan data ke lokasi yang diperlukan oleh Diaspora.

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

Buka fail konfigurasi pangkalan data dalam editor teks untuk mengedit sesetengah tetapan.

nano config/database.yml

Ubah tetapan pangkalan data agar sesuai dengan pengguna dan kata laluan PostgreSQL yang anda buat sebelumnya.

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

Buka fail konfigurasi Diaspora.

nano config/diaspora.yml

Anda perlu mengemas kini beberapa tetapan dalam fail ini untuk Diaspora untuk berfungsi dengan betul.

  • url: Tetapkan URL menghadap orang ramai ke pod anda di sini.
  • certificate_authorities: Keluarkan # yang terkemuka untuk menyuarakannya.
  • rails_environment: Anda mesti menetapkan ini untuk pengeluaran.
  • require_ssl: Tetapkan ini ke false untuk mengelakkan pengalihan dari http: // ke https: //.

Memasang Permata Diperlukan

Pasang Bundle, pengurus perpustakaan Ruby.

gem install bundler
script/configure_bundler

Nota : Jika anda mempunyai ralat mengenai versi Ruby anda, edit .ruby-versiondan letakkan sendiri (di sini 2.4.3bukannya 2.4).

Sediakan Pangkalan Data

Buat dan konfigurasi pangkalan data.

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

Pra-menyusun aset

Perintah rake ini akan mempercepatkan aset.

RAILS_ENV=production bin/rake assets:precompile

Diaspora systemd Perkhidmatan

Terdapat banyak cara untuk menguruskan Diaspora sebagai perkhidmatan. Dalam tutorial ini, kami akan menggunakan Systemd.

Pertama, buat fail berikut.

  • targetfail systemd :

    touch /etc/systemd/system/diaspora.target
    
  • webfail perkhidmatan sistem :

    touch /etc/systemd/system/diaspora-web.service
    
  • sidekiqfail perkhidmatan systemd :

    touch /etc/systemd/system/diaspora-sidekiq.service
    

Tampal teks konfigurasi berikut untuk setiap fail yang anda buat sebelumnya.

target fail:

[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 fail perkhidmatan:

[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 fail perkhidmatan:

[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

Dayakan perkhidmatan but.

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

Mulakan semula perkhidmatan.

sudo systemctl restart diaspora.target

Pastikan ia berjalan dengan betul.

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

Proksi Berbalik Nginx

Kami akan menggunakan Nginx sebagai proksi terbalik untuk menyediakan sumber statik.

Kami akan menggunakan acme.sh untuk mendapatkan sijil Encrypt Let's.

Muat turun acme.shkod sumber.

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

Buat sijil 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

Pasang Nginx.

sudo yum install nginx

Buat fail konfigurasi Nginx baru untuk pod Diaspora kami.

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

Isi fail dengan kandungan berikut.

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

Catatan : tukar example.comke nama domain berdaftar anda sendiri.

Selepas semua pengubahsuaian telah selesai, periksa fail konfigurasi untuk sebarang kesilapan.

sudo nginx -t

Mulakan semula Nginx untuk menerapkan perubahan.

sudo systemctl restart nginx

Sekiranya anda menjalankan firewall, jalankan arahan berikut untuk membenarkan HTTPdan membuat HTTPStrafik.

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Sekiranya sekarang anda mengunjungi nama domain Diaspora pod anda di penyemak imbas anda ( https://example.com), anda akan sampai ke halaman selamat datang Diaspora.

Buat Pengguna Diaspora

Klik pautan masuk Start by creating an account., dan isikan butiran untuk mencipta pengguna Diaspora baru. Kemudian, anda akan dapat melihat halaman utama pengguna anda dan mula menggunakan rangkaian sosial Diaspora.

Setelah anda membuat akaun, berikan hak pentadbir.

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

Anda kini mempunyai akses ke papan pemuka pentadbir.

https://example.com/admins/dashboard

Sidekiq

Sidekiq, yang mengendalikan pemprosesan latar belakang pekerjaan, mempunyai antara muka web yang tersedia di https://example.com/sidekiq. Stat pod boleh didapati di https://example.com/statistics.

Logrotate

Kami akan gunakan logrotateuntuk menguruskan log Diaspora.

Buat logrotatefail baru untuk Diaspora.

nano /etc/logrotate/diaspora

Kemudian, tambahkan baris berikut.

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

Ini akan memutar log setiap minggu, memampatkannya dan menyimpannya selama 52 minggu.

Kemas kini Diaspora

Apabila tiba masanya untuk mengemas kini Diaspora, ikuti langkah-langkah ini.

Pertama, tingkatkan pakej yang dipasang.

sudo yum update

Kemas kini kod sumber Diaspora dengan git.

su - diaspora
cd diaspora
git pull

Kemas kini permata.

gem install bundler
bin/bundle --full-index

Pindahkan pangkalan data dan kumpulkan semula aset.

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

Akhirnya, mulakan semula Diaspora.

systemctl restart diaspora.target


Leave a Comment

Cara Pasang dan Konfigur CyberPanel pada Server CentOS 7 anda

Cara Pasang dan Konfigur CyberPanel pada Server CentOS 7 anda

Menggunakan Sistem Berbeza? Pengenalan CyberPanel adalah salah satu panel kawalan pertama di pasaran yang merupakan sumber terbuka dan menggunakan OpenLiteSpeed. Apa itu

Cara Memasang Apache Maven 3.5 di CentOS 7

Cara Memasang Apache Maven 3.5 di CentOS 7

Apache Maven adalah alat pengurusan projek perisian sumber terbuka dan bebas yang banyak digunakan untuk menyebarkan aplikasi berbasis Java. Prasyarat yang baru

Cara Memasang FFmpeg di CentOS

Cara Memasang FFmpeg di CentOS

FFmpeg adalah penyelesaian sumber terbuka yang popular untuk merakam, menukar, dan menstrim audio dan video, yang banyak digunakan dalam semua jenis perkhidmatan streaming dalam talian. Saya

Cara Memasang Backdrop CMS 1.8.0 pada VPS CentOS 7 LAMP

Cara Memasang Backdrop CMS 1.8.0 pada VPS CentOS 7 LAMP

Menggunakan Sistem Berbeza? Backdrop CMS 1.8.0 adalah Sistem Pengurusan Kandungan (CMS) sumber mudah alih, mudah alih, percuma dan terbuka yang membolehkan kami

Cara Pasang AirSonic pada CentOS 7

Cara Pasang AirSonic pada CentOS 7

Menggunakan Sistem Berbeza? AirSonic adalah pelayan streaming media sumber terbuka dan terbuka. Dalam tutorial ini, saya akan membimbing anda melalui proses penyebaran a

Siapkan Komposer Untuk Ketergantungan PHP Di CentOS 6

Siapkan Komposer Untuk Ketergantungan PHP Di CentOS 6

Pengenalan Komposer adalah pengurus pergantungan yang popular untuk PHP yang dapat mempermudah pemasangan dan kemas kini perpustakaan yang diperlukan untuk projek anda

Pasang RockMongo di CentOS 7

Pasang RockMongo di CentOS 7

RockMongo adalah alat Pengurusan MongoDB berasaskan web yang serupa dengan alat Pengurusan MySQL: phpMyAdmin. Tutorial ini akan merangkumi proses installin

Bagaimana untuk Menggunakan Aplikasi Web Teras NET pada CentOS 7

Bagaimana untuk Menggunakan Aplikasi Web Teras NET pada CentOS 7

.NET NET adalah rangka kerja pembangunan merentas platform terbuka yang disusun oleh Microsoft dan masyarakat NET yang semakin berkembang. Dengan bantuan .NE

Memasang Netdata di CentOS 7

Memasang Netdata di CentOS 7

Menggunakan Sistem yang berbeza? Netdata adalah bintang yang semakin meningkat dalam bidang pemantauan metrik sistem masa nyata. Berbanding dengan alat lain yang serupa, Netdata:

Cara Memasang Pelayan Starbound di CentOS 7

Cara Memasang Pelayan Starbound di CentOS 7

Menggunakan Sistem yang berbeza? Dalam tutorial ini, saya akan menerangkan cara menyediakan pelayan Starbound di CentOS 7. Prasyarat Anda perlu memiliki permainan ini untuk anda

Cara Memasang Django di CentOS 7

Cara Memasang Django di CentOS 7

Django adalah rangka kerja Python yang popular untuk menulis aplikasi web. Dengan Django, anda dapat membina aplikasi dengan lebih cepat, tanpa mencipta semula roda. Sekiranya anda mahu

Sediakan Pelayan multipemain SA-MP San Andreas di CentOS 6

Sediakan Pelayan multipemain SA-MP San Andreas di CentOS 6

Selamat datang ke tutorial Vultr yang lain. Di sini, anda akan belajar cara memasang dan menjalankan pelayan SAMP. Panduan ini ditulis untuk CentOS 6. Prasyarat Anda akan hadir

Memasang Revive Adserver di CentOS 7

Memasang Revive Adserver di CentOS 7

Revive Adserver adalah sistem penayangan iklan sumber terbuka dan bebas yang dapat digunakan untuk mengelola iklan di laman web, dalam aplikasi, dan / atau dalam pemutar video. Dalam artikel ini,

Cara Memasang Parse Server di CentOS 7

Cara Memasang Parse Server di CentOS 7

Parse Server adalah alternatif sumber terbuka untuk perkhidmatan backend Parse yang sedang ditutup. Sekiranya anda peminat perkhidmatan ini, anda masih boleh menikmati perkhidmatan ini

Pasang Elgg di CentOS 7

Pasang Elgg di CentOS 7

Menggunakan Sistem Berbeza? Elgg adalah mesin rangkaian sosial sumber terbuka yang membolehkan penciptaan persekitaran sosial seperti rangkaian sosial kampus dan

Cara Memasang dan Mengkonfigurasi Caddy di CentOS 7

Cara Memasang dan Mengkonfigurasi Caddy di CentOS 7

Pengenalan Caddy adalah program pelayan web yang muncul dengan sokongan asli untuk HTTP / 2 dan HTTPS automatik. Dengan kemudahan penggunaan dan keselamatan, Caddy dapat b

Terapkan Kubernetes Dengan Kubeadm di CentOS 7

Terapkan Kubernetes Dengan Kubeadm di CentOS 7

Gambaran Keseluruhan Artikel ini dimaksudkan untuk membantu anda mendapatkan cluster Kubernet dan berjalan dengan kubeadm dalam waktu singkat. Panduan ini akan menggunakan dua pelayan, di

Tingkatkan Produktiviti dengan Z dan Zsh di CentOS

Tingkatkan Produktiviti dengan Z dan Zsh di CentOS

Pengenalan Mengendalikan sistem Linux bermaksud seseorang menggunakan baris perintah lebih kerap daripada tidak. Perlu menaip nama direktori panjang berulang-ulang sebagai wel

Cara Memasang OpenCart Pada Pelayan LEMP Vultr

Cara Memasang OpenCart Pada Pelayan LEMP Vultr

OpenCart adalah penyelesaian keranjang belanja sumber terbuka yang popular yang direka untuk memberikan fungsi, kemudahan penggunaan, dan penampilan yang sangat baik. Dengan OpenCart, anda pasti

Siapkan Sails.js untuk Pembangunan di CentOS 7

Siapkan Sails.js untuk Pembangunan di CentOS 7

Menggunakan Sistem Berbeza? Pengenalan Sails.js adalah rangka kerja MVC untuk Node.js, mirip dengan Ruby on Rails. Ia menjadikan untuk mengembangkan aplikasi moden

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut