شبکه اجتماعی خود را با دیاسپور در CentOS 7 بسازید

دیاسپورور یک شبکه اجتماعی با منبع آزاد و آگاه به حریم خصوصی است. در این آموزش ، نحوه تنظیم و پیکربندی یک غلاف دیسپورس در CentOS 7 را یاد خواهید گرفت.

پیش نیازها

  • نمونه سرور CentOS 7.
  • حداقل یک سرور متوسط ​​512MB RAM (فضای مبادله 1 گیگابایت) و یک پردازنده چند هسته ای مناسب را در اختیار شما قرار می دهد.
  • کنید: sudo کاربر.

بسته های پیش نیاز را نصب کنید

ابتدا آخرین نسخه EPEL را بارگیری و نصب کنید.

sudo yum install epel-release

بسته های لازم را نصب کنید.

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

فعال کردن redisبرای شروع زمانی که چکمه های سیستم خود را.

sudo systemctl enable redis
sudo systemctl start redis

PostgreSQL را نصب کنید

دیاسپورا از MySQL ، MariaDB و PostgreSQL پشتیبانی می کند. در این راهنما از PostgreSQL استفاده خواهیم کرد.

PostgreSQL را نصب کنید.

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

PostgreSQL را فعال کنید تا سیستم شروع به کار کند.

sudo systemctl enable postgresql
sudo systemctl start postgresql

به PostgreSQL با postgresکاربر متصل شوید.

sudo -u postgres psql

یک کاربر دیاسپور ایجاد کنید.

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

یک کاربر اختصاصی دیاسپور را اضافه کنید

این حساب کاربری است که دیاسپورت را اجرا می کند.

sudo adduser --disabled-login diaspora

به کاربر جدید تغییر دهید.

sudo  su - diaspora

Ruby را نصب کنید

روش های مختلفی برای نصب Ruby وجود دارد. ما rbenvبرای مدیریت محیط و نسخه ها از آنها استفاده خواهیم کرد.

ابتدا باید بسته هایی را که 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

نصب 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

یک سرور ایمیل راه اندازی کنید

ما برای ارسال ایمیل به کاربران از Postfix به عنوان رله SMTP استفاده خواهیم کرد. لطفاً برای یادگیری نحوه نصب یک سرور پست الکترونیکی ساده ، با Postfix به عنوان MTA ، Dovecot به عنوان MDA و Sieve برای مرتب سازی نامه ، به این مقاله مراجعه کنید .

نصب و پیکربندی دیاسپور

کلون کردن کد منبع برای دیاسپوراست.

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

فایل پیکربندی پایگاه داده نمونه را در مکان مورد نیاز دیاسپوریا کپی کنید.

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

پرونده تنظیمات پایگاه داده را در ویرایشگر متن باز کنید تا برخی از تنظیمات ویرایش شود.

nano config/database.yml

تنظیمات پایگاه داده را تغییر دهید تا با کاربر و رمز عبوری که قبلاً ایجاد کرده اید ، مطابقت داشته باشد.

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

پرونده پیکربندی دیاسپور را باز کنید.

nano config/diaspora.yml

برای اینکه درست کار کند ، باید چند تنظیم را در این پرونده به روز کنید.

  • url: URL روبرو عمومی را در اینجا روی غلاف خود تنظیم کنید.
  • certificate_authorities: شماره اصلی را حذف کنید تا از آن ناراضی شوید.
  • rails_environment: شما باید این را تنظیم کنید تا تولید شود.
  • require_ssl: برای جلوگیری از هدایت مجدد از http: // به https: // ، این گزینه را غلط تنظیم کنید.

سنگهای مورد نیاز را نصب کنید

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

دارایی ها را از قبل تهیه کنید

این دستور شلیک دارایی ها را پیشبرد می کند.

RAILS_ENV=production bin/rake assets:precompile

خدمات سیستم دیاسپور

روش های بسیاری برای مدیریت دیسپور به عنوان خدمات وجود دارد. در این آموزش از Systemd استفاده خواهیم کرد.

ابتدا فایلهای زیر را ایجاد کنید.

  • از systemd targetفایل:

    touch /etc/systemd/system/diaspora.target
    
  • از systemd webفایل خدمات:

    touch /etc/systemd/system/diaspora-web.service
    
  • از systemd sidekiqفایل خدمات:

    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

ما از Nginx به عنوان یک پروکسی معکوس برای خدمت به منابع استاتیک استفاده خواهیم کرد.

ما برای دریافت گواهی نامه Letry Encrypt از acme.sh استفاده خواهیم کرد .

acme.shکد منبع را بارگیری کنید.

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

یک گواهی Letry 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 yum install nginx

یک فایل پیکربندی جدید Nginx برای غلاف دیاسپورای ما ایجاد کنید.

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

اگر فایروال در حال اجرا هستید ، دستورات زیر را اجرا کنید تا اجازه دهید HTTPو HTTPSترافیک انجام شود.

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

اگر اکنون از نام دامنه غلاف دیاسپورت خود در مرورگر خود بازدید می کنید ( https://example.com) ، به صفحه استقبال از دیاسپورا خواهید رسید.

یک کاربر دیاسپور ایجاد کنید

Start by creating an account.برای ایجاد یک کاربر جدید در دیاسپور ، روی پیوند کلیک کنید و جزئیات را پر کنید. سپس می توانید صفحه اصلی کاربر خود را مشاهده کرده و شروع به استفاده از شبکه اجتماعی دیاسپور کنید.

پس از ایجاد یک حساب کاربری ، به آن حق بدهید بدهید.

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

اکنون به داشبورد سرپرست دسترسی دارید.

https://example.com/admins/dashboard

صدیق

Sidekiq ، که پردازش مشاغل در پس زمینه را انجام می دهد ، رابط وب موجود در آن دارد https://example.com/sidekiq. آمار غلاف در دسترس است https://example.com/statistics.

لگروتات

ما logrotateبرای مدیریت سیاهههای مربوط به دیاسپورا استفاده خواهیم کرد.

logrotateپرونده جدیدی برای دیاسپور ایجاد کنید.

nano /etc/logrotate/diaspora

سپس خطوط زیر را اضافه کنید.

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

این کار باعث می شود تا هر هفته سیاههها را بچرخانید ، آنها را فشرده کرده و آنها را برای 52 هفته نگه دارید.

بروزرسانی

وقتی نوبت به روزرسانی دیپلمات رسیده است ، این مراحل را دنبال کنید.

ابتدا بسته های نصب شده را ارتقا دهید.

sudo yum update

کد منبع دیاسپور را با 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

سرانجام ، دیاسپورت را مجدداً شروع کنید.

systemctl restart diaspora.target


نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

تنظیم RethinkDB Cluster On CentOS 7

تنظیم RethinkDB Cluster On CentOS 7

مقدمه RethinkDB یک پایگاه داده NoSQL است که داده ها را به عنوان اسناد JSON ذخیره می کند. این یک زبان پرس و جو بسیار بصری است و از ویژگی های آن معمولا در دسترس است

نحوه نصب نسخه باز Vtiger CRM در CentOS 7

نحوه نصب نسخه باز Vtiger CRM در CentOS 7

Vtiger CRM یک نرم افزار محبوب مدیریت ارتباط با مشتری است که می تواند به بنگاهها در رشد فروش ، ارائه خدمات به مشتری و افزایش سود کمک کند. من

نحوه نصب کاناپه CMS 2.0 بر روی یک VPS CentOS 7 LAMP

نحوه نصب کاناپه CMS 2.0 بر روی یک VPS CentOS 7 LAMP

با استفاده از یک سیستم متفاوت؟ Couch CMS یک سیستم مدیریت محتوای منبع ساده و انعطاف پذیر ، آزاد و منبع باز (CMS) است که به طراحان وب اجازه می دهد تا طراحی کنند.

نحوه نصب SonarQube در CentOS 7

نحوه نصب SonarQube در CentOS 7

با استفاده از یک سیستم متفاوت؟ SonarQube یک ابزار منبع باز برای توسعه سیستم با کیفیت است. در جاوا نوشته شده است و چندین پایگاه داده را پشتیبانی می کند. فراهم می کند

نصب Netdata در CentOS 7

نصب Netdata در CentOS 7

با استفاده از یک سیستم متفاوت؟ Netdata یک ستاره در حال افزایش در زمینه نظارت بر معیارهای سیستم در زمان واقعی است. در مقایسه با سایر ابزارهای مشابه ، Netdata:

نحوه فعال سازی پشتیبانی HTTP / 2 در DirectAdmin (CentOS)

نحوه فعال سازی پشتیبانی HTTP / 2 در DirectAdmin (CentOS)

HTTP / 2 جدیدترین نسخه پروتکل HTTP است که از SPDY مستقر است. توسعه آن توسط Google آغاز شده است و HTTP / 2 تا حد زیادی بر اساس پایگاه کد است

نحوه نصب سرور Starbound در CentOS 7

نحوه نصب سرور Starbound در CentOS 7

با استفاده از یک سیستم متفاوت؟ در این آموزش ، Ill در مورد نحوه راه اندازی یک سرور Starbound در CentOS 7 توضیح می دهد. پیش نیازها: شما باید این بازی را روی خود داشته باشید

یک سرور چند نفره SA-MP San Andreas را در CentOS 6 تنظیم کنید

یک سرور چند نفره SA-MP San Andreas را در CentOS 6 تنظیم کنید

به یکی دیگر از آموزش های Vultr خوش آمدید. در اینجا ، نحوه نصب و اجرای سرور SAMP را یاد خواهید گرفت. این راهنما برای CentOS 6 نوشته شده است. پیش نیازهای مورد نیاز شما

Elgg را روی CentOS 7 نصب کنید

Elgg را روی CentOS 7 نصب کنید

با استفاده از یک سیستم متفاوت؟ Elgg یک موتور شبکه ای منبع باز است که امکان ایجاد محیط های اجتماعی از جمله شبکه های اجتماعی دانشگاه را فراهم می کند

نحوه نصب سرور RStudio در CentOS 7

نحوه نصب سرور RStudio در CentOS 7

RStudio Server نسخه وب RStudio است که مجموعه ای از ابزارهایی است که برای تسهیل کار برنامه نویسی با استفاده از زبان برنامه نویسی R طراحی شده است. در سه

نصب Bolt CMS در CentOS 7

نصب Bolt CMS در CentOS 7

Bolt یک CMS منبع باز است که به زبان PHP نوشته شده است. کد منبع Bolts در GitHub میزبانی شده است. این راهنما نحوه نصب Bolt CMS را در CentOS 7 Vult تازه نشان می دهد

نحوه نصب Elasticsearch در سرور Vultr CentOS 7

نحوه نصب Elasticsearch در سرور Vultr CentOS 7

Elasticsearch یک موتور جستجوی کامل و متن تحلیلی متن کامل است. به لطف تطبیق پذیری ، مقیاس پذیری و سهولت استفاده ، Elasticsearch گسترده تر است

Kubernetes With Kubeadm را در CentOS 7 مستقر کنید

Kubernetes With Kubeadm را در CentOS 7 مستقر کنید

بررسی اجمالی این مقاله به شما کمک می کند تا در هر زمان خوشه ای از Kubernetes را جمع کنید و با kubeadm در حال اجرا باشید. در این راهنما از دو سرور استفاده می شود

راه اندازی Sails.js برای توسعه در CentOS 7

راه اندازی Sails.js برای توسعه در CentOS 7

با استفاده از یک سیستم متفاوت؟ مقدمه Sails.js یک چارچوب MVC ��رای Node.js است ، شبیه به Ruby on Rails. این امر برای ایجاد برنامه های مدرن ver

پیکربندی BGP با استفاده از Quagga در Vultr (CentOS 7)

پیکربندی BGP با استفاده از Quagga در Vultr (CentOS 7)

Vultrs عملکرد IP فضای شما را امکان پذیر می سازد تا آزادی بی سابقه ای در اختصاص منابع IP شخصی شما به سرورهای cloud Vultr داشته باشید. ما کلی

نحوه نصب PufferPanel (کنترل پنل کنکوری رایگان) در CentOS 7

نحوه نصب PufferPanel (کنترل پنل کنکوری رایگان) در CentOS 7

مقدمه در این آموزش ، PufferPanel را در Vultr VPS ما نصب کنید. PufferPanel یک پانل کنترل با منبع آزاد و بصورت رایگان برای مدیریت شما است

ابزارهای نظارت بهتر برای اوبونتو و CentOS

ابزارهای نظارت بهتر برای اوبونتو و CentOS

معرفی سیستم های لینوکس به طور پیش فرض مانند top ، df و du با ابزارهای نظارتی ارسال می شوند که به نظارت بر فرایندها و فضای دیسک کمک می کنند. با این حال ، اغلب اوقات ، آنها به صورت طاقت فرسا هستند

دستگاه های خود را با استفاده از LibreNMS در CentOS 7 نظارت کنید

دستگاه های خود را با استفاده از LibreNMS در CentOS 7 نظارت کنید

با استفاده از یک سیستم متفاوت؟ LibreNMS یک سیستم نظارت بر شبکه منبع باز کاملاً برجسته است. از SNMP برای به دست آوردن داده ها از دستگاه های مختلف استفاده می کند. یک نوع

نحوه نصب Gitea در CentOS 7

نحوه نصب Gitea در CentOS 7

با استفاده از یک سیستم متفاوت؟ Gitea یک منبع کنترل جایگزین متن باز و خود میزبان است که توسط Git ساخته شده است. Gitea در Golang نوشته شده و هست

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد