Ваша власна соціальна мережа: як налаштувати примірник Mastodon в Linux

Ваша власна соціальна мережа: як налаштувати примірник Mastodon в Linux

Набридло твіттер? Набридли фейсбуком? Зловживання онлайн і вміст NSFW зводять вас з розуму? Просто хочете обмінятися ідеями подалі від люті людей, які протистоять вам?

Mastodon - це відповідь А завдяки його природі з відкритим вихідним кодом, ви можете налаштувати свій власний екземпляр Mastodon, дозволяючи спілкуватися на будь-яку тему і надаючи своїм користувачам деяку безпеку і конфіденційність від тролів усіх видів.


Якщо ви не знайомі з Мастодонтом, ось основи. Тоти схожі на твіти і можуть містити до 500 символів (на відміну від обмеження 140 символів у Twitter). Подивіться наш недавній погляд на Mastodon щоб побачити, як все це працює.

Що тобі знадобиться

Для створення власного примірника Мастодонта потрібно наступне:

  • Веб-сервер під управлінням Ubuntu Server 16.04. На Vultr.com ви можете знайти недорогі серверні облікові записи менш ніж за 10 доларів на місяць, хоча є й інші рішення.
  • Невикористовувана доменна назва, що вказує на сервер. Це означає, що записи DNS на вузлі веб-домену налаштовані для направлення відвідувачів на IP-адресу сервера Ubuntu. Як це робиться, залежить від постачальника, тому перевірте відповідну документацію.
  • Обліковий запис Mailgun для керування реєстраціями у вашому екземплярі Mastodon. Це доступно безкоштовно, але дані вашої кредитної картки необхідні для відправки перших 10000 електронних листів. Перейдіть на сторінку реєстрації в Mailgun, щоб створити обліковий запис, і переконайтеся, що ви дотримуєтеся інструкцій з перевірки домену, щоб переконатися, що ваш новий/не використаний домен електронної пошти вказаний як активний.

Параметри Мастодонта потребують трьох основних елементів:

  • Docker - корисне програмне забезпечення віртуалізації
  • Мастодонт - сама соціальна мережа
  • Nginx (вимовляється EngceX) - багатофункціональне програмне забезпечення веб-сервера, що використовується в даному випадку як зворотний проксі

(Зворотний проксі-сервер дозволяє серверу отримувати ресурси або дані з одного або декількох інших серверів від імені клієнта. У багатьох випадках це є заходом безпеки для захисту сервера.)

Вам також знадобиться SSH-з'єднання з вашим сервером. Це доступно через термінал в Linux (або macOS). Якщо ви використовуєте SSH у Windows, завантажте і встановіть PuTTY.

Встановіть з'єднання SSH і встановіть Docker

Вам потрібно буде з'єднатися з вашим сервером через SSH і увійти зі звичайними обліковими даними адміністратора. Як тільки це буде зроблено, створіть користувача з назвою «mastodon», призначте привілеї root і перемкніться на нового користувача:


adduser mastodon usermod -aG sudo mastodon su - mastodon

Потім оновіть базу даних пакунків і встановіть інструменти керування:

sudo apt-get update sudo apt-get install apt-transport-https software-properties-common

Для Docker репо потрібен ключ GPG, який ви можете придбати з

sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

Потім додайте сховище Docker до джерел і оновіть ще раз.

sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main' sudo apt-get update


Для забезпечення правильної роботи Docker необхідно встановити власний репозитарій, а не версію в офіційному репозиторії Ubuntu 16.04. Ця політика гарантує, що станеться:

sudo apt-cache policy docker-engine

Тепер ви можете встановити Docker:

sudo apt-get install -y docker-engine

Зачекайте, поки це не завершиться. Встановлення включає фонову службу, яку запускає Docker під час завантаження сервера. Перевірте стан з


sudo systemctl status docker

Ви побачите кілька рядків тексту - шукайте «active (running)», щоб переконатися, що все гаразд.

Налаштувати за допомогою Docker Compose

Створення нової групи користувачів заощадить час при введенні команди sudo при кожному запуску інструкції Docker в цій конфігурації. Зробити це з

sudo usermod -aG docker $(whoami)

Завершіть це, вийшовши з налаштування SSH (вихід), потім увійдіть знову.


Docker Compose призначено для керування запуском багатоконтейнерних програм Docker. На github.com/docker/compose/releases ви знайдете останню версію випуску. Запишіть число, оскільки вам потрібно буде ввести його в наступній команді, замінивши його на «xxx»:

sudo curl -o /usr/local/bin/docker-compose -L ""https://github.com/docker/compose/releases/download/xxx/docker-compose-$(uname -s)-$(uname -m)"

Зробіть його виконуваним:

sudo chmod +x /usr/local/bin/docker-compose

Ви можете перевірити, що Docker Compose встановлений з


docker-compose -v

Номер версії буде відображено, і він повинен відповідати версії, яку ви завантажили - шукайте номери, які ви замінили для підтвердження.

Встановити мастодонт

Вся підготовка зроблена. Тепер ви готові до встановлення Мастодонта. Перейдіть у підкаталог мастодонту:

cd /home/mastodon

Потім, клонуйте mastodon.git в каталог, потім відкрийте теку і зробіть копію файлу .env.production.sample.

git clone https://github.com/tootsuite/mastodon.git cd mastodon cp.env.production.sample.env.production

Ви можете використовувати цей файл зараз. Спочатку створіть образ Docker.

docker-compose build

Це займе деякий час. Після закінчення ви можете використовувати цю команду для створення трьох секретних ключів:

docker-compose run --rm web rake secret

Виконайте це тричі, копіюючи та вставляючи кожен унікальний ключ до текстового редактора. Коли всі три будуть готові, запустіть файл.env.production в nano.

sudo nano.env.production

Знайдіть такі поля: PAPERCLIP_SECRET, SECRET_KEY_BASE и OTP_SECRET. Кожен з них повинен мати один із секретних ключів, вставлених проти них.

Додайте параметри Mailgun

Настав час додати деталі для вашого облікового запису електронної пошти Mailgun. Перейдіть на https://app.mailgun.com/app/domains і клацніть домен. Знайдіть ім'я користувача і типовий пароль для SMTP і скопіюйте дані у файл.env.production як записи для SMTP_LOGIN і SMTP_PASSWORD.

Потім знайдіть SMTP_FROM_ADDRESS і переконайтеся, що запис для нього має назву, що починається з «повідомлень», наприклад Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її.. Нарешті, знайдіть LOCAL_DOMAIN і додайте назву домену, яке ви використовуєте для цього проекту.

Після закінчення натисніть клавішу CTRL + X, щоб зберегти і закрити, потім перебудуйте Docker.

docker-compose build

Наступні команди забезпечать перенесення даних і попередню компіляцію ресурсів, як і передбачалося.

docker-compose run --rm web rails db:migrate docker-compose run --rm web rails assets:precompile

Ці команди займуть деякий час для завершення. Як тільки ви закінчите, включіть контейнер:

docker-compose up -d

Увімкнути Nginx

Nginx використовується як зворотний проксі.

Встановіть його за допомогою:

sudo apt-get install nginx

У Nginx є типовий профіль, який вам потрібно вилучити:

sudo rm /etc/nginx/sites-available/default sudo rm /etc/nginx/sites-enabled/default

Створити новий профіль

sudo touch /etc/nginx/sites-available/mastodon

Далі вам потрібно створити символічне посилання для доступу до профілю:

sudo ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon

Потім у вас є файл налаштувань для копіювання до текстового редактора. Відвідайте цю сторінку Github і скопіюйте вміст, потім вставте його в

sudo nano /etc/nginx/sites-available/mastodon

Відкривши файл, знайдіть кожен екземпляр example.com і замініть його назвою домену, яке ви використовуєте. Переконайтеся, що ви спускаєте «www».

Натисніть CTRL + X, щоб зберегти і вийти.

Отримайте сертифікат SSL і запустіть Mastodon!

Тепер ви можете запустити свій екземпляр Mastodon і створити власну соціальну мережу. Але щоб довіряти йому, вам знадобиться сертифікат SSL.

Почніть з установки certbot PPA, а потім і самого certbot:

sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install certbot

Потім зупиніть Nginx для створення сертифікатів SSL.

sudo systemctl stop nginx.service

Виконайте це за допомогою наступної команди, замінивши example.com вашою власною доменною назвою.

sudo letsencrypt certonly --standalone -d example.com

Дотримуйтесь вказівок, щоб завершити процес. Коли ви закінчите, поверніться в каталог мастодонту:

cd /home/mastodon/mastodon

Наступний крок - тимчасово зупинити Docker:

docker-compose down

Ми майже закінчили - просто виконайте ці команди по черзі:

docker-compose build docker-compose run --rm web rails assets:precompile docker-compose run --rm web rails db:migrate docker-compose up -d

Почекайте, поки ці команди завершаться, потім відновіть Nginx:

sudo systemctl restart nginx.service

Тепер, якщо все пройшло нормально, ви зможете відкрити вікно браузера і перейти до нового екземпляра Mastodon, щоб побачити, як він працює!

Будь-які проблеми тут, на жаль, означатимуть повторення того, що ви вже зробили. Якщо файл.env.production справний і Mailgun працює, просто продовжіть кроки, дотримуючись останнього збереження файлу .env.production. Зауважте, що якщо ваш домен не налаштований правильно з реєстратором домену і з Mailgun, то ви не зможете запустити Мастодонт, поки ці проблеми не будуть вирішені.

Зауважте, що якщо ваш домен не налаштований правильно з вашим реєстратором доменів і з Mailgun, ви не зможете запустити Mastodon, поки ці проблеми не будуть вирішені.

Ви працюєте: автоматизуйте завдання і керуйте мастодонтом

Ми болісно близькі до кінця зараз. Ще кілька хвилин, і ви зможете опублікувати свій екземпляр Mastodon.

Певні завдання мають бути автоматизовані. Перейдіть до каталогу мастодонту і створіть новий каталог завдань cron - інструкції, які виконуються у визначений час.

cd /home/mastodon nano mastodon_cron

У текстовому файлі додайте:

cd /home/mastodon/mastodon docker-compose run --rm web rake mastodon:media:clear docker-compose run --rm web rake mastodon:push:refresh docker-compose run --rm web rake mastodon:push:clear docker-compose run --rm web rake mastodon:feeds:clear

Вийдіть за допомогою CTRL + Y, потім введіть:

sudo chmod +x mastodon_cron && sudo crontab -e

Відкриється файл crontab - свого роду керуючий індекс всіх запланованих (cron) сценаріїв. Введіть цей рядок наприкінці:

0 0 * * * /home/mastodon/mastodon_cron > /home/mastodon/mastodon_log

Натисніть CTRL + X, щоб зберегти і вийти.

Оновити SSL

Хоча сертифікат SSL налаштований, термін його дії закінчується через 90 днів. Це рішення cron, яке автоматично оновлює сертифікат. вхід

sudo crontab -e

… Потім прокрутіть до кінця файла і додайте їх до рядка:

0 1 * * 1 /usr/bin/letsencrypt renew >> /home/mastodon/letsencrypt.log 5 1 * * 1 /bin/systemctl reload nginx

Знову натисніть CTRL + X, щоб зберегти і вийти; Інструкція продовжить сертифікат старше 60 днів, в 1:00 в понеділок. Потім він перезавантажить Nginx.

Адміністрація Мастодонта

Тепер все готово. Будь-хто може відправитися до вашого примірника Mastodon, щоб зареєструватися і почати відправляти свої заявки. Це стосується і вас - але, звичайно, вам знадобиться акаунт з підвищеними правами доступу. Почніть з створення облікового запису та натисніть посилання в електронному листі з підтвердженням.

Далі поверніться в підкаталог мастодонта:

cd /home/mastodon/mastodon

Використовуйте цю команду для підвищення вашого імені користувача до рівня адміністратора:

docker-compose run --rm web rails mastodon:make_admin USERNAME=yourusername

Поверніться до Мастодонта у вікні переглядача і отримаєте доступ до налаштувань вашого облікового запису. Знайдіть посилання «Адміністрування» для перегляду облікових записів користувачів і управління налаштуваннями Mastodon S ite, які включають такі речі, як заголовок та опис, а також мету/тему екземпляра.

Ваша власна соціальна мережа, що обговорює ваші теми!

Твіттер піддався критиці в останні місяці за його повільність у боротьбі з кіберзлякуваннями і поширення рахунків, що пропагують і прославляють ісламський екстремізм. Тим часом Facebook продовжує залишатися кошмаром.

Щоб впоратися з цим, ви можете приєднатися до Мастодонта. Ми думаємо, що ви повинні, так як ви принаймні побачите, як все можна зробити по-іншому. І якщо вам це подобається, чому б не встановити свій власний екземпляр?

Ти пробував мастодонт? Ви створили свій власний екземпляр? Розкажіть нам, як все пройшло.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND