Гид по технологиям

Установка Akkoma на Raspberry Pi — пошаговое руководство

9 min read Самохостинг Обновлено 11 Dec 2025
Установка Akkoma на Raspberry Pi
Установка Akkoma на Raspberry Pi

Akkoma — полнофункциональный сервер Fediverse, совместимый с ActivityPub, который легко разворачивать на Raspberry Pi с Docker Compose. В этой инструкции — подготовка Raspberry Pi, клонирование репозитория, сборка контейнера, генерация конфигурации, открытие порта через Apache и получение TLS-сертификатов, настройка фронтенда и рекомендации по безопасности и резервному копированию.

Силуэты людей в золотой час

Краткое определение: Fediverse — это федерация независимых социальных серверов, объединённых протоколом ActivityPub; Akkoma — одна из реализаций сервера на базе Pleroma с дополнительными функциями.

Важно: перед началом убедитесь, что ваш Raspberry Pi обновлён, у вас есть доступ по SSH и вы понимаете базовые операции с Docker и системой Linux.

Что такое Akkoma?

Raspberry Pi 4B в официальном корпусе

Akkoma — сервер Fediverse, основанный на кодовой базе Pleroma и заимствующий удобные функции из MissKey. Он использует протокол ActivityPub для федерации с другими инстансами. Akkoma активно развивается и регулярно получает обновления.

Кратко о преимуществах Akkoma:

  • Поддержка нескольких фронтендов и кастомных икон-паков.
  • Разные варианты Markdown и расширенные форматы постов.
  • Возможность редактирования и цитирования постов, гибкие лимиты символов.
  • Подходит для небольших и средних инстансов, включая Raspberry Pi.

Определение термина: ActivityPub — открытый протокол федерации для социальных сетей; коротко — «как серверы договариваются, что друг другу показывать».

Требования и предварительная подготовка

Перед установкой подготовьте следующее:

  • Raspberry Pi 3/4 с актуальной ОС (Raspberry Pi OS / Debian). Рекомендуется Pi 4 для лучшей производительности.
  • Доступ SSH и базовые права sudo.
  • Стабильное подключение к интернету и статический IP или настроенный динамический DNS.
  • Docker и Docker Compose (мы установим Docker Compose вручную, как в оригинальной инструкции).
  • Доменное имя, указывающее на ваш Raspberry Pi (например, example.tld).
  • Понимание основ работы с PostgreSQL и обратным прокси (Apache/Nginx).

Совет: выделите отдельный пользовательский каталог для проекта, например /home/pi/akkoma, и работайте оттуда.

Шаг 1. Подготовка Raspberry Pi как веб-сервера

Если вы ещё не настроили Pi как веб-сервер, выполните предварительные шаги:

  • Обновите систему:
sudo apt update && sudo apt upgrade -y
  • Установите базовые пакеты:
sudo apt install -y git curl nano build-essential apt-transport-https ca-certificates gnupg lsb-release
  • Установите Docker (официальный скрипт) и docker-compose-plugin или последнюю версию Docker Compose по инструкции проекта Docker.

Примечание: если на Pi уже работает MariaDB, PHP или другой веб-стек — убедитесь, что порты не конфликтуют.

Шаг 2. Клонирование репозитория Akkoma и начальная конфигурация

Сборка контейнера Akkoma в терминале

Подключитесь к Raspberry Pi по SSH и выполните:

git clone https://akkoma.dev/AkkomaGang/akkoma.git -b stable && cd akkoma

Создайте файл окружения для Docker Compose на основе примера и добавьте UID/GID текущего пользователя:

cp docker-resources/env.example .env
echo "DOCKER_USER=$(id -u):$(id -g)" >> .env

Эта команда уменьшает вероятность проблем с правами на смонтированные тома у Docker.

Важно: файл .env может содержать секреты. Храните его с осторожностью.

Шаг 3. Сборка контейнера и компиляция приложения

Сборка образов может занять несколько минут. Запустите скрипт сборки:

./docker-resources/build.sh

Далее создайте каталог для данных PostgreSQL и запустите последовательность команд управления проектом:

mkdir pgdata
./docker-resources/manage.sh mix deps.get
./docker-resources/manage.sh mix compile
./docker-resources/manage.sh mix pleroma.instance gen

Во время генерации конфигурации вам предложат установить Hex и rebar3 — ответьте Y. Компиляция может занять примерно 12 минут на Raspberry Pi 4.

Когда мастер спросит домен — вводите его без префикса http:// или https:// (например, example.tld). Укажите имя инстанса и почту администратора.

Важно: при вопросе про индексирование поисковыми системами решите заранее: хотите ли вы, чтобы ваш инстанс попадал в результаты поиска.

Шаг 4. Параметры базы данных и индексы

При генерации конфигурации укажите hostname базы данных как db, имя базы и пользователя — akkoma, пароль — akkoma (по умолчанию). Для поисковых операций рекомендуется включить RUM-индексы для PostgreSQL — соглашайтесь на использование RUM.

Порт по умолчанию для Akkoma — 4000. Оставьте его, если не пересекается с другими сервисами.

Проверить занятые порты можно командой:

sudo lsof -i -P -n | grep LISTEN

После генерации копируйте сгенерированный файл конфигурации в prod.secret.exs:

cp config/generated_config.exs config/prod.secret.exs

Инициализируйте базу данных из контейнера:

docker-compose run --rm akkoma psql -h db -U akkoma -f config/setup_db.psql

Если команда вернула успешное завершение — остановите контейнер (замените container_id на ваш ID):

docker stop container_id_you_noted_earlier

Запустите миграции и перекомпиляцию:

./docker-resources/manage.sh mix ecto.migrate

Совет: если процесс длится долго, следите за логами в другом окне терминала.

Шаг 5. Установка фронтендов и создание администратора

По умолчанию достаточно фронтенда Pleroma и административного интерфейса. Установите их командами:

./docker-resources/manage.sh mix pleroma.frontend install pleroma-fe --ref stable
./docker-resources/manage.sh mix pleroma.frontend install admin-fe --ref stable

Создайте администратора:

./docker-resources/manage.sh mix pleroma.user new your-desired-username youremail@domain.tld --admin

Подтвердите введённые данные. Ссылка для сброса пароля будет сгенерирована. Пока инстанс не запущен и не доступен извне, сохраните ссылку в надёжном месте.

Шаг 6. Настройка обратного прокси и TLS

Чтобы открыть Akkoma в интернете, настройте Apache (или Nginx). Пример для Apache:

cd /etc/apache2/sites-available
sudo nano akkoma.conf

Вставьте конфигурацию (редактируйте ServerName на ваш домен):


    ServerName your-domain-name.tld
    ProxyPass / http://127.0.0.1:4000/
    ProxyPassReverse / http:/127.0.0.1:4000/
    ProxyPreserveHost On

Сохраните файл (Ctrl+O, Enter, Ctrl+X). Затем активируйте сайт и перезапустите Apache:

sudo a2ensite akkoma.conf
sudo service apache2 restart

Получите TLS-сертификат через certbot:

sudo certbot

Выберите ваш домен и подтвердите. После получения сертификата перезапустите Apache ещё раз:

sudo service apache2 restart

Затем поднимите контейнеры в фоновом режиме:

cd ~/akkoma
docker-compose up -d

Подождите несколько минут и перейдите по ссылке сброса пароля для завершения создания администратора.

Важно: убедитесь, что порты 80 и 443 на маршрутизаторе проброшены (если вы находитеcь за NAT).

Шаг 7. Настройка интерфейса и политики инстанса

Настройки фронтенда Akkoma в админке

Откройте админку по адресу https://your-domain-name.tld/pleroma/admin и выполните базовые шаги:

  • Настройте Фронтенд: выберите предпочитаемый фронтенд, иконки, тему, обработку Markdown.
  • Настройте Instance: имя сайта, описание, правила регистрации (открытая регистрация / приглашения), пределы для постов и файлов.
  • Политики федерации: решите, с какими инстансами федерировать.

На демонстрационном инстансе авторы включили зелёное выделение цитат (строки, начинающиеся с “>”), древовидное отображение бесед, кастомный логотип и предупреждение NSFW.

Ограничения по файлам и символам в Akkoma

Совет: осторожно выбирайте лимиты для постов и загрузок, чтобы не перегружать диск или базу данных. Например, устанавливая слишком большой лимит символов, вы увеличиваете требования к хранилищу и индексу.

Советы по безопасности и эксплуатации

  • Используйте сильные пароли и двухфакторную аутентификацию, если доступна.
  • Регулярно обновляйте Akkoma и контейнеры (git pull → ./docker-resources/build.sh → docker-compose up -d).
  • Делайте резервные копии папки pgdata, конфигурационных файлов и config/prod.secret.exs.
  • Ограничьте доступ к админке по IP, если это возможно.
  • Следите за логами контейнеров: docker-compose logs -f

План резервного копирования и аварийного восстановления

Шаги для базового бэкапа:

  1. Остановите сервисы или гарантируйте консистентность данных (при возможности):
docker-compose stop
  1. Создайте архив данных PostgreSQL и конфигураций:
sudo tar czvf akkoma-backup-$(date +%F).tar.gz pgdata config prod.secret.exs .env
  1. Перенесите бэкап на удалённое хранилище (scp, rsync, S3 и т.п.).

Восстановление:

  1. Распакуйте бэкап в рабочую директорию.
  2. Убедитесь, что права на файлы корректны (UID/GID).
  3. Перезапустите контейнеры: docker-compose up -d

Критерии приёмки: инстанс успешно запускается, фронтенд доступен по HTTPS, админ может войти и видит корректные настройки.

Отладка распространённых ошибок

  • Проблема: фронтенд не отвечает. Проверьте docker-compose ps и логи:
docker-compose logs pleroma
  • Проблема: ошибка подключения к базе. Проверьте host/db credentials в config/prod.secret.exs и что контейнер db запущен.

  • Проблема: сертификаты не применяются. Проверьте конфигурацию Apache и файлы в /etc/letsencrypt.

  • Проблема: порт 4000 занят. Используйте sudo lsof -i -P -n | grep LISTEN, остановите конфликтующий сервис или назначьте другой порт и обновите ProxyPass.

Производительность на Raspberry Pi и оптимизации

Рекомендации для Pi:

  • Используйте SSD по USB3 (для Pi 4) вместо SD-карты для повышения долговечности и производительности.
  • Держите swap минимальным; лучше увеличить RAM или использовать zram.
  • Настройте лог-ротацию для Docker и PostgreSQL.
  • Если инстанс растёт, рассмотрите перенос базы на отдельный сервер.

Когда Akkoma может оказаться не лучшим выбором

Контрпримеры и ограничения:

  • Если вам нужен исключительно простой, минималистичный микроблог без сложных фронтендов, возможно, лучше подойдёт vanilla Pleroma.
  • Если вы ожидаете очень высокую нагрузку (десятки тысяч пользователей), Raspberry Pi и один контейнер могут не справиться — потребуется более мощная инфраструктура.
  • Если важна тесная интеграция с экосистемой MissKey, убедитесь, что нужные фичи поддерживаются в Akkoma.

Альтернативы и сравнение

Краткая матрица выбора (качественная):

  • Akkoma: гибкость, Pleroma-совместимость, дополнительные функции. Хорош для инстансов среднего размера и экспериментальных проектов.
  • Pleroma: лёгкая и быстрая кодовая база, проверенная временем.
  • Mastodon: наиболее известный и дружелюбный интерфейс, но выше требования к ресурсам.
  • MissKey: орие́нтирован на rich-media и расширенные UI-фичи.

Решение выбирают по критериям: ресурсы хостинга, желаемая функциональность, степень кастомизации, требования к федерации.

Роль‑специфические чек-листы

Администратор (первичное развертывание):

  • Настроить домен и DNS A/AAAA запись.
  • Установить Docker и Docker Compose.
  • Клонировать репозиторий и создать .env.
  • Скомпилировать и мигрировать базу.
  • Настроить обратный прокси и получить TLS.
  • Создать администратора и проверить доступ к админке.
  • Настроить политики регистрации и федерации.

Модератор (после запуска):

  • Проверить правила и политику контента.
  • Настроить предупреждения NSFW и автоматические фильтры.
  • Ознакомиться с инструментами банов и блокировок.
  • Тестировать процесс жалоб и уведомлений.

Пользователь (прибытие на инстанс):

  • Создать учётную запись и установить пароль.
  • Настроить профиль и аватар.
  • Ознакомиться с правилами сообщества.

Разработчик/поддержка:

  • Подписаться на логи и мониторинг.
  • Настроить CI для обновлений контейнеров.
  • Тестировать обновления на staging-инстансе до продакшна.

Decision tree для выбора инстанса (Mermaid)

flowchart TD
    A[Нужен Fediverse инстанс] --> B{Требуется ли мощный интерфейс?}
    B -- Да --> C{Есть ли ресурсы сервера?}
    B -- Нет --> D[Pleroma / Akkoma]
    C -- Да --> E[Mastodon / MissKey]
    C -- Нет --> D
    E --> F[Рассмотреть выделенный VPS]
    D --> G[Можно развернуть на Raspberry Pi]
    G --> H[Выбор: Akkoma если хотите Pleroma+фичи]

Мини‑методология: как тестировать и вывести инстанс в продакшн

  1. Разворачивайте в тестовой сети с отдельным доменом (staging.example.tld).
  2. Пройдите все шаги установки и заполните минимум данных.
  3. Тестируйте федерацию с несколькими публичными аккаунтами.
  4. Нагрузочное тестирование: симулируйте публикацию постов и загрузку файлов.
  5. Проверьте сценарии восстановления из бэкапа.
  6. Мигрируйте конфигурации и пакеты на продакшн, уведомив пользователей.

Миграционные заметки и совместимость

  • Версии Akkoma и Pleroma могут иметь несовместимые миграции; перед обновлением прочитайте CHANGELOG.
  • Всегда делайте резервную копию базы перед миграцией.
  • Если миграция не удалась, восстановите из бэкапа и протестируйте на staging.

Краткий глоссарий (одна строка каждый)

  • Fediverse — федерация независимых социальных серверов на ActivityPub.
  • ActivityPub — протокол федерации для обмена сообщениями между серверами.
  • Frontend — пользовательский интерфейс, который отображает ленту и профили.
  • Pleroma — лёгкая платформа для Fediverse, на которой основан Akkoma.
  • RUM-индекс — расширение PostgreSQL для ускоренного полнотекстового поиска.

Социальный прeвью и объявление

OG title suggestion: Разверните Akkoma на Raspberry Pi

OG description suggestion: Пошаговая инструкция по установке Akkoma на Raspberry Pi, настройке Apache, TLS и фронтенда.

Короткое объявление (для рассылки, 100–200 слов):

Разворачиваем собственный сервер Fediverse на Raspberry Pi с Akkoma. В инструкции — подготовка системы, клонирование репозитория, сборка контейнеров, генерация конфигурации, настройка обратного прокси и получение TLS. Пошаговое руководство включает рекомендации по безопасности, резервному копированию и оптимизациям для Pi. Подойдёт тем, кто хочет контролировать свой онлайн‑пространство и экспериментировать с фронтендами.

Заключение

Активный экземпляр Akkoma в браузере

Akkoma — удобный выбор для самохостинга Fediverse на Raspberry Pi. Он сочетает гибкие возможности Pleroma и дополнительные функции, которые помогают кастомизировать инстанс под ваши потребности. При разумной конфигурации и регулярном обслуживании инстанс будет надежно работать и радовать пользователей.

Важное: тестируйте обновления на копии инстанса, делайте регулярные бэкапы и контролируйте использование диска и памяти.

Сводка действий (быстрый чек-лист):

  • Подготовить Raspberry Pi и установить Docker/Docker Compose.
  • Клонировать akkoma репозиторий и создать .env.
  • Построить контейнеры, сгенерировать конфиг и подготовить БД.
  • Установить фронтенды и создать администратора.
  • Настроить обратный прокси, получить TLS и поднять docker-compose.
  • Настроить политики, бэкапы и мониторинг.

Конец руководства.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Рамка в Google Docs: как добавить быстро
Руководство

Рамка в Google Docs: как добавить быстро

Скрыть и показать обновления Windows
Windows

Скрыть и показать обновления Windows

Google Reader Readable — убрать визуальный шум
Инструменты

Google Reader Readable — убрать визуальный шум

Два скрытых входящих Facebook — как найти
Социальные сети

Два скрытых входящих Facebook — как найти

Вернуть панель Outlook снизу
Outlook

Вернуть панель Outlook снизу

Устранение высокой загрузки GPU процессом Desktop Window Manager
Windows 11

Устранение высокой загрузки GPU процессом Desktop Window Manager