Установка и настройка Ampache на Ubuntu 20.04
Почему этот гайд
Ampache позволяет организовать собственный стриминг музыки и видео с веб-интерфейса и совместим с клиентами Subsonic. Руководство рассчитано на администратора сервера с доступом по root или sudo и покрывает распространённые проблемы и последующие шаги по эксплуатации.
Краткий список возможностей Ampache
- API и потоковая передача в любые клиенты
- Настраиваемые каталоги и права доступа
- HTML5-плеер в браузере
- Поддержка авторизации: MySQL/MariaDB, LDAP, HTTP, PAM
- Совместимость с Subsonic-клиентами
Требования
- Сервер с Ubuntu 20.04
- Доступ root или пользователь с sudo
- Зарезервированное место для медиатеки (рекомендуется отдельный диск или смонтированный раздел)
- Домейное имя, указывающее на сервер (например, ampache.example.com)
Подготовка системы
Перед началом обновите пакеты и перезагрузите систему при необходимости:
apt-get update -y
apt-get upgrade -y
rebootВажно: после обновления ядра или критичных пакетов перезагрузка может быть обязательна.
Установка LAMP и зависимостей
Ampache требует веб-сервер, PHP и базу данных. Установите необходимые пакеты:
apt-get install apache2 libapache2-mod-php php php-cli mariadb-server php-mysql php-curl php-json php-gd php-xml unzip curl git zip ffmpeg -yОткройте PHP-конфиг для Apache и скорректируйте параметры под медиасервер:
nano /etc/php/7.4/apache2/php.iniИзмените/добавьте значения:
upload_max_filesize = 100M
post_max_size = 100M
date.timezone = Europe/Moscow
expose_php = OffСохраните и перезапустите Apache:
systemctl restart apache2Примечание: timezone локализован под Россию. При необходимости укажите ваш часовой пояс.
Настройка MariaDB
Защитите установку MariaDB:
mysql_secure_installationОткройте оболочку MariaDB и создайте базу и пользователя для Ampache (замените пароль на надёжный):
mysql -u root -p
CREATE DATABASE ampachedb;
CREATE USER 'ampache'@'localhost' IDENTIFIED BY 'strong_password_here';
GRANT ALL PRIVILEGES ON ampachedb.* TO 'ampache'@'localhost';
FLUSH PRIVILEGES;
EXIT;Совет: не давайте прямой удалённый root-доступ к СУБД, держите подключение локальным.
Скачивание и развертывание Ampache
Скачайте текущую релизную сборку (пример для v4.1.1):
wget https://github.com/ampache/ampache/releases/download/4.1.1/ampache-4.1.1_all.zip
unzip ampache-4.1.1_all.zip -d /var/www/html/ampache
chown -R www-data:www-data /var/www/html/ampacheАктивируйте необходимые .htaccess для поддиректорий:
cd /var/www/html/ampache
mv rest/.htaccess.dist rest/.htaccess
mv play/.htaccess.dist play/.htaccess
mv channel/.htaccess.dist channel/.htaccessСоздайте каталог для музыки и назначьте владельца:
mkdir -p /data/Music
chown -R www-data:www-data /data/MusicРекомендация: если музыка хранится на отдельном диске, смонтируйте его в /data/Music и укажите в /etc/fstab.
Конфигурация Apache
Создайте виртуальный хост для Ampache:
nano /etc/apache2/sites-available/ampache.confВставьте конфигурацию (измените ServerName на ваш домен):
ServerName ampache.linuxbuz.com
DocumentRoot /var/www/html/ampache
AllowOverride All
Require all granted
RewriteEngine on
CustomLog /var/log/apache2/ampache.access.log common
ErrorLog /var/log/apache2/ampache.error.log
Проверьте конфигурацию и активируйте сайт и модули:
apachectl configtest
a2ensite ampache
a2enmod expires rewrite
systemctl reload apache2Если вы используете UFW, откройте порты:
ufw allow OpenSSH
ufw allow 'Apache Full'
ufw enableSSL с Let’s Encrypt (Certbot)
Установите Certbot и модуль для Apache:
apt-get install certbot python3-certbot-apache -y
certbot --apache -d ampache.linuxbuz.comВо время диалога укажите e-mail и выберите редирект HTTP→HTTPS (рекомендуется). Проверьте автоматическое продление:
certbot renew --dry-runВажно: Certbot обычно устанавливает systemd-таймер для автоматического продления. Если вы предпочитаете cron, добавьте тестовый сценарий в crontab.
Первичная настройка через веб-интерфейс
Откройте в браузере https://ampache.linuxbuz.com и следуйте мастеру установки. Примеры экранов:

Выберите язык и нажмите Start Configuration.

Убедитесь, что все необходимые PHP-расширения установлены, затем Continue.

Укажите данные базы: DB host localhost, имя базы ampachedb, пользователя ampache и его пароль. Снимите Create Database, включите Create Tables, снимите Create Database Users, нажмите Insert Database.

Выберите ffmpeg для транскодирования и нажмите Create Config.

Создайте администратора, затем выполните Update Now для обновления пакетов и плагинов.

После входа вы увидите дашборд Ampache и сможете создавать каталоги (Add Catalog), сканировать медиатеку и настраивать права.

Рекомендации по эксплуатации и безопасность
- Права и владельцы: держите каталоги и конфигурационные файлы под www-data, но избегайте избыточных прав 777.
- Отключите удалённый доступ к MariaDB: bind-address = 127.0.0.1 если внешний доступ не нужен.
- Ограничьте доступ к /var/www/html/ampache/.git и другим скрытым папкам через .htaccess или конфиг Apache.
- Настройте fail2ban для защиты формы входа и SSH.
- Регулярные бэкапы: конфигурация /etc/letsencrypt, база данных и /data/Music. Используйте rsync или инструмент резервного копирования.
- Минимизируйте раскрытие PHP: expose_php = Off, display_errors = Off в продакшн.
Автоматизация задач
- Автообновление SSL: certbot работает с systemd timer; проверяйте renew –dry-run регулярно.
- Плановое сканирование медиатеки: вы можете добавить cron-задачу, которая вызывает URL сканирования через curl с ключом администратора, либо настроить встроенные задачи в Ampache.
Пример cron (раз в сутки) для веб-скана каталога:
0 3 * * * /usr/bin/curl -s 'https://ampache.linuxbuz.com/rest.php?action=refresh_catalog&key=ВАШ_КЛЮЧ' >/dev/null 2>&1Замените ВАШ_КЛЮЧ на ключ API администратора или используйте защищённый метод.
Отладка распространённых ошибок
- Ошибка 500 после установки: проверьте /var/log/apache2/ampache.error.log и права файлов.
- Ошибка соединения с БД: проверьте правильность пользователя/пароля и что MariaDB слушает localhost.
- Проблемы с транскодированием: убедитесь, что ffmpeg установлен и путь в конфигурации Ampache корректен.
- Ошибки .htaccess: включите модуль rewrite (a2enmod rewrite) и AllowOverride All в конфигурации каталога.
Критерии приёмки
- Сайт доступен по HTTPS без предупреждений браузера.
- Админ-панель открывается, аутентификация успешна.
- Добавленный каталог сканируется и музыка отображается.
- Воспроизведение файлов работает в браузере и/или через Subsonic-совместимый клиент.
Чек-листы по ролям
Администратор:
- Установить и обновить пакеты, настроить Apache и MariaDB
- Настроить SSL и автоматическое продление
- Настроить бэкап базы и медиа
Оператор резервного копирования:
- Еженедельное тестовое восстановление
- Ротация резервов (удаление старых резервов)
Пользователь (power user):
- Создать плейлисты, настроить мобильные клиенты
- Тестировать воспроизведение и отчёты об ошибках
Мини-методология развёртывания
- Подготовка сервера: обновить, создать раздел для медиа
- Установка зависимостей LAMP
- Настройка БД и пользователей
- Развёртывание Ampache и проверка прав
- Настройка веб-хоста и SSL
- Первичный запуск и проверка функционала
- Настройка мониторинга, бэкапов и автоматизации
Технические сниппеты и полезные команды
Проверить статус Apache и MariaDB:
systemctl status apache2
systemctl status mariadbПросмотр логов ошибок Apache:
tail -n 200 /var/log/apache2/ampache.error.logЭкспорт базы для бэкапа:
mysqldump -u root -p ampachedb > /root/backup/ampachedb-$(date +%F).sqlСкрипт для бэкапа каталога музыки:
rsync -a --delete /data/Music/ /backup/ampache/music/Безопасность и приватность
- Храните /etc/letsencrypt и приватные ключи в резервной копии с ограниченным доступом.
- Для GDPR-совместимости: обеспечьте пользователя возможностью удаления своих данных и логов доступа; храните логи не дольше, чем требуется.
- Минимизируйте данные, передаваемые третьим сервисам при интеграции.
Короткое объявление для пользователей (100–200 слов)
Мы развернули Ampache — приватный стриминговый сервер музыки и видео на базе Ubuntu 20.04. Теперь вы можете загружать личную медиатеку, слушать через браузер и мобильные Subsonic-совместимые клиенты, управлять доступами и плейлистами. Внешнее подключение защищено Let’s Encrypt, а административные функции доступны через веб-интерфейс. Если вы хотите получить доступ или добавить треки, обратитесь к администратору.
Частые вопросы
Q: Можно ли хранить медиа на внешнем сетевом хранилище?
A: Да. Смонтируйте NFS/SMB в /data/Music и назначьте права www-data.
Q: Поддерживает ли Ampache потоковое транскодирование?
A: Да, при установленном ffmpeg Ampache может транскодировать треки для потоковой передачи.
Q: Как настроить мобильный доступ?
A: Используйте Subsonic-совместимые клиенты и укажите URL вашего сервера с HTTPS и учетные данные.
Q: Как автоматизировать сканирование новых файлов?
A: Используйте cron или webhook, который вызывает REST-метод Ampache для обновления каталога.
1-line glossary
- Ampache — веб-приложение для самохостинга медиатеки и стриминга.
- LAMP — стек: Linux, Apache, MySQL/MariaDB, PHP.
- Certbot — клиент для автоматического получения SSL от Let’s Encrypt.
- ffmpeg — инструмент для конвертации и транскодирования медиаданных.
Заключение
Вы установили Ampache, настроили веб-сервер, базу данных и SSL. Следующие шаги: добавить каталоги, протестировать воспроизведение на разных клиентах, настроить регулярные бэкапы и мониторинг. Для продакшн-эксплуатации уделите особое внимание безопасности, правам доступа и автоматическому продлению сертификатов.
Важно: перед переносом большого объёма медиа протестируйте производительность сервера и пропускную способность сети.
Похожие материалы
Снять стоп-моушн на телефоне — пошагово
Автосинхронизация Dropbox на Android
Как пользоваться Google — понятный гид
Лучшие онлайн-курсы флейты — 9 ресурсов
Как исправить ошибку 0xc0000420 в Windows