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

Установка AirSonic на CentOS 8

• 5 min read • Linux • Обновлено 18 Nov 2025
Установка AirSonic на CentOS 8 — пошагово
Установка 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

  1. Создайте системного пользователя для запуска сервиса:
useradd airsonic
  1. Создайте каталоги для приложения и медиатеки:
mkdir /var/airsonic /var/media_files
  1. Скачайте актуальный war‑файл в каталог приложения (пример с релизом v10.4.1):
wget https://github.com/airsonic/airsonic/releases/download/v10.4.1/airsonic.war --output-document=/var/airsonic/airsonic.war
  1. Установите права владельца на каталоги:
chown -R airsonic /var/airsonic
chown -R airsonic /var/media_files
  1. Скачайте преднастроенный 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
  1. Перезагрузите демон 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

Страница входа AirSonic

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

Начальная страница AirSonic

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

Настройки пользователя AirSonic

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

Папки медиа AirSonic

Шаг 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)

  1. Остановить сервис:
systemctl stop airsonic
  1. Вернуть старую версию war (если есть резервная копия):
cp /var/backup/airsonic.war /var/airsonic/airsonic.war
chown airsonic: /var/airsonic/airsonic.war
systemctl start airsonic
  1. Откат systemd unit: замените /etc/systemd/system/airsonic.service на резервную копию и выполните systemctl daemon-reload.

  2. Если проблема связана с настройками 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 — напишите, и я подготовлю конкретные команды.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро