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

Установка и запуск Akkoma на Raspberry Pi

8 min read Самохостинг Обновлено 06 Jan 2026
Akkoma на Raspberry Pi — быстрый гид
Akkoma на Raspberry Pi — быстрый гид

Akkoma — это современный сервер Fediverse, совместимый с ActivityPub и основанный на кодовой базе Pleroma. На Raspberry Pi вы можете развернуть Akkoma в Docker: подготовьте Pi как веб‑сервер, установите Docker и Docker Compose, затем клонируйте репозиторий Akkoma, соберите контейнеры и настройте обратный прокси (Apache) с TLS. В статье приведён пошаговый план, контрольные списки, рекомендации по безопасности, восстановлению и тестам приёмки.

Что вы получите из этого руководства

  • Пошаговая инструкция по установке Akkoma на Raspberry Pi.
  • Команды и примеры конфигурации Apache и Docker Compose.
  • Контрольные списки для администратора и оператора.
  • Рекомендации по безопасной настройке, бэкапу и восстановлению.
  • Сценарии тестирования и критерии приёмки, мермейд‑дерево принятия решений.

Введение: что такое Akkoma и зачем его ставить

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

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

Краткое определение: Fediverse — распределённая сеть серверов для социальных сетей, которые общаются между собой через стандарты вроде ActivityPub.

Что нужно заранее (минимальные требования)

  • Raspberry Pi 4 (рекомендуется ≥4GB RAM) или более мощная модель.
  • Карта microSD 16 ГБ и больше (лучше NVMe/SSD через адаптер для длительного хранения и производительности).
  • Питание, стабильный интернет и статический или динамический внешний адрес с пробросом портов/динамическим DNS.
  • Установленная операционная система: Raspberry Pi OS (Lite) или Debian‑производная (обновлённая).
  • Базовые навыки работы в терминале и SSH.

Программные требования: Docker и Docker Compose (или плагин docker compose), Apache (или другой обратный прокси), Certbot для TLS, PostgreSQL будет запущен в контейнере Akkoma.

Важно: Akkoma использует порт 4000 внутри контейнера — прокси или firewall должен корректно перенаправлять трафик.

Подготовка Raspberry Pi (быстрое руководство)

  1. Обновите систему:
sudo apt update && sudo apt upgrade -y
  1. Установите базовые утилиты:
sudo apt install -y curl git sudo nano ufw
  1. Установите Docker (рекомендуемый быстрый способ):
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
  1. Установите Docker Compose (проверяйте актуальную версию; альтернативно можно использовать пакет из репозиториев):
sudo apt install -y docker-compose

Примечание: на некоторых системах потребуется установка плагина docker compose (docker-compose-plugin). Проверяйте docker compose version.

  1. Включите базовую защиту: откройте только нужные порты (80, 443). Пример UFW:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Важно: не открывайте порт 4000 наружу, если используете обратный прокси.

Клонирование Akkoma и начальные шаги

Переключитесь в домашнюю директорию и клонируйте репозиторий Akkoma (ветка stable):

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

Установите переменные окружения для Docker Compose:

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

Объяснение: .env содержит переменные, которые Docker Compose использует при сборке контейнеров; DOCKER_USER фиксирует UID:GID, чтобы файлы в контейнерах совпадали с вашим пользователем на хосте.

Сборка контейнера занимает несколько минут:

./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). Компиляция может занять заметное время — на слабых Pi это может быть 10–20 минут.

При генерации инстанса вас попросят ввести:

  • Домен без http:// или https://
  • Имя инстанса (короткая фраза)
  • Email администратора
  • Настройки индексирования для поисковых систем (да/нет)
  • Сохранение конфигурации в базу (выберите yes, чтобы пользоваться web‑админкой)
  • Хост базы данных — в большинстве случаев установите db
  • Имя базы и пользователя: akkoma
  • Пароль базы: akkoma (рекомендуется изменить на более сильный)
  • Использование RUM индексов (y — ускоряет поиск)
  • Порт приложения (по умолчанию 4000)
  • IP‑адрес для прослушивания — 0.0.0.0

Файл сгенерируется как config/generated_config.exs. Скопируйте его в config/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

Установка фронтендов и создание админа

Установите фронтенды (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

Подтвердите введённые данные и сохраните ссылку для сброса пароля — она пригодится, когда инстанс будет поднят и доступен по HTTP/HTTPS.

Настройка обратного прокси Apache и TLS

Создайте файл конфигурации Apache:

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

Пример содержимого (ProxyPassReverse исправлен на корректный URL):



    ServerName your-domain-name.tld

    ProxyPass / http://127.0.0.1:4000/
    ProxyPassReverse / http://127.0.0.1:4000/
    ProxyPreserveHost On

Сохраните и включите сайт:

sudo a2ensite akkoma.conf
sudo service apache2 restart

Запустите Certbot для получения TLS‑сертификата (следуйте подсказкам):

sudo certbot

После успешного получения сертификата перезапустите Apache:

sudo service apache2 restart

Наконец, поднимите Akkoma в фоне:

cd ~/akkoma
docker-compose up -d

Подождите несколько минут, затем откройте ссылку сброса пароля, сохранённую ранее, и задайте надёжный пароль.

Настройка фронтенда и базовые параметры инстанса

Откройте админку по адресу https://your-domain-name.tld/pleroma/admin.

В разделе Settings > Frontend вы можете:

  • Выбрать фронтенд для пользователей (pleroma‑fe по умолчанию).
  • Загружать наборы иконок и изображения фона.
  • Включить/отключить поддерживаемые диалекты Markdown.
  • Настроить стиль отображения диалогов (tree/list).

Пример конфигурации, использованной в демонстрации:

  • Включён зелёный цвет для строк с префиксом >.
  • Отображение бесед — дерево.
  • Загружены логотип и предупреждение для NSFW.

В разделе Settings > Instance задайте имя сайта, описание, лимиты (длина поста, размер файла, аватаров). По умолчанию вы можете оставить 4000 порт и разумные лимиты; при необходимости увеличьте их. Помните: очень большие лимиты могут ударить по диску и памяти.

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

Ограничения и рекомендации по лимитам

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

Рекомендации:

  • Лимит длины поста для локальных пользователей: разумно поставить 10–50k символов; домашняя инстанс может выставить выше, но это повлияет на хранение и индексирование.
  • Лимит для внешних (federated) пользователей: гораздо меньший, чтобы избежать злоупотреблений.
  • Ограничивайте размер загрузок (например, до 50–200 МБ), если на Pi нет SSD.

Жизненный цикл инстанса: бэкапы, апгрейды и обслуживание

Бэкапы базы данных (пример):

docker-compose exec db pg_dump -U akkoma akkoma > ~/akkoma-backups/akkoma_$(date +%F).sql

Резервные копии конфигурации и медиа:

rsync -a --delete ~/akkoma/volumes/ /path/to/backup/storage/akkoma_volumes/

Обновление Akkoma (вкратце):

  1. git pull в папке репозитория.
  2. Пересборка контейнеров: ./docker-resources/build.sh и docker-compose up -d --build.
  3. Прогон миграций: ./docker-resources/manage.sh mix ecto.migrate.

Перед обновлением всегда делайте бэкап базы и томов.

Диагностика и устранение неполадок (частые проблемы)

  • Проблема: сайт не отвечает на порту 80/443
    • Проверьте статус Apache: sudo systemctl status apache2.
    • Убедитесь, что Certbot получил сертификат и VirtualHost включён.
  • Проблема: контейнеры Akkoma падают
    • Просмотрите логи: docker-compose logs -f.
    • Проверьте свободное место на /var/lib/docker и на диске.
  • Проблема: миграции не проходят
    • Убедитесь, что контейнер db доступен и переменные окружения для доступа к базе корректны.
  • Проверить прослушиваемые порты на хосте:
sudo lsof -i -P -n | grep LISTEN

Безопасность и жёсткая настройка (рекомендации)

  • Используйте TLS (Certbot / Let’s Encrypt).
  • Ограничьте SSH доступ (ключи, не root, смените порт по необходимости).
  • Настройте fail2ban для защиты от перебора паролей.
  • Не публикуйте порт 4000 наружу — используйте обратный прокси.
  • Регулярно обновляйте систему и Docker‑образы.
  • Настройте ротацию логов и мониторинг свободного места.

Правовые и приватные аспекты

  • Если вы планируете обрабатывать персональные данные жителей ЕС, ознакомьтесь с принципами GDPR: минимизация данных, доступ и удаление по запросу, протоколирование согласий.
  • Храните политики модерации и конфиденциальности в доступном месте на сайте.

Контрольные списки

Администратор (быстрая проверка перед запуском):

  • Docker установлен и работает
  • Docker Compose указан или доступен как плагин
  • Apache настроен и сайт доступен локально
  • Certbot получил сертификат
  • [ ] Конфигурация config/prod.secret.exs создана
  • Бэкап базы создан
  • Админский аккаунт создан и подтверждён

Оператор (ежедневные задачи):

  • Проверить логи контейнеров на ошибки
  • Проверить свободное место на дисках
  • Убедиться, что автоматические обновления прошли успешно
  • Проверить очереди задач (если есть задержки в доставки)

Критерии приёмки

Чтобы считать инстанс готовым к публичному использованию, выполните эти проверки:

  • Домен доступен по HTTPS и сертификат валиден.
  • Админка доступна и работает: /pleroma/admin.
  • Пользователь может зарегистрироваться (если регистрация включена) или админ создаёт учётную запись.
  • Отправка и получение локальных и федеративных постов работает (проверено подпиской на удалённого пользователя).
  • Медиа загружаются и отображаются.

Тесты приёмки (примерные сценарии)

  1. Создать пост с текстом 1000 символов — пост должен появиться в публичной ленте.
  2. Загрузить изображение 5 МБ — файл должен сохраниться и отображаться.
  3. Подписаться на учётную запись в Mastodon — фоллоу должен завершиться успешно.
  4. Выполнить экспорт/импорт настроек (если требуется) — файл конфигурации должен соответствовать ожиданиям.

Восстановление при инциденте (runbook)

  1. Оцените ситуацию: какие сервисы упали, какие контейнеры не стартуют.
  2. Для восстановления базы используйте последний дамп:
cat akkoma_YYYY-MM-DD.sql | docker-compose exec -T db psql -U akkoma akkoma
  1. Восстановите тома медиа из резервной копии через rsync.
  2. Перезапустите контейнеры: docker-compose down && docker-compose up -d.
  3. Проверяйте логи и следите за поведением в течение 24 часов.

Решение: стоит ли выбирать Akkoma — дерево решений

flowchart TD
  A[Хочу свой Fediverse‑сервер] --> B{Имеется ли Raspberry Pi?
}
  B -- Да --> C{Нужна ли лёгкая установка и Pleroma‑совместимость?}
  B -- Нет --> D[Рассмотрите VPS или другой хост]
  C -- Да --> E[Выбор: Akkoma
'удобный, гибкий']
  C -- Нет --> F[Рассмотрите MissKey или Mastodon
'альтернативы']
  E --> G[Развертывание в Docker на Pi]
  G --> H[Настройка прокси и TLS]

Сравнение альтернатив (кратко)

  • Mastodon — ориентирован на микроблоги, большая экосистема, требует больше ресурсов.
  • MissKey — богатый функционал фронтенда, больше интерактивных возможностей.
  • Pleroma — лёгкая и гибкая, подходит для маломощного железа.

Akkoma сочетает в себе простоту Pleroma и дополнительные удобства от MissKey.

Небольшой глоссарий (1 линия определения)

  • Fediverse — распределённая сеть совместимых социальных серверов.
  • ActivityPub — протокол федерации для обмена сообщениями между инстансами.
  • Docker Compose — инструмент для запуска многоконтейнерных приложений.

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

Как изменить порт приложения?

Порт на котором слушает приложение указывается в конфигурации при генерации инстанса (по умолчанию 4000). При изменении порта обновите конфигурацию обратного прокси.

Можно ли использовать Nginx вместо Apache?

Да, Akkoma работает с любым корректно настроенным обратным прокси (Nginx, Caddy и т. п.). В конфиге прокси важно правильно направить запросы на локальный порт 4000.

Что делать, если контейнеры не собираются из‑за зависимостей?

Проверьте версию Docker и Docker Compose; часто помогает обновление до актуальных версий и очистка кэша сборки ( docker-compose build --no-cache ).

Заключение

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

Активный Akkoma-инстанс в браузере

Вам остаётся только зарегистрировать учётную запись, пригласить первых пользователей и начать развивать своё сообщество во Fediverse.

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

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство