Установка и настройка Misskey на Raspberry Pi

Социальные сети и микроблоги — ключ к созданию онлайн‑сообщества. Крупные корпоративные сервисы, такие как Threads и Twitter, подходят для набора десятков тысяч подписчиков, а Fediverse ориентирован на человеческие, более управляемые беседы.
Misskey — это платформа для создания собственной социальной зоны в сети с возможностями облачного хранения для учётных записей и федеративной совместимости через ActivityPub.
Что такое Misskey
Fediverse — это сеть взаимосвязанных инстансов (отдельных серверов), которые могут работать как самостоятельные социальные платформы или федеративно общаться друг с другом. Все серверы Fediverse опираются на протокол ActivityPub. Наиболее распространённый тип — Mastodon, но Misskey предлагает альтернативу с более гибким пользовательским интерфейсом, богатой кастомизацией и встроенным облачным хранилищем для пользователей.
Misskey родом из Японии, интерфейс и оформление зачастую ближе к стилю аниме, что подчёркивает дружелюбную визуальную идентичность, но это не влияет на функциональность: Misskey — активно развиваемое ПО с открытым исходным кодом и полностью совместимое с Fediverse.
Ключевые характеристики Misskey:
- Совместимость с ActivityPub и остальным Fediverse.
- Расширяемость через плагины и темы.
- Встроенное облачное хранилище для медиафайлов.
- Гибкие настройки модерации и правила сервера.
Перед началом: что нужно подготовить
Важно подготовить следующее перед установкой:
- Raspberry Pi с установленной ОС Raspberry Pi OS (рекомендуется 64‑битная версия). Минимум 2‑4 ГБ ОЗУ для комфортной работы; для больших инстансов — 8+ ГБ.
- Доступ по SSH к Raspberry Pi.
- Доменное имя и доступ к панели DNS регистратора.
- Установленные Apache2 и Certbot (или возможность установить их).
- Установленный Docker и Docker Compose (рекомендуется последняя версия Docker Compose v2+).
- Резервные носители или удалённые бэкапы для данных.
Примечание: в этом руководстве описан подход с Docker Compose — он изолирует Misskey от остальных сервисов и упрощает обновления.
Настройка DNS для домена
Зайдите в панель регистратора домена, откройте расширенные параметры DNS и добавьте A‑запись:
- Host: @
- Value: ваш публичный IP (или IP вашего маршрутизатора, если вы используете проброс портов)
- TTL: минимально возможное значение (обычно 300 секунд)
Если вы используете динамический IP, настройте DDNS или сервис динамической перепривязки домена.
Важно: для публичного доступа потребуется проброс портов на маршрутизаторе — перенаправьте HTTP/HTTPS порты на ваш Raspberry Pi.
Установка Docker и Docker Compose
Если Docker ещё не установлен, выполните стандартную установку Docker на Raspberry Pi. После этого установите Docker Compose вручную, если версия в репозитории устарела.
Пример установки Docker Compose (v2) через плагин Docker:
sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/raspbian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Проверка
sudo docker version
sudo docker compose versionЕсли вы предпочитаете установку через pip или статический бинарник — используйте проверенный источник и официальную документацию.
Важно: запускать Docker от root не нужно — добавьте своего пользователя в группу docker, если хотите запускать без sudo:
sudo usermod -aG docker $USER
newgrp dockerКлонирование репозитория Misskey и подготовка конфигурации
Первым шагом клонируйте репозиторий и перейдите в каталог проекта:
git clone -b master https://github.com/misskey-dev/misskey.git && cd misskeyMisskey предоставляет примеры конфигурационных файлов. Скопируйте их в рабочие версии:
cp .config/docker_example.yml .config/default.yml
cp .config/docker_example.env .config/docker.env
cp ./docker-compose.yml.example ./docker-compose.ymlОтредактируйте файл docker.env — в нём содержатся учётные данные для PostgreSQL (имя пользователя, пароль, имя базы данных):
nano .config/docker.envСмените значения на запоминаемые и безопасные строки. Сохраните Ctrl+O, выйдите Ctrl+X.
Затем откройте default.yml и укажите адрес вашего домена в разделе Final accessible URL, добавив префикс https://:
nano .config/default.ymlНайдите секцию PostgreSQL configuration и введите те же учётные данные, что в docker.env.
Примечание: по умолчанию Misskey слушает на порту 3000. Если порт занят, отредактируйте docker-compose.yml и замените порт на свободный.
Построение образов и инициализация базы данных
Соберите контейнеры и инициализируйте базу данных:
sudo docker compose build
sudo docker compose run --rm web pnpm run initВремя выполнения может быть несколько минут; процесс выполняет сборку JS/CSS и миграции базы данных.
После инициализации нужно дать правильные права на папку с файлами (media):
sudo chown -hR 991.991 ./filesЕсли не выполнить эту команду, при попытке загрузки изображений может появиться внутренняя ошибка с кодом вида 5d37dbcb-891e-41ca-a3d6-e690c97775ac.
Запустите контейнеры в фоновом режиме:
docker compose up -dЧерез несколько минут инстанс должен быть доступен по адресу http://ваш-ip:3000 или по домену после настройки прокси.
Для просмотра логов используйте:
docker compose logs -f webДля упрощённого мониторинга контейнеров установите lazydocker (опционально).
Настройка обратного прокси и HTTPS через Apache
Чтобы сделать Misskey доступным по домену и подключить TLS, используйте Apache как обратный прокси.
Создайте конфигурацию сайта:
cd /etc/apache2/sites-available && sudo nano misskey.confВставьте конфигурацию, указав ваш домен вместо muo.lol и, при необходимости, скорректировав порт:
ServerName muo.lol
ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
ProxyPreserveHost On
Сохраните файл и активируйте сайт:
sudo a2ensite misskey.conf
sudo service apache2 restartЗапустите Certbot для получения TLS‑сертификата и автоматического обновления:
sudo certbot --apacheВыберите домен в списке, следуйте подсказкам Certbot, затем перезапустите Apache:
sudo service apache2 restartПосле этого ваш инстанс будет доступен по https://ваш-домен и защищён от MITM‑атак.
Важно: если используете Nginx вместо Apache — настройте аналогичный обратный прокси и обновите правила ProxyPass.
Создание учётной записи администратора
Откройте браузер и перейдите по вашему домену. Создайте администратора, задайте надёжный пароль. Формат имени пользователя: @user@your-misskey-instance.tld — вы можете изменить только часть before first @.
Во время первого входа произойдёт мастер создания профиля — можно отложить, но рекомендуется заполнить имя, биографию и аватар, чтобы пользователи понимали, кому принадлежит инстанс.
Misskey предложит опции приватности: подтверждение подписчиков, индексация поисковыми системами, флаг запрета обучения ИИ и скрытие статуса онлайн. Настройки можно изменить в любой момент в панели управления.
Настройка и кастомизация инстанса
Административные настройки находятся в Control Panel на левой панели навигации.
Ключевые разделы:
- Dashboard — статистика: активные пользователи, локальные/федеративные связи, метрики.
- Branding — логотипы, баннеры, фоновые изображения, темы.
- Custom Emoji — загрузка пользовательских наборов эмодзи.
- Settings > General — имя инстанса, описание, контакты мейнтейнера, кэширование удалённых файлов.
- Moderation — правила регистрации, капча, подтверждение почты.
Советы по брендингу: используйте единый стиль и баннер, добавьте читаемое описание, чтобы люди понимали цель инстанса.
Политики модерации и правила сервера
Обязательно создайте базовые правила сервера в разделе Server Rules: приемлемый контент, политика блокировок, порядок обжалования решений модерации. Это упрощает модерацию и повышает прозрачность.
Рекомендуемые пункты правил:
- Запрещённый контент (насилие, призывы к ненависти, явное нарушение закона).
- Процедура подачи жалобы.
- Порядок временных и постоянных блокировок.
- Правила для имен, аватаров и ссылок.
Можно также добавить подробные Terms of Service и политику приватности.
Безопасность и жёсткая настройка
Важно обезопасить инстанс и данные пользователей. Рекомендации:
- HTTPS всегда включён через Certbot. Настройте автоматическое обновление сертификатов.
- Используйте брандмауэр (ufw) — откройте только нужные порты (80, 443, SSH по нестандартному порту или через VPN):
sudo apt install ufw
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable- Включите автоматические обновления безопасности или регулярно применяйте apt update/upgrade.
- Установите fail2ban для защиты SSH и панели администратора.
- Ограничьте регистрацию новых пользователей, если железо Raspberry Pi перегружается.
- Храните секреты (пароли, ключи) в .env вне публичного репозитория и делайте бэкапы.
- Разграничивайте права доступа: файлы — владелец 991, база — отдельный пользователь.
Резервное копирование
Регулярно бэкапьте:
- Каталог ./files — медиафайлы.
- Дамп PostgreSQL: используйте pg_dump внутри контейнера или через контейнерную команду.
- Конфигурационные файлы .config.
Пример экспорта базы:
docker compose exec db pg_dump -U misskey -Fc misskey > misskey-$(date +%F).dumpХраните бэкапы вне устройства (S3, удалённый сервер, NAS).
Обновления и миграции
Процедура обновления:
- Сделать бэкап базы и файлов.
- Остановить контейнеры: docker compose down
- Обновить код: git pull
- Пересобрать контейнеры: docker compose build
- Выполнить миграции: docker compose run –rm web pnpm run init
- Запустить: docker compose up -d
Проверяйте CHANGELOG и release notes проекта перед обновлением.
Производительность и масштабирование на Raspberry Pi
Raspberry Pi подходит для небольших инстансов (несколько десятков локальных пользователей). Для увеличения нагрузки:
- Используйте swap и расширьте раздел подкачки, но помните про износ SD‑карты — лучше SSD по USB.
- Перенесите файловое хранилище на внешний диск или S3‑совместимое хранилище.
- Включите кэширование удалённых файлов для снижения сетевого трафика, либо отключите, чтобы экономить диск.
- При большом трафике рассмотрите миграцию на VM или VPS с большим объёмом ОЗУ и диска.
Плагины, темы и расширения
Misskey поддерживает плагины и темы. Устанавливайте только проверенные расширения, проверяйте совместимость с вашей версией.
- Темы изменяют внешний вид и читаемость.
- Плагины могут добавить интеграции, реакции, дополнительные виджеты.
Тестирование и приёмка
Критерии приёмки для корректной работы инстанса:
- Доступность веб‑интерфейса по HTTPS.
- Успешная регистрация локального пользователя и создание поста с изображением.
- Корректная федерация с внешними инстансами (видимость удалённых постов).
- Создание и загрузка пользовательских эмодзи.
- Успешное восстановление из бэкапа на тестовой машине.
План действий при инциденте
Быстрая инструкция при аварии контейнера:
- Проверить логи: docker compose logs -f web
- Посмотреть статус контейнера: docker compose ps
- Проверить диск и права: df -h; ls -la ./files
- Если база недоступна — проверить контейнер db: docker compose logs db
- При неудачных запусках выполнить пересборку: docker compose down && docker compose build && docker compose up -d
- Если требуется откат — восстановить базу из последнего дампа и файлы медиа.
Частые проблемы и решения
- Ошибка загрузки файлов — проверьте права (sudo chown -hR 991.991 ./files) и свободное место.
- Проблемы при инициализации — проверьте переменные окружения в docker.env и default.yml.
- Ошибки HTTPS — проверьте правильность ServerName в конфигурации Apache и Certbot.
- Медленная работа — проверьте нагрузку CPU, использование swap, IO диска.
Роли и чеклист для команды
Администратор:
- Настроить домен и HTTPS.
- Создать администратора и заполнить профиль инстанса.
- Настроить правила сервера и модерацию.
- Настроить бэкапы и мониторинг.
Модератор:
- Следить за жалобами.
- Применять блокировки и выдавать предупреждения.
- Поддерживать правила сообщества обновлёнными.
Технический мейнтейнер:
- Обновлять Docker, контейнеры и плагины.
- Проводить тестовые бэкапы и проверки восстановления.
- Оптимизировать хранение и масштабирование.
Короткая методология развертывания
- Подготовить Pi и домен.
- Установить Docker и Docker Compose.
- Клонировать Misskey и скопировать конфигурации.
- Отредактировать .env и default.yml.
- Инициализировать базу и собрать контейнеры.
- Настроить обратный прокси и Certbot.
- Создать администратора и настроить политику.
- Настроить бэкапы и мониторинг.
Глоссарий (одно предложение)
- Fediverse — сеть федеративных социальных сетей, объединённых протоколом ActivityPub.
- Instance — отдельный сервер в Fediverse.
- ActivityPub — протокол для взаимодействия между социальными инстансами.
- Docker Compose — инструмент для описания и запуска многоконтейнерных Docker‑приложений.
Социальный превью и анонс
OG title: Misskey на Raspberry Pi — установка и настройка OG description: Подробный пошаговый гид по развёртыванию Misskey на Raspberry Pi с HTTPS, модерацией и бэкапами.
Короткое объявление (100–200 слов):
Misskey — гибкая платформа для создания вашего уголка в Fediverse. В этом руководстве вы найдёте всё: от подготовки Raspberry Pi и настройки домена до запуска Misskey в Docker, получения TLS‑сертификата через Certbot и создания администраторского аккаунта. Также описаны лучшие практики по безопасности, бэкапам, модерации и обновлениям. Подходит для небольших сообществ и хоббийных инстансов — при необходимости руководство поможет масштабировать систему или перенести её на VPS.
Заключение
Misskey — отличный выбор для тех, кто хочет создать управляемое, эстетичное и расширяемое сообщество в Fediverse. На Raspberry Pi вы сможете быстро запустить инстанс для друзей или небольшой группы, а описанные в руководстве практики обеспечат безопасность и устойчивость работы. Если Misskey не подходит по визуалу или функционалу, рассмотрите другие инстансы Fediverse, такие как Mastodon или Pleroma.
Важно: делайте регулярные бэкапы, следите за обновлениями и не допускайте открытой регистрации на слабом железе.
Критерии приёмки
- Домен работает по HTTPS и корректно перенаправляет на Misskey.
- Локальный пользователь может загружать медиафайлы.
- Панель управления доступна и отображает статистику.
- Бэкап и восстановление отработаны на тестовой машине.
Ключевые ссылки и ресурсы
- Репозиторий Misskey на GitHub: https://github.com/misskey-dev/misskey
- Документация Docker и Certbot (официальные сайты)
Похожие материалы
Find My Device в Windows 11 — включение и поиск
Шаблоны автоответа «Вне офиса» и практические советы
Подпись в Outlook: шаблон и настройка
Объединение ячеек в Excel: & и CONCAT
Как поделиться экраном в Zoom