Инсталирайте Plesk на CentOS 7
Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни
Mastodon е самостоятелно хостван микроблог и сървър за социални мрежи с отворен код. Той предоставя функции, подобни на Twitter; но вместо да се контролира от една компания, това е федерация от децентрализирани сървъри, които се свързват заедно, за да създадат цяла система от социални мрежи. Малък екип може да стартира своя сървърен екземпляр на Mastodon, за да комуникира помежду си, както и с другите потребители на федералната общност. Освен това ви позволява да избирате свои собствени политики за поверителност и модериране и да дефинирате как общувате с други потребители на различни сървъри. Съдържанието, което отделният потребител създава и за което се абонира, се хоства на сървъра, където е създаден неговият акаунт. Потребителите могат да се следват един друг, дори ако не са хоствани на един и същ сървър. Всеки потребител в мрежата на Mastodon има своето уникално име или идентификатор, който е в@[email protected]
формат. Клиентските приложения за Mastodon са достъпни за почти всички платформи.
Забележка: Ще използваме social.example.com
като име на домейн, използвано за екземпляра на Mastodon. Заменете всички поява на social.example.com
с вашето действително име на домейн, което искате да използвате за вашето приложение Mastodon .
Актуализирайте базовата си система, като използвате ръководството Как да актуализирате CentOS 7 , ако е необходимо. След като вашата система бъде актуализирана, продължете да инсталирате необходимите зависимости.
Mastodon изисква няколко зависимости, за да работи. Инсталирайте най-новата версия на Node.js
, която ще се използва за компилиране на JavaScript файловете.
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum -y install nodejs
Инсталирайте Yarn
, което е бързо, надеждно и сигурно приложение за управление на зависимости. Ще използваме Yarn, за да инсталираме зависимостите на Node.js.
sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
sudo yum -y install yarn
Инсталирайте Redis
. Redis е приложение за съхранение и кеширане на структура от данни в паметта.
sudo yum -y install redis
Стартирайте Redis и го активирайте да стартира автоматично при стартиране.
sudo systemctl start redis
sudo systemctl enable redis
Инсталирайте още няколко зависимости, които са необходими за изграждане на Ruby
инсталацията и други зависимости.
sudo yum -y install ImageMagick git libxml2-devel libxslt-devel gcc bzip2 openssl-devel zlib-devel gdbm-devel ncurses-devel autoconf automake bison gcc-c++ libffi-devel libtool patch readline-devel sqlite-devel glibc-headers glibc-devel libyaml-devel libicu-devel libidn-devel
Ще трябва също да инсталирате инструментите за разработка.
sudo yum -y groupinstall 'Development Tools'
PostgreSQL е система за обектна релационна база данни. Ще трябва да добавите хранилището на PostgreSQL към вашата система, тъй като yum
хранилището по подразбиране съдържа по-стара версия на приложението.
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Инсталирайте сървъра на база данни PostgreSQL.
sudo yum -y install postgresql96-server postgresql96-contrib postgresql96-devel
Инициализирайте базата данни.
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
Редактирайте pg_hba.conf
файла, за да активирате MD5
базирано удостоверяване.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
Намерете следните редове и променете peer
на trust
и ident
на md5
.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
След като бъде актуализирана, конфигурацията трябва да изглежда така.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Стартирайте PostgreSQL сървъра и го активирайте да стартира автоматично при стартиране.
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
Променете паролата за потребителя на PostgreSQL по подразбиране.
sudo passwd postgres
Влезте в обвивката като PostgreSQL
потребител.
sudo su - postgres
Създайте нов PostgreSQL
потребител за Mastodon.
createuser mastodon
PostgreSQL предоставя psql
обвивката за изпълнение на заявки към базата данни. Превключете към обвивката на PostgreSQL, като стартирате.
psql
Задайте парола за новосъздадения потребител за база данни Mastodon и дайте разрешение за добавяне на нови бази данни.
ALTER USER mastodon WITH ENCRYPTED password 'DBPassword' CREATEDB;
Заменете DBPassword
със силна парола. Излезте от psql
обвивката:
\q
Превключете към sudo
потребителя.
exit
Инсталирайте още няколко необходими PostgreSQL зависимости.
sudo yum -y install libpqxx-devel protobuf-devel
Създайте нов потребител за Mastodon и преминете към новосъздадения потребител.
sudo adduser mastodon -d /opt/mastodon
sudo su - mastodon
Ще инсталираме най-новата версия на Ruby с помощта на Ruby Version Manager или RVM. Използва се за инсталиране и управление на множество версии на Ruby.
Добавете GPG
ключа на RVM към вашия сървър.
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
Инсталирайте RVM.
curl -sSL https://get.rvm.io | bash -s stable
source /opt/mastodon/.rvm/scripts/rvm
Сега извлечете списъка с наличните версии на Ruby.
rvm list known
Ще видите следния изход.
[mastodon@vultr ~]$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.7]
[ruby-]2.3[.4]
[ruby-]2.4[.1]
ruby-head
...
Сега инсталирайте най-новата версия на Ruby от списъка.
rvm install 2.4
Използвайте инсталираната версия на Ruby.
rvm use 2.4
Трябва да можете да проверите неговата версия.
ruby -v
Трябва да видите подобен изход.
[mastodon@vultr ~]$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
Install bundler
, който е мениджърът на зависимости за приложението Ruby.
gem install bundler
Сега превключете към домашната директория на потребителя на Mastodon и клонирайте файловете на хранилището на приложението от Github.
cd ~
git clone https://github.com/tootsuite/mastodon.git app
Move the application directory and checkout the latest releases of the application.
cd ~/app
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
Configure the bundle
to use a custom path for the PostgreSQL configuration. Also, install the Ruby dependencies.
bundle config build.pg --with-pg-config=/usr/pgsql-9.6/bin/pg_config
bundle install --deployment --without development test
Install the Node.js dependencies using Yarn.
yarn install --pure-lockfile
You will need to create a configuration file for the Mastodon application. Copy the sample configuration file.
cd ~/app
cp .env.production.sample .env.production
Before editing the file, generate three different secrets
by running the following command three times. You will need to set these secrets in the configuration file.
RAILS_ENV=production bundle exec rake secret
You should get a similar output.
[mastodon@vultr app]$ RAILS_ENV=production bundle exec rake secret
0f17dab1cf4a07f6fac671ecd5815adcb59d012b338dae9350c66402250c6c729dccd6182b1a8f75c4fde55453ce283ea66e07ed4466cdc6d4d6974c98512967
Edit the configuration file using the nano
editor.
nano .env.production
Find the following lines and change the values accordingly.
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
Provide the database credentials, according to database user you have created during installation of PostgreSQL. Provide any name for database name as Mastodon will automatically create the database with the name you provide.
DB_HOST=127.0.0.1
DB_USER=mastodon
DB_NAME=mastodon
DB_PASS=DBPassword
DB_PORT=5432
Set the domain name of the application.
LOCAL_DOMAIN=social.example.com
Find the following lines and set its value to the secrets you have generated.
PAPERCLIP_SECRET=
SECRET_KEY_BASE=
OTP_SECRET=
Save the file and exit from the editor.
Now, run the following command to generate Web Push VAPID
keys. You will get an error while generating the Web Push VAPID keys if you have not set the secrets in the configuration file mentioned above.
RAILS_ENV=production bundle exec rake mastodon:webpush:generate_vapid_key
You should see the following output.
[mastodon@vultr app]$ RAILS_ENV=production bundle exec rake mastodon:webpush:generate_vapid_key
VAPID_PRIVATE_KEY=DCMQdSPkdm-mepsNh4F3suc-UIvsABCvwFd03jSVemM=
VAPID_PUBLIC_KEY=BMMVcVXmqnV0C8S_ybZ7eQH-MXBEX2exqfdPSYQiMMUF2rRxfhoEtVF931i26ebMgmslHB_nvVadOdcBPhaFEjw=
Open the configuration file again and set the generated keys in their respective lines.
VAPID_PRIVATE_KEY=
VAPID_PUBLIC_KEY=
Finally, provide the information of your SMTP mail server so that the application can send emails to users. It is important that you use a working SMTP server as, upon new registration, users will be sent an email with an activation link. New users will have to click on the activation link to activate their account.
SMTP_SERVER=mail.example.com
SMTP_PORT=456
[email protected]
SMTP_PASSWORD=MailPassword
[email protected]
SMTP_TLS=true
Once done, save the file and exit from the editor. You have done the basic configuration of Mastodon instance.
Setup the PostgreSQL database for the first time.
RAILS_ENV=production bundle exec rails db:setup
First, the above command will create a new database with the name mentioned in the configuration. Then, it will write the database according to the configuration.
Precompile all CSS
and JavaScript
files to create the cache.
RAILS_ENV=production bundle exec rails assets:precompile
Mastodon is now installed on your server. Now you will need to setup an Nginx
web server to serve the application and setup Systemd
services to run the Mastodon services.
From now on, we will need to execute the commands using the sudo
user.
We will use the Nginx web server as a reverse proxy to serve the application to the users. We will also obtain and install SSL certificates from Let's Encrypt.
Install Nginx and Certbot. Certbot is the official certificates issuing client for Let's Encrypt CA.
sudo yum -y install nginx certbot
Adjust your firewall setting to allow the standard HTTP
and HTTPS
ports through the firewall as Certbot needs to make an HTTP connection for verifying the domain authority.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Note: To obtain certificates from Let's Encrypt CA, you must ensure that the domain for which you wish to generate the certificates is pointed towards the server. If not, then make the necessary changes to the DNS records of your domain and wait for the DNS to propagate before making the certificate request again. Certbot checks the domain authority before providing the certificates.
Now use the builtin web server in Certbot to generate the certificates for your domain.
sudo certbot certonly --standalone -d social.example.com
The generated certificates are likely to be stored in the /etc/letsencrypt/live/social.example.com/
directory. The SSL certificate will be retained as fullchain.pem
and the private key will be saved as privkey.pem
.
Let's Encrypt certificates expire in 90 days, so it is recommended to set up auto renewal for the certificates using Cron jobs. Cron is a system service which is used to run periodic tasks.
Open the cron job file.
sudo crontab -e
Add the following line.
0 0 * * * /usr/bin/certbot renew --quiet
The above cron job will run daily at midnight. If the certificate is due for expiry, it will automatically renew the certificates.
Now create a new Nginx server block for the Mastodon site.
sudo nano /etc/nginx/conf.d/mastodon.conf
Populate the file with this.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
listen [::]:80;
server_name social.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name social.example.com;
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_certificate /etc/letsencrypt/live/social.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/social.example.com/privkey.pem;
keepalive_timeout 70;
sendfile on;
client_max_body_size 0;
root /opt/mastodon/app/public;
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
add_header Strict-Transport-Security "max-age=31536000";
location / {
try_files $uri @proxy;
}
location ~ ^/(emoji|packs|system/accounts/avatars|system/media_attachments/files) {
add_header Cache-Control "public, max-age=31536000, immutable";
try_files $uri @proxy;
}
location @proxy {
proxy_set_header Host $host;
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 Proxy "";
proxy_pass_header Server;
proxy_pass http://127.0.0.1:3000;
proxy_buffering off;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
tcp_nodelay on;
}
location /api/v1/streaming {
proxy_set_header Host $host;
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 Proxy "";
proxy_pass http://127.0.0.1:4000;
proxy_buffering off;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
tcp_nodelay on;
}
error_page 500 501 502 503 504 /500.html;
}
Be sure to change the domain name and the path to the SSL certificates.
Now you can start the Nginx web server and enable it to start at boot automatically.
sudo systemctl start nginx
sudo systemctl enable nginx
You will also be required to allow port 4000
through the firewall as the port will be providing the streaming API service.
sudo firewall-cmd --permanent --zone=public --add-port=4000/tcp
sudo firewall-cmd --reload
Provide the execution permissions for the Mastodon directory.
sudo chmod +x /opt/mastodon
Ще трябва да стартирате три различни процеса, за да стартирате успешно сървъра на Mastodon. Използването на услугата Systemd ще гарантира, че сървърът на Mastodon се стартира автоматично при стартиране и неуспехи в процеса.
Създайте нова услуга systemd, за да стартирате уеб услугата Mastodon. Тази услуга ще стартира вградения уеб сървър на порт 3000
.
sudo nano /etc/systemd/system/mastodon-web.service
Попълнете файла със следното съдържание.
[Unit]
Description=Mastodon Web Service
After=network.target
[Service]
Type=simple
User=mastodon
Group=mastodon
WorkingDirectory=/opt/mastodon/app
Environment="RAILS_ENV=production"
Environment="PORT=3000"
ExecStart=/bin/bash -lc 'bundle exec puma -C config/puma.rb'
TimeoutSec=15
Restart=always
[Install]
WantedBy=multi-user.target
Създайте втората услуга Systemd, за да стартирате услугата за фонова опашка на Mastodon. Услугата Mastodon queue се грижи за всички фонови задачи.
sudo nano /etc/systemd/system/mastodon-queue.service
Попълнете файла със следното съдържание.
[Unit]
Description=Mastodon Queue Service
After=network.target
[Service]
Type=simple
User=mastodon
WorkingDirectory=/opt/mastodon/app
Environment="RAILS_ENV=production"
Environment="DB_POOL=5"
ExecStart=/bin/bash -lc 'bundle exec sidekiq -c 5 -q default -q mailers -q pull -q push'
TimeoutSec=15
Restart=always
[Install]
WantedBy=multi-user.target
Накрая създайте последния файл на услугата за услугата API за стрийминг на Mastodon.
sudo nano /etc/systemd/system/mastodon-api.service
Попълнете файла със следното съдържание.
[Unit]
Description=Mastodon Streaming
After=network.target
[Service]
Type=simple
User=mastodon
WorkingDirectory=/opt/mastodon/app
Environment="NODE_ENV=production"
Environment="PORT=4000"
ExecStart=/bin/npm run start
TimeoutSec=15
Restart=always
[Install]
WantedBy=multi-user.target
Активирайте услугите на Mastodon да стартират автоматично при стартиране.
sudo systemctl enable mastodon-web mastodon-queue mastodon-api
За да стартирате услугите на Mastodon, можете да стартирате това.
sudo systemctl start mastodon-web mastodon-queue mastodon-api
За да проверите състоянието на услугите, можете да стартирате това.
sudo systemctl status mastodon-web mastodon-queue mastodon-api
Вече можете да получите достъп до приложението Mastodon, като отидете на https://social.example.com
. Създайте нов потребителски акаунт на вашия сървър и потвърдете потребителския акаунт, като отворите връзката, изпратена в имейла. За да предоставите администраторски права на акаунта, който току-що създадохте, стартирайте това.
sudo su - mastodon && cd ~/app
RAILS_ENV=production bundle exec rails mastodon:make_admin USERNAME=<user_name>
Заменете <user_name>
с действителното потребителско име, което сте използвали за създаване на акаунта в интерфейса на Mastodon.
Вашият екземпляр на Mastodon вече е инсталиран и конфигуриран да работи. Започнете, като поканите приятелите си да се присъединят към вашия екземпляр и проучете функциите, предоставени от Mastodon. Можете да използвате сайта си за социални мрежи в мобилно устройство, като изтеглите някое от приложенията, налични за различни платформи.
Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни
Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне
Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте
VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате
Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент
Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока
Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже
Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca
Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място
Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати
Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие и вашият клиент
Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и
Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер
В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва
YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране
Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е
Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация
Много системни администратори управляват големи количества сървъри. Когато файловете трябва да бъдат достъпни на различни сървъри, влизането във всеки от тях поотделно ок
Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou
Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.
Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.
Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.
Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.
Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.
Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…
Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.
Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.
Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.
В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.
Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече