Установите и разверните распределённую социальную сеть Mastodon на Ubuntu!
2020-11-29 · 1206 · 24 minСоциальные сети - это основная потребность, но ни одна компания в Китае не справилась с ней хорошо, иностранные социальные платформы нельзя использовать в Китае по разным причинам, и они не очень подходят для моих нужд, когда я бродил по Интернету, я обнаружил, что босс dimlau рекомендовал мой проект на своем [Mastodon] (https://tzcafe.com/@dimlau/105248413097460704), и нашел эту платформу такой забавной.
Эта статья представляет собой подробное руководство по установке, если вас беспокоит, вы можете напрямую использовать пример, который я построил: [Ivan Eagle 🦅 ] (https://1w1.in), если вы зарегистрировались в другом месте, пожалуйста, следуйте за мной: [Ящик замка] (https://1w1.in/@SaltyLeo).
Mastodon — это бесплатная децентрализованная распределенная социальная сеть с открытым исходным кодом. Его пользовательский интерфейс и работа похожи на Twitter, но вся сеть не управляется одной организацией, а представляет собой децентрализованную социальную сеть, состоящую из нескольких серверов, управляемых независимо разными операторами, обменивающимися данными на федеральном уровне.
* В этом много выбоин, запишите их, чтобы потом не опрокинуться. *
# Подготовка
Прежде всего, у вас должен быть VPS с памятью более 1 ГБ, если она меньше 1 ГБ, она будет сильно зависать, [Ivan Eagle 🦅 ] (https://1w1.in) развернут на 4C8G VPS.
Системная среда, на моей стороне Ubuntu 18.04 + LNMP.
У вас также должно быть доменное имя, которое должно быть разрешено для этого VPS, и сайт уже добавлен в LNMP.
Необязательный элемент: учетная запись электронной почты, в которой зарегистрирован поставщик услуг SMTP.
# Установите необходимое программное обеспечение
Это все, что вам нужно для установки мамонта.
apt-get install -y curl
curl -sL https://deb.nodesource.com/setup_12.x | бить-
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
Обновление apt
Следующий требуется установить на официальном сайте, и это шаттл.
apt-get install -y\
imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git \
g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf\
bison build-essential libssl-dev libyaml-dev libreadline-dev \
zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev \
redis-server redis-tools postgresql postgresql-contrib \
Yarn libidn11-dev libicu-dev libjemalloc-dev
# Установка Ruby
Добавьте учетную запись Mastodon в систему, прежде чем переключаться на нее.
adduser --disabled-login mastodon
SU - мастодонт
Установите rbenv и rbenv-build прямо сейчас:
Клонирование git https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv &&src/configure &&; make -C src
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec bash
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Чтобы установить Ruby:
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.6
Рбенв Глобал 2.6.6
Наконец, установите сборщик:
gem install bundler --no-document
После того, как этот шаг будет завершен, снова откройте окно SSH, и текущее окно SSH останется учетной записью Mastodon, потому что переключиться на переключение позже будет проблематично.
# Настройка базы данных PostgreSQL
Используйте окно ssh под только что открытой учетной записью root здесь. Переключитесь на выполнение команд psql пользователем PostgreSQL по умолчанию.
su - postgres
psql
Создайте базу данных Mastodon:
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ mastodon CREATEDB;
Запустите, когда закончите.
\q
# Установка Mastodon
Теперь, когда вы начинаете устанавливать Mastodon, теперь вы будете использовать окно ssh учетной записи Mastodon, которую вы ранее поддерживали без закрытия.
Если вы уже закрыли, переключитесь на учетную запись Mastodon, используя «su - mastodon» под пользователем root.
Получите исходный код:
компакт-диск
Git Clone https://github.com/tootsuite/mastodon.git Live & CD Live
#如果是国内服务器使用: Git Clone https://github.com.cnpmjs.org/tootsuite/mastodon.git Live и CD Live
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
Установите зависимости:
Развертывание конфигурации пакета 'true'
Конфигурация пакета без «теста разработки»
bundle install -j$(getconf _NPROCESSORS_ONLN)
#如果是国内服务器需要先修改 Источник YARN: https://registry.npm.taobao.org/ реестра Yarn Config Set
yarn install --pure-lockfile
Чтобы сгенерировать конфигурационный файл, выполните следующие действия:
RAILS_ENV=Production Bundle exec Rake Mastodon:Настройка
Я долго подбрасывал этот шаг, и подробно напишу, как его заполнить.
Доменное имя: # Введите адрес своего домена без http, косой черты, двоеточия и www
Вы хотите включить однопользовательский режим? # Н
Используете ли вы Docker для запуска Mastodon? # н
Хост PostgreSQL: /var/run/postgresql # ввод каретки
Порт PostgreSQL: 5432 # Возврат каретки
Имя базы данных PostgreSQL: mastodon_production # Enter
Имя пользователя PostgreSQL: mastodon # Enter
Пароль пользователя PostgreSQL: # Carriage Enter
Хост Redis: localhost # Enter
Порт Redis: 6379 # Enter
Пароль Redis: # Enter
Вы хотите отправлять электронные письма с локального хоста? # y
Отправить тестовое письмо с этой конфигурацией прямо сейчас? # н
Сохранить конфигурацию? # y
Подготовить базу данных сейчас? # y
Скомпилировать активы сейчас? # y
Вы хотите сразу создать пользователя с правами администратора? # y
После завершения вас спросят, хотите ли вы создать учетную запись администратора и ввести ее в соответствии с вашими потребностями. Система займет некоторое время для компиляции и, наконец, предоставит вам имя учетной записи и пароль, не забудьте сохранить пароль для вашего удобства.
# Добавить услугу
Используйте окно ssh учетной записи root здесь. Выполните следующую команду, чтобы скопировать Mastodon в систему:
cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/
Чтобы подключить и запустить услугу, выполните следующие действия:
systemctl daemon-reload
systemctl start mastodon-web mastodon-sidekiq mastodon-streaming
systemctl enable mastodon-web mastodon-sidekiq mastodon-streaming
# Настройка Nginx
Этот шаг является громоздким, в зависимости от того, как вы устанавливаете Nginx. Я использую установку LNMP в один клик, поэтому следующее руководство применимо только к версии установки LNMP в один клик Nginx.
Используйте Winscp или другой sftp-инструмент, чтобы открыть конфигурационный файл '/usr/local/nginx/conf/vhost/.conf' <你的域名>и изменить его содержимое в соответствии с этим конфигурационным файлом: '/home/mastodon/live/dist/nginx.conf'. Я думаю, что немного хлопотно говорить о пошаговой описании, поэтому я просто помещу здесь свой профиль на сайте.
map $http_upgrade $connection_upgrade {
обновление по умолчанию;
'' закрыть;
}
Бэкенд основной ветки разработки {
сервер 127.0.0.1:3000 fail_timeout=0;
}
Восходящая потоковая передача {
сервер 127.0.0.1:4000 fail_timeout=0;
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=CACHE:10m inactive=7d max_size=1g;
сервер
{
слушать 80;
#listen [::]:80;
server_name 1w1.in ;
корень /home/mastodon/live/public;
location /.well-known/acme-challenge/ { разрешить все; }
location / { return 301 https://$host$request_uri; }
}
сервер
{
Прослушивайте 443 SSL http2;
#listen [::]:443 SSL http2;
server_name 1w1.in ;
индекс индекса.html индекс.htm индекс.php по умолчанию.html по умолчанию.htm по умолчанию.php;
корень /home/mastodon/live/public;
ssl_certificate ###
ssl_certificate_key ###
ssl_session_timeout 5м;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers далее;
ssl_ciphers "###";
ssl_session_cache встроенный:1000 общий:SSL:10m;
# openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
keepalive_timeout 70;
отправить файл вкл.;
client_max_body_size 80м;
gzip вкл.;
gzip_disable «msie6»;
gzip_vary далее;
gzip_proxied любой;
gzip_comp_level 6;
gzip_buffers 16 8к;
gzip_http_version 1.1;
gzip_types текст/обычный текст/приложение css/приложение json/текст javascript/xml-приложение/xml-приложение/xml+rss-текст/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, неизменяемый";
add_header Strict-Transport-Security "max-age=31536000";
try_files $uri @proxy;
}
location /sw.js {
add_header Cache-Control "public, max-age=0";
add_header Strict-Transport-Security "max-age=31536000";
try_files $uri @proxy;
}
location @proxy {
proxy_set_header Хозяин $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_pass_header сервер;
proxy_pass http://backend;
proxy_buffering дальше;
proxy_redirect выключен;
proxy_http_version 1.1;
proxy_set_header Обновление $http_upgrade;
proxy_set_header Подключение $connection_upgrade;
proxy_cache КЭШ;
proxy_cache_valid 200 7д;
proxy_cache_valid 410 24 часа;
proxy_cache_use_stale ошибка тайм-аута обновления http_500 http_502 http_503 http_504;
add_header X-Cached $upstream_cache_status;
add_header Strict-Transport-Security "max-age=31536000";
tcp_nodelay далее;
}
location /api/v1/streaming {
proxy_set_header Хозяин $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_pass http://streaming;
proxy_buffering выключен;
proxy_redirect выключен;
proxy_http_version 1.1;
proxy_set_header Обновление $http_upgrade;
proxy_set_header Подключение $connection_upgrade;
tcp_nodelay далее;
}
error_page 500 501 502 503 504 /500.html;
}
Просто следуйте этому изменению.
# Настройка SMTP
*Если вы не собираетесь использовать свой экземпляр для других пользователей, вам не нужно настраивать этот шаг для однопользовательского режима. *
Измените '/home/mastodon/live/.env.production', чтобы добавить следующие поля.
SMTP_TLS=Истина
SMTP_SERVER=SMTP-домен, предоставленный поставщиком услуг
SMTP_PORT=465
SMTP_LOGIN=почтовый ящик
SMTP_PASSWORD=Пароль электронной почты
SMTP_AUTH_METHOD= равнина
SMTP_OPENSSL_VERIFY_MODE=нет
SMTP_FROM_ADDRESS=почтовый ящик
После закрытия сохранения файла перезапустите экземпляр с помощью 'systemctl restart mastodon*'.
# Полнотекстовый поиск
Вот установить на него ElasticSearch, официальный рекомендуемый метод слишком хлопотный, мы все равно напрямую устанавливаем версию docker.
curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh &&& docker pull elasticsearch:6.7.0
компакт-диск/
mkdir -p mnt/elasticsearch
CD mnt/elasticsearch
mkdir config
Мастер МКДИР
Мкдир Раб
CHMOD 777 Мастер
chmod 777 slave
Конфигурация компакт-диска
Нажмите master.yml
Коснитесь slave.yml
nano master.yml
Вставьте следующие параметры в открытый редактор nano.
cluster.name: elasticsearch-cluster
node.name: мастер
network.bind_host: 0.0.0.0
network.publish_host: 127.0.0.1
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301"]
Изменение лимита потока
nano /etc/sysctl.conf
#添加这个
vm.max_map_count=262144
#保存后执行这个命令
sysctl -p
Запуск ES
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 -v /mnt/elasticsearch/config/master.yml:/usr/share/elasticsearch/config/ elasticsearch.yml -v /mnt/elasticsearch/master:/usr/share/elasticsearch/data --name es-master elasticsearch:6.7.0
В '/home/mastodon/live/.env.production' добавьте следующие поля.
ES_ENABLED=Истина
ES_HOST=локальный хост
ES_PORT=9200
Подождите некоторое время, потому что docker запускается не очень быстро, даже мой 4C8G VPS занимает около 10 секунд, пока вы не воспользуетесь командой curl 127.0.0.1:9200 и не успешно запустите следующий вывод вашего ElasticSearch.
После запуска используйте следующую команду для создания и обновления индекса ElasticSearch:
RAILS_ENV=Production Bundle exec Rake Chewy:Upgrade
RAILS_ENV=Production Bundle Exec Rake Chewy:sync
Время выполнения вышеуказанных команд положительно коррелирует с производительностью вашего сервера и количеством отправленных в экземпляре сигналов.
Когда все будет сделано, используйте 'systemctl restart mastodon*' для перезагрузки экземпляра.
# Постскриптум
На данный момент все это установлено, и вам нужно немного подождать, пока сайт откроется, потому что mastodon-web все еще немного медленно запускается. Я думаю, что личное использование не должно быть таким хлопотным в установке и развертывании, просто найдите надежный экземпляр для регистрации учетной записи и использования. Добро пожаловать в мой развернутый экземпляр [Ivanhawk 🦅 ] (https://1w1.in) для регистрации учетной записи.
Кстати, мое удостоверение личности находится [в ящике замка] (https://1w1.in/@SaltyLeo), не забудьте проследить 🙂.
Теги :
# жизньУведомление об авторском праве :
Эта статья написана SaltyLeo. Если в содержимом есть неточности, пожалуйста, оставьте комментарий. При цитировании или публикации этой статьи, пожалуйста, придерживайтесь условий лицензии CC BY-NC-SA: указание авторства, некоммерческое использование и совместное распространение в том же виде!Комментарий :
Читать далее :
Ускорьте загрузку с Transit
Очень прост в использовании, по крайней мере, на данный момент он может загружаться на полной скорости. Скорость загрузки широкополосного доступа 100M составляет 10M/s, что уже очень хорошо.
Терминал вещь хорошая, и с этим нужно сталкиваться каждый день.Если он будет слишком некрасивым, то это повлияет на продолжительность жизни.
Общие симптомы депрессии включают постоянное плохое настроение, потерю интереса и удовольствия, а также изменения сна и аппетита.
Среди посетителей, чей язык английский, мой сайт в основном остается только на 4 секунды, а показатель отказов составляет 95,4, но на него также приходится 16,5 от общего числа посетителей. Я человек, который очень любит критиковать, раз уж GA мне так сильно напомнила, то буду оптимизировать мультиязычную поддержку.
Популярные теги
Другие языки
Информация о сайте
Теги: 236
Просмотры страниц: 12,890,151
загрузка занимает время: 20.87 ms
Ver : 4.0.1