Как установить свой собственный федеративный Twitter с Pleroma

Pleroma Twitter Featured

Микроблоггинг — это замечательный способ выразить свои мысли. Он короткий, лаконичный и приятный. В этом отношении Twitter был одной из самых популярных платформ для микроблоггинга в мире. Однако полагаться на эту конкретную компанию для своих нужд в микроблоггинге может быть не лучшим решением для всех.

К счастью, есть альтернативы, такие как Pleroma, который является самохостингом Twitter. Это легкая федеративная платформа для микроблоггинга. Использование федерации позволяет платформе взаимодействовать с другими федеративными инстанциями, что означает, что вам не нужно собирать много людей для своего собственного частного Twitter, чтобы начать делиться информацией. Эта статья призвана помочь вам начать работу с Pleroma.

Содержание

  • Проблема с Twitter
  • Что такое федерация и как она работает
  • Как установить Pleroma
    1. Настройте свои DNS-записи A и AAAA
    1. Получите зависимости Pleroma
    1. Создайте пользователя Pleroma
    1. Скачайте Pleroma
    1. Подготовьте и установите Pleroma
    1. Настройте установку Pleroma
    1. Конфигурации, специфичные для медиа
    1. Завершите настройку Pleroma
    1. Запустите базу данных Pleroma
    1. Запустите свой сервер Pleroma
    1. Финальные настройки
  • Часто задаваемые вопросы

Также читайте: Топ-7 дистрибутивов на базе Debian, которые стоит попробовать, если вы хотите альтернативу Ubuntu

Проблема с Twitter

Twitter известен тем, что случайным образом блокирует аккаунты за неопределенные нарушения политики. Если вы человек, который накопил годы постов в Twitter, потеря этой истории может быть разрушительной. Более того, Twitter также известен тем, что передает данные пользователей как рекламодателям, так и государственным учреждениям.

Это делает Twitter небезопасной платформой для людей, которые хотят иметь полный контроль над своими данными, или для журналистов, которые освещают спорные темы.

Что такое федерация и как она работает

Одно из решений этой проблемы — создание социальной сети через федерацию серверов. Это система, в которой вы позволяете нескольким серверам, работающим на аналогичном программном обеспечении, взаимодействовать друг с другом прозрачно.

Из-за этого любой федеративный сервер может действовать как узел для всей сети, где вы можете получать доступ и участвовать с другими серверами.

Pleroma Server 03 Federated Network

В свою очередь, это создает устойчивую экосистему, которая может легко адаптироваться к любым обстоятельствам. Например, если сервер Pleroma выйдет из строя, это не остановит федеративную сеть Pleroma. Это может уменьшить количество постов в сети, но другие серверы все равно смогут взаимодействовать друг с другом.

Также читайте: Как установить Debian через Интернет

Как установить Pleroma

Pleroma требует ряда вещей, прежде чем вы сможете начать его настройку:

  • Во-первых, вам нужно иметь общедоступную машину. Это может быть либо машина в вашем доме, которую вы можете перенаправить, либо VPS, который вы приобрели у провайдера.
  • Кроме того, если вы используете VPS для установки Pleroma, вам нужно иметь доступ root к этому VPS. Это связано с тем, что вам нужно будет установить пакеты, которые Pleroma требует для правильной работы.
  • Наконец, вам нужно иметь доменное имя. Это потому, что certbot, утилита SSL-сертификатов, потребует доменное имя для генерации сертификата для вашей инстанции Pleroma.

С учетом этого, этот гид будет сосредоточен на установке Pleroma на VPS на базе Debian от Digitalocean.

1. Настройте свои DNS-записи A и AAAA

Перед тем как начать, разумно сначала связать ваше доменное имя с IP-адресом вашего VPS.

Pleroma Server 05 Sample Dns Record

Это гарантирует, что любая команда, которая ссылается на ваше доменное имя ниже, будет правильно разрешена. Таким образом, это становится особенно полезным, как только вы настроите свои SSL-сертификаты позже.

  1. Чтобы связать ваше доменное имя с IP-адресом вашего VPS, вам нужно отредактировать DNS-запись вашего доменного имени. Хотя вы можете использовать другую службу регистратора доменных имен, чем я, процесс связывания вашего доменного имени с адресом вашего VPS в основном остается тем же.
  2. В моем случае я связал свое доменное имя: yetanotherpleromaserver.xyz с моим VPS Digitalocean через Namesilo. Для этого я сначала получил доступ к окну управления доменами Namesilo.

Pleroma Server 06 Domain Manager

  1. Отсюда вам нужно щелкнуть по доменному имени. Это откроет настройки для этого конкретного домена.
  2. Далее нажмите на ссылку “DNS Records”. Это покажет все доступные DNS-записи для вашего доменного имени.

Pleroma Server 38 Dns Records 2

  1. После этого я добавил ресурс “A” в свою DNS-запись, нажав на ссылку “A” в окне “Добавить/Редактировать ресурс” на странице записей Namesilo.

Pleroma Server 08 Highlight A Record

  1. С этого момента мне нужно было только добавить IPv4-адрес моего VPS Digitalocean.

Pleroma Server 09 Added A Record

  1. Процесс добавления записи “AAAA” также такой же. Однако вместо нажатия на ссылку “A” я буду нажимать на ссылку “AAAA”. Кроме того, вместо добавления IPv4-адреса я добавлю IPv6-адрес.

Pleroma Server 10 Added Aaaa Record

Также читайте: 5 лучших дистрибутивов Linux-Libre для лучшей безопасности

2. Получите зависимости Pleroma

Следующее, что вам нужно сделать, это скачать все пакеты, которые требуются Pleroma. Как обсуждалось выше, я собираюсь выделить процесс установки только для дистрибутивов Linux на базе Debian и Ubuntu. Таким образом, я буду использовать apt для установки всех необходимых пакетов.

С учетом этого, Pleroma зависит от трех основных программ: postgresql, elixir и erlang. Поэтому вам нужно установить эти программы, а также несколько других, которые будут дополнять эти три в выполнении их работы.

Для этого вы можете выполнить следующую команду:

sudo apt install git build-essential postgresql postgresql-contrib cmake libmagic-dev elixir erlang-dev erlang-nox nginx certbot

Pleroma Server 11 Installing Packages

3. Создайте пользователя Pleroma

С этим завершено, следующим шагом будет создание учетной записи пользователя “pleroma”. Это учетная запись, которую вы будете использовать для загрузки и установки пакета Pleroma. Делая это таким образом, вы гарантируете, что программа Pleroma не будет иметь никаких прав суперпользователя в вашей системе.

Для этого вы можете выполнить следующую команду:

sudo useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma
  • Опция -r установит пользователя “pleroma” как системную учетную запись, а не как пользовательскую учетную запись.
  • Кроме того, опция -s установит оболочку входа для этого пользователя как “false”. Это гарантирует, что пользователь pleroma сам по себе не сможет выполнять никакие команды из оболочки.
  • С другой стороны, флаги -m и -d устанавливают домашний каталог для пользователя “pleroma”. Флаг -m явно устанавливает учетную запись с домашним каталогом, а флаг -d указывает, что этот каталог должен указывать на “ /var/lib/pleroma”.
  • Наконец, флаг -U создает группу пользователей с тем же именем и добавляет вновь созданного пользователя Pleroma в эту группу.

Pleroma Server 12 Add Pleroma User

4. Скачайте Pleroma

Теперь вы можете скачать пакет Pleroma из их репозиториев. Для этого вам нужно сначала создать каталог, в который будут загружены файлы:

sudo mkdir -p /opt/pleroma  
sudo chown -R pleroma:pleroma /opt/pleroma
  • Первая команда создаст каталог “pleroma”, в который вы будете загружать все файлы для программы.
  • Вторая команда, с другой стороны, передаст право собственности на эту папку от root к pleroma. Это позволит pleroma читать и записывать в эту папку без каких-либо проблем.

Pleroma Server 13 Create Directory

После этого следующим шагом будет загрузка исходного кода Pleroma. Для этого вам нужно использовать git:

sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma

Pleroma Server 14 Git Clone

5. Подготовьте и установите Pleroma

Теперь вы можете перейти в каталог /opt/pleroma, чтобы начать процесс установки программы:

cd /opt/pleroma

Оттуда вам нужно запустить программу Mix, чтобы загрузить все дополнительные зависимости для Pleroma. Для этого вы можете выполнить следующую команду:

sudo -Hu pleroma mix deps.get

Pleroma Server 15 Get Deps

После этого вы можете продолжить компиляцию и установку Pleroma. Для этого вам нужно выполнить только одну команду:

sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen

Эта команда сделает три вещи:

  • Во-первых, опция MIX_ENV=prod установит переменную окружения программы на целевую производственную настройку. Это означает, что программа не будет содержать никаких инструментов и файлов для разработки.
  • Опция gen создаст файл конфигурации, который нацелен на переменную окружения, которую вы предоставили.
  • Наконец, эта команда также скомпилирует и установит Pleroma из его исходного кода. Из-за этого этот процесс займет некоторое время в зависимости от аппаратного обеспечения, на котором вы его запускаете.

Pleroma Server 16 Install And Compile Pleroma

Также читайте: Как исправить зацикливание входа в Ubuntu

6. Настройте установку Pleroma

Как только Pleroma завершит компиляцию, он попросит вас предоставить некоторую информацию о вашем сервере.

  1. Во-первых, ему нужно будет доменное имя, которое вы хотите использовать для программы. В моем случае я использовал свое доменное имя: “yetanotherpleromaserver.xyz”.

Pleroma Server 17 Domain Name Config

  1. Отсюда скрипт конфигурации спросит, какое имя вы хотите для вашего сервера Pleroma. В моем случае я использовал то же имя: “Yet Another Pleroma Server” для своего сервера.

Pleroma Server 18 Server Name

  1. Далее введите свой адрес электронной почты администратора. Это должен быть правильный адрес электронной почты, который может получать и отправлять электронные письма.

Pleroma Server 19 Admin Email

  1. Теперь выберите, хотите ли вы, чтобы ваша инстанция Pleroma была доступна для поисковых систем. Это полезно, если вы хотите создать публичную инстанцию Pleroma, к которой могут присоединиться и войти другие люди. В моем случае я хотел, чтобы этот сервер был частным, поэтому я выбрал “n”.

Pleroma Server 21 Search Engine Indexing

  1. После этого скрипт спросит, хотите ли вы сохранить свою конфигурацию в файле базы данных. В большинстве случаев вы захотите выбрать “да” здесь и выбрать параметры по умолчанию, которые он предложит.

Pleroma Server 22 Local Database

  1. Наконец, скрипт потребует от вас добавить некоторые детали о том, на каком порту и адресе слушать. Если вы устанавливаете Pleroma на той же машине, на которой вы его настраиваете, безопасно оставить значения по умолчанию.

7. Конфигурации, специфичные для медиа

  1. Теперь скрипт конфигурации потребует от вас выбрать, где вы хотите сохранить медиафайлы, которые будут загружены на сервер. Аналогично вышеуказанным настройкам, безопасно оставить их по умолчанию.

  2. Далее решите, хотите ли вы удалить любые геолокации из EXIF-данных фотографий, которые вы получите. Это полезно, если вы хотите сохранить конфиденциальность загрузчика. Поскольку я буду использовать это только как частную инстанцию, я выбрал “нет” здесь.

  3. Кроме того, вам нужно будет решить, хотите ли вы анонимизировать имена файлов загружаемых файлов. Это особенно полезно, если вы хотите удалить любую ассоциацию с загрузчиком и тем, что они загрузили. В моем случае я также выбрал “нет” здесь.

  4. Наконец, скрипт конфигурации позволит вам выбрать, хотите ли вы создать несколько копий файлов, загружаемых на ваш сервер. В моем случае я выбрал “нет”.

8. Завершите настройку Pleroma

  1. Теперь вы можете просмотреть свой файл конфигурации. Он находится в “ /opt/pleroma/config/generated_config.exs”. Вы можете использовать less, чтобы просмотреть его:
less /opt/pleroma/config/generated_config.exs
  1. Чтобы завершить эту конфигурацию, вам нужно переименовать этот файл в “prod.secret.exs”. Вы можете сделать это, выполнив следующую команду:
sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs}

Pleroma Server 28 Config Folder

Также читайте: Что такое сеть Yggdrasil и как ее установить

9. Запустите базу данных Pleroma

  1. Следующее, что вам нужно сделать, это запустить программу базы данных. Для этого вы можете использовать базу данных, предоставленную Pleroma. Вы можете загрузить эту базу данных, выполнив следующую команду:
sudo -Hu postgres psql -f /opt/pleroma/config/setup_db.psql

Pleroma Server 29 Import Database

  1. После этого вы можете связать postgres и Pleroma, мигрировав базу данных postgres в Pleroma. Для этого вы можете выполнить следующую команду:
sudo -Hu pleroma MIX_ENV=prod mix ecto.migrate

Pleroma Server 30 Migrate Database

10. Запустите свой сервер Pleroma

Теперь пришло время запустить ваш сервер Pleroma. Вы можете сделать это, выполнив следующую команду:

sudo -Hu pleroma MIX_ENV=prod mix phx.server

Pleroma Server 31 First Run

Однако этот сервер все еще недоступен из обычного браузера. Чтобы это разрешить, вам сначала нужно настроить certbot и nginx.

Также читайте: 9 лучших почтовых клиентов для Linux

Настройка Certbot для Pleroma

  1. Настройка certbot относительно проста. Сначала вам нужно создать папку, в которой будут сохранены сертификаты. Вы можете сделать это, выполнив следующую команду:
sudo mkdir -p /var/lib/letsencrypt/
  1. С этим завершено, вы можете теперь сгенерировать сертификат для вашего сервера Pleroma. Для этого вы можете выполнить эту команду:
sudo certbot certonly --email [email protected] -d yourpleromaserver.com --standalone

Pleroma Server 32 Certbot Finished

Настройка Nginx для Pleroma

  1. Далее, следующее, что вам нужно сделать, это настроить ваш веб-сервер nginx для Pleroma. Установка Pleroma уже предоставляет шаблон, который вы можете скопировать в каталог конфигурации nginx. Для этого вы можете выполнить следующую команду:
sudo cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.nginx
  1. Далее вам нужно отредактировать этот файл конфигурации, чтобы он соответствовал вашему серверу Pleroma. В большинстве случаев это будет включать изменение четырех переменных: server_name, ssl_trusted_certificate, ssl_certificate и ssl_certificate_key.
  2. Для первой переменной вам нужно изменить значение “example.tld” на доменное имя вашего сервера. В моем случае я изменил это на “yetanotherpleromaserver.xyz”.

Pleroma Server 33 Nginx Config Server Name

  1. Далее, следующие три переменные указывают на местоположение SSL-сертификата вашего домена. Если вы создали свой сертификат через этот гид, этот путь будет “ /etc/letsencrypt/live/yourdomain.name/“.
  2. Это уже предоставлено шаблоном nginx, и единственное, что осталось сделать, это изменить значение “example.tld” на ваше доменное имя.

Pleroma Server 34 Ssl Cert Config

  1. С этим завершено, вы можете теперь включить вашу конфигурацию nginx, создав символическую ссылку на активный каталог nginx. Для этого вы можете выполнить следующую команду:
sudo ln -s /etc/nginx/sites-available/pleroma.nginx /etc/nginx/sites-enabled/pleroma.nginx
  1. После этого вы можете теперь запустить nginx, включив его службу systemctl:
sudo systemctl enable nginx.service

11. Финальные настройки

  1. Отсюда вы можете теперь настроить системную службу для Pleroma и создать своего первого пользователя. По умолчанию Pleroma включает шаблон systemctl для включения своей службы через systemd. Чтобы использовать этот шаблон, вы можете выполнить следующую команду:
sudo cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service

Pleroma Server 35 Copy Systemd Service

  1. Теперь вы можете включить Pleroma через systemctl, выполнив эту команду:
sudo systemctl enable pleroma.service

Pleroma Server 36 Enable Pleroma Service

  1. Наконец, вы можете теперь создать своего первого пользователя для вашей инстанции Pleroma, выполнив команду pleroma.user:
sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new yourusername [email protected] --admin

Pleroma Server 37 Done Installing

Также читайте: Как исправить проблему “Не могу печатать в терминале” в Linux

Часто задаваемые вопросы

1. Загружаемые мной фотографии все еще имеют данные геолокации. Что я сделал не так?

Это может быть связано с рядом причин. Однако самой распространенной причиной, почему это произошло, является то, что у вас нет пакета exiftool. Для приведенного выше руководства exiftool не был пакетом, установленным по умолчанию.

Таким образом, чтобы удалить геолокацию для загружаемых вами изображений, вам нужно вручную добавить этот пакет. Для этого вы можете выполнить следующую команду:

sudo apt install exiftool

2. Я не могу сгенерировать сертификат Letsencrypt. Что я сделал не так?

Это также может быть связано с рядом причин. Однако самой распространенной причиной этого является то, что nginx все еще работает.

Для того чтобы команда certbot работала, вам нужно, чтобы общие веб-порты были открыты и не использовались какой-либо программой. Чтобы отключить nginx, вы можете выполнить следующую команду:

sudo systemctl stop nginx

Кредит изображения: Pleroma