Funkwhale или Ampache: что выгоднее и когда
Оба сервиса решают одну задачу — свой музыкальный стриминг вместо чужого облака, — но устроены настолько по-разному, что сравнение «что лучше» без контекста бессмысленно. Funkwhale — федеративный сервис на ActivityPub с современным стеком и вниманием к сообществу инстансов. Ampache — ветеран с середины 2000-х, который жертвует полировкой ради поддержки почти всех протоколов сразу. Разберём, чем они отличаются на практике и какой из них выгоднее под ваш конкретный сценарий.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Коротко: в чём принципиальная разница
Funkwhale — это Django-приложение с федерацией: инстансы Funkwhale видят друг друга через ActivityPub, как это устроено у Mastodon или PeerTube. Вы можете подписаться на чужую библиотеку, слушать подкасты соседнего инстанса и получать уведомления о новых релизах — без регистрации на чужом сервере. Это платформа не только для личной фонотеки, но и для небольшого музыкального сообщества или лейбла, который хочет присутствовать в федивёрсе.
Ampache — PHP-приложение с MySQL/MariaDB, без единой концепции федерации, зато с почти музейным набором протоколов: Subsonic API, DAAP, UPnP/DLNA, WebDAV — всё это работает одновременно, из коробки, без плагинов. Плюс Ampache умеет не только музыку, но и подкасты, аудиокниги, видео и живые радиопотоки в одном каталоге.
Если упростить до одной фразы: Funkwhale выгоднее, когда важна федерация и современный стек; Ampache выгоднее, когда важна совместимость со старыми и разнородными клиентами. Дальше — почему именно так.
Архитектура и стек: что реально разворачивается на сервере
Разница в архитектуре — не деталь, а главный практический фактор при выборе.
| Параметр | Funkwhale | Ampache |
|---|---|---|
| Язык/фреймворк | Python (Django) + Vue.js | PHP |
| База данных | PostgreSQL (обязательна) | MySQL/MariaDB |
| Очереди и кеш | Redis + Celery | не требуются |
| Способ установки | Docker Compose (рекомендуемый) | LEMP-стек вручную или Docker |
| Число процессов в покое | 5+ (API, воркер, БД, Redis, nginx) | 2-3 (PHP-FPM, БД, nginx) |
| Транскодирование | ffmpeg на лету | ffmpeg на лету (опционально) |
У Funkwhale минимум пять взаимодействующих сервисов даже без единого слушателя: Django-бэкенд на Gunicorn, PostgreSQL, Redis, Celery-воркер для фоновых задач (импорт, федерация, генерация превью) и nginx поверх всего этого. Это классический стек современного self-hosted веб-приложения — предсказуемый, но требовательный к памяти уже в состоянии покоя.
Ampache проще: PHP-FPM обрабатывает запросы синхронно, MariaDB хранит метаданные, отдельного брокера очередей и фонового воркера в базовой конфигурации нет — сканирование каталога и транскодирование запускаются либо из веб-интерфейса, либо по cron. Меньше движущихся частей — меньше того, что может сломаться, но и меньше гибкости для асинхронных задач вроде фоновой федерации.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверПротоколы и совместимость с клиентами
Здесь различие максимально практическое: чем именно вы будете слушать музыку.
Funkwhale отдаёт контент через собственный веб-плеер и REST/GraphQL API, под который есть несколько мобильных клиентов и интеграция с некоторыми subsonic-совместимыми приложениями (частично, не всегда полноценно — сверяйтесь с актуальным списком поддерживаемых клиентов на момент установки, экосистема меняется). Основной сценарий использования — браузер и официальный веб-интерфейс, мобильные клиенты вторичны.
Ampache говорит на языке почти всех, кто умеет стримить музыку:
- Subsonic API — это открывает доступ ко всем subsonic-совместимым клиентам: DSub и Ultrasonic на Android, play:Sub на iOS, десятки плагинов для Kodi и других медиацентров.
- DAAP — для старых Apple-устройств и iTunes, которые Subsonic не понимают.
- UPnP/DLNA — телевизоры и приставки видят Ampache как обычный медиасервер в локальной сети.
- WebDAV — библиотека доступна как сетевой диск для любого клиента, который умеет читать теги сам.
Если в доме или сообществе разнородный парк устройств — старый iPad, телевизор с DLNA, пара смартфонов с subsonic-клиентами — Ampache закрывает всё это одним сервером без танцев с бубном. Funkwhale в этом смысле уже: его сила не в числе протоколов, а в федерации.
Федерация и сообщество против личной медиатеки
Это ключевое различие в философии, а не просто список функций.
Funkwhale создавался как ответ на закрытость SoundCloud и Bandcamp — сервис, где инстансы видят друг друга. Вы подписываетесь на библиотеку коллеги на другом сервере, слушаете его подкасты в своей ленте, получаете уведомления о новых альбомах — без регистрации там. Для музыкального лейбла, подкаст-студии или сообщества, которое хочет присутствовать в федивёрсе рядом с Mastodon и PeerTube, это решает задачу, которую Ampache вообще не ставит перед собой.
Но у федерации есть цена: постоянная фоновая нагрузка на Celery-воркер и Redis, которая не выключается, пока инстанс на кого-то подписан. Если вы поднимаете Funkwhale исключительно для личной коллекции и не планируете подписки — федерацию можно отключить в настройках инстанса, и тогда самый непредсказуемый источник нагрузки просто исчезает, а профиль ресурсов приближается к обычному Django-приложению. Подробнее о том, из чего складывается память под разные сценарии, разобрано в статье сколько RAM нужно для Funkwhale.
Ampache в принципе не предлагает межсерверную федерацию — это изолированный инстанс для вашей библиотеки и ваших пользователей. Зато он берёт шире по типу контента: музыка, подкасты, аудиокниги и видео в одном каталоге, с гибкой системой прав для нескольких пользователей с разными наборами доступных папок.
Сложность установки и обслуживания
Оба сервиса разворачиваются без экзотики, но с разным профилем сложности.
Funkwhale официально устанавливается через Docker Compose с готовым шаблоном от проекта — это предсказуемый путь: скачали docker-compose.yml и .env, заполнили переменные, подняли стек. Подробный пошаговый разбор — в статье как установить и настроить Funkwhale на VPS, а готовый рабочий файл compose — в Funkwhale в Docker Compose. Сложность здесь не в самой установке, а в обслуживании многосервисного стека: обновления затрагивают несколько контейнеров одновременно, а бэкап требует одновременно дампа PostgreSQL и копии медиафайлов — процесс описан в статье бэкап и восстановление Funkwhale.
Ampache традиционно ставится на LEMP-стек (Nginx, PHP-FPM, MariaDB) вручную, что требует чуть больше ручных шагов на старте — настройка виртуального хоста, PHP-расширений, прав доступа к каталогу с медиа. Зато после установки обслуживание проще: нет отдельного брокера очередей, обновление — это замена файлов приложения плюс миграция базы через веб-интерфейс. Пошаговая установка разобрана в статье как установить и настроить Ampache на VPS.
Если у вас уже есть опыт с Docker и вы предпочитаете декларативную инфраструктуру — Funkwhale удобнее сопровождать. Если ближе классический LEMP и хочется меньше движущихся частей в проде — Ampache проще держать в голове целиком.
Ресурсы сервера и что выгоднее по деньгам
По железу разница ощутима именно в состоянии покоя, а не под нагрузкой.
| Параметр | Funkwhale | Ampache |
|---|---|---|
| CPU (минимум) | 2 vCPU | 1 vCPU |
| RAM (минимум) | 2 ГБ | 1 ГБ |
| RAM (комфортно) | 4 ГБ | 2 ГБ |
| Диск | под медиатеку + система | под медиатеку + 5 ГБ система |
| Домен | обязателен (для федерации) | не обязателен |
Ampache формально дешевле в аренде: младший тариф с 1-2 ГБ RAM его потянет без проблем, а домен не обязателен вовсе — можно работать по IP, если HTTPS не критичен. Funkwhale из-за PostgreSQL, Redis и Celery-воркера в состоянии покоя ощутимо тяжелее — комфортный старт начинается от 4 ГБ RAM, особенно если федерация включена и инстанс на кого-то подписан.
Но «выгоднее» — не только про минимальный тариф. Если задача — подписка на музыкальные каналы, участие в сообществе, современный веб-интерфейс — переплата за более мощный тариф под Funkwhale окупается функциональностью, которой у Ampache просто нет ни при каком бюджете. Если задача — стримить личную библиотеку на разнородный парк устройств, включая старую технику, Ampache даёт то же самое на более дешёвом сервере, и доплата за ресурсы под Funkwhale там бессмысленна.
Кому что выбрать: практическое правило
Берите Funkwhale, если:
- важна федерация — подписки на чужие библиотеки, присутствие в сообществе ActivityPub рядом с Mastodon и PeerTube;
- вы музыкальный лейбл, подкаст-студия или сообщество, которому нужна публичная витрина в федивёрсе;
- вам ближе современный веб-интерфейс и Docker-инфраструктура, которую удобно версионировать и переносить;
- бюджет на сервер позволяет 4+ ГБ RAM без сожалений.
Берите Ampache, если:
- у вас разнородный парк устройств — старые Apple-гаджеты без Subsonic, телевизор с DLNA, десктопные плееры, которым нужен WebDAV;
- в библиотеке вперемешку музыка, подкасты, аудиокниги и видео, и вы хотите один каталог вместо нескольких сервисов;
- нужна максимальная экономия на тарифе сервера — 1-2 ГБ RAM хватает с запасом;
- федерация и общение с другими инстансами вам не нужны в принципе — только личная или командная библиотека.
Промежуточный вариант, если ни один из пунктов не звучит решающим, — присмотреться к Navidrome: минималистичный Subsonic-only сервер, который легче Funkwhale по ресурсам и проще Ampache по числу настроек, но без федерации и без DAAP/UPnP.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Можно ли перенести библиотеку с Ampache на Funkwhale или наоборот?
Сами аудиофайлы копируются обычным rsync или через SFTP, но оба сервиса пересканируют теги и построят библиотеку заново — рейтинги, плейлисты и история прослушиваний между этими проектами напрямую не переносятся, единого формата экспорта-импорта между ними нет.
Что легче на слабом VPS — Funkwhale или Ampache?
Ampache — заметно легче в состоянии покоя, ему не нужны PostgreSQL, Redis и отдельный воркер очередей. На тарифе с 1 ГБ RAM Ampache запустится и будет работать стабильно, Funkwhale на таком объёме памяти, скорее всего, будет падать или зависать на миграциях.
У Ampache есть федерация, как у Funkwhale?
Нет, Ampache — изолированный сервер без концепции федерации между инстансами. Это фундаментальное архитектурное отличие, а не недоработка — проект решает другую задачу, ставку на широту протоколов, а не на сообщество серверов.
Нужен ли домен обязательно для обоих сервисов?
Для Funkwhale — да, федерация требует настоящего домена с валидным SSL, иначе другие инстансы не смогут на вас подписаться. Ampache прекрасно работает и по голому IP, домен нужен только для HTTPS без предупреждений браузера.
Что проще обновлять со временем?
Ampache — обновление сводится к замене файлов приложения и прогону миграции базы через веб-интерфейс или CLI. У Funkwhale обновление затрагивает несколько контейнеров одновременно (API, воркер, БД), и перед мажорным апдейтом стоит внимательно читать changelog — между релизами иногда меняются переменные окружения.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →