Установка AirSonic на CentOS 8
Важно: отключение SELinux снижает уровень безопасности сервера. Если возможно, лучше настроить необходимые контексты SELinux вместо полного отключения.
Что такое AirSonic
AirSonic — это бесплатный, открытый и веб‑ориентированный медиасервер для стриминга музыки и подкастов из единого хранилища. Коротко: Java‑приложение, работающее на большинстве ОС (CentOS, RHEL, Ubuntu, Windows, macOS). Поддерживает любой аудио/видео формат и трансляцию по HTTP.
Краткое определение: AirSonic — self‑hosted медиастример на Java для больших коллекций аудио.
Предварительные требования
- Сервер с CentOS 8 и минимум 2 ГБ RAM.
- Доступ root или пользователь с sudo.
- Открытые порты 80 (HTTP) / 8080 (если используете прямой доступ).
Шаг 1 — Отключение SELinux (опционально)
По умолчанию SELinux включён в CentOS 8. В инструкции рекомендуют отключить его для упрощения установки:
Редактируйте файл /etc/selinux/config:
nano /etc/selinux/configИзмените строку:
SELINUX=disabledСохраните файл и перезагрузите систему, чтобы изменения вступили в силу.
Примечание: вместо отключения можно настроить контексты и правила SELinux для AirSonic — это повысит безопасность.
Шаг 2 — Установка Java
AirSonic работает на Java. Установите OpenJDK 8:
dnf install java-1.8.0-openjdk-develПроверьте версию:
java -versionОжидаемый вывод (пример):
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)Шаг 3 — Установка AirSonic
- Создайте системного пользователя для запуска сервиса:
useradd airsonic- Создайте каталоги для приложения и медиатеки:
mkdir /var/airsonic /var/media_files- Скачайте актуальный war‑файл в каталог приложения (пример с релизом v10.4.1):
wget https://github.com/airsonic/airsonic/releases/download/v10.4.1/airsonic.war --output-document=/var/airsonic/airsonic.war- Установите права владельца на каталоги:
chown -R airsonic /var/airsonic
chown -R airsonic /var/media_files- Скачайте преднастроенный systemd unit и файл окружения:
wget https://raw.githubusercontent.com/airsonic/airsonic/master/contrib/airsonic.service -O /etc/systemd/system/airsonic.service
wget https://raw.githubusercontent.com/airsonic/airsonic/master/contrib/airsonic-systemd-env -O /etc/sysconfig/airsonic- Перезагрузите демон systemd и запустите сервис:
systemctl daemon-reload
systemctl start airsonic
systemctl enable airsonicПроверьте статус:
systemctl status airsonicПример вывода:
? airsonic.service - Airsonic Media Server
Loaded: loaded (/etc/systemd/system/airsonic.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2019-10-28 12:29:51 EDT; 2min 6s ago
Main PID: 29564 (java)
Tasks: 18 (limit: 5060)
Memory: 315.0M
CGroup: /system.slice/airsonic.service
??29564 /usr/bin/java -Xmx700m -Dairsonic.home=/var/airsonic -Dserver.context-path=/airsonic -Dserver.port=8080 -jar /var/airsonic/airsonic.warТакже можно увидеть процесс java:
ps -ef | grep airsonicОжидаемый вывод:
airsonic 29459 1 87 12:07 ? 00:02:08 /usr/bin/java -Xmx700m -Dairsonic.home=/var/airsonic -Dserver.context-path=/airsonic -Dserver.port=8080 -jar /var/airsonic/airsonic.war
root 29496 6103 0 12:10 pts/0 00:00:00 grep --color=auto airsonicШаг 4 — Доступ к веб‑интерфейсу
Откройте порты 80 и 8080 через firewalld (если используется):
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reloadОткройте в браузере: http://your-server-ip:8080/airsonic

Вход по умолчанию: admin / admin. Нажмите Войти.

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

Перейдите в Settings → Media folders и добавьте путь к медиатеке: /var/media_files. Сохраните и запустите сканирование библиотек.

Шаг 5 — Настройка Nginx как обратного прокси
Если вы хотите обслуживать AirSonic на стандартном HTTP порту 80 и скрыть порт 8080, используйте Nginx.
Установите Nginx:
dnf install nginxСоздайте виртуальный хост:
nano /etc/nginx/conf.d/airsonic.confДобавьте:
server {
listen 80;
server_name your-server-ip;
access_log off;
error_log off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_max_temp_file_size 0;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}Проверьте конфигурацию и запустите Nginx:
nginx -t
systemctl start nginx
systemctl enable nginxТеперь AirSonic доступен по адресу: http://your-server-ip/airsonic
Безопасность и HTTPS
- Для публичного доступа обязательно настройте HTTPS (например, через Let’s Encrypt).
- Закройте ненужные порты в брандмауэре и используйте fail2ban для защиты от перебора паролей.
- Запускайте AirSonic под непривилегированным пользователем (мы создали пользователя airsonic).
- По возможности сохраните SELinux и настройте правила вместо полного отключения.
Пример быстрой настройки HTTPS через Certbot (Nginx):
dnf install certbot python3-certbot-nginx
certbot --nginx -d your-domain.example.comТраблшутинг — типовые проблемы и решения
- Сервис не запускается: проверьте журнал systemd и логи Java (
journalctl -u airsonic); - AirSonic не видит медиафайлы: проверьте права на /var/media_files и владелец должен быть airsonic;
- 404 при доступе через Nginx: убедитесь, что proxy_pass указывает на правильный порт и context path (/airsonic);
- Проблемы с памятью Java: отрегулируйте параметр -Xmx в unit‑файле systemd;
- SELinux блокирует доступ: временно включите режим permissive и проверьте AVC‑логи.
Критерии успешной установки:
- Сервис systemd находится в состоянии active (running).
- Веб‑интерфейс доступен и открывает страницу логина.
- Медиафайлы индексируются в библиотеке.
Альтернативные варианты развёртывания
- Docker / Podman: удобно для изоляции и управления зависимостями. Официального образа может не быть, но существуют community‑образы на Docker Hub.
- Использование встроенных прокси‑решений (Caddy) для автоматического HTTPS.
- Развёртывание на Windows или macOS по схожей схеме (Java, war‑файл, сервис/демон).
Роль‑ориентованные чеклисты
Администратор:
- Создать пользователя airsonic и каталоги.
- Обеспечить резервное копирование /var/airsonic и базы данных.
- Настроить HTTPS и мониторинг.
Оператор:
- Контролировать журналы (
journalctl -u airsonic). - Запускать ручной рескан библиотеки.
- Следить за использованием памяти и CPU.
Пользователь:
- Загрузить треки в /var/media_files.
- Настроить плейлисты и права доступа через веб‑интерфейс.
Откат и аварийная инструкция (Runbook)
- Остановить сервис:
systemctl stop airsonic- Вернуть старую версию war (если есть резервная копия):
cp /var/backup/airsonic.war /var/airsonic/airsonic.war
chown airsonic: /var/airsonic/airsonic.war
systemctl start airsonicОткат systemd unit: замените /etc/systemd/system/airsonic.service на резервную копию и выполните
systemctl daemon-reload.Если проблема связана с настройками Nginx — временно отключите прокси, чтобы 접근 к /airsonic шел напрямую на порт 8080.
Краткое резюме
- AirSonic — удобный self‑hosted медиасервер на Java.
- На CentOS 8 установка включает Java, пользователя, war‑файл и systemd‑unit.
- Для публичного доступа используйте обратный прокси и HTTPS.
FAQ
Q: Какие учётные данные по умолчанию? A: admin / admin. Сразу смените пароль.
Q: На каких портах работает AirSonic? A: По умолчанию приложение слушает порт 8080 и контекст /airsonic. Nginx может проксировать на 80/443.
Q: Могу ли я использовать Docker вместо прямой установки? A: Да — Docker/Podman упрощают развёртывание и изоляцию, но потребуют настройки хранения медиафайлов и сети.
Q: Что делать, если AirSonic не сканирует файлы? A: Проверьте владельца и права на /var/media_files, перезапустите сканирование в интерфейсе и просмотрите логи сервиса.
Если нужны примеры systemd‑unit подстраиваемые под ваш RAM или инструкция по настройке HTTPS с Let’s Encrypt — напишите, и я подготовлю конкретные команды.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента