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

Установка Airsonic на Ubuntu 18.04 с Nginx и Letsencrypt

• 6 min read • Linux • Обновлено 21 Nov 2025
Airsonic на Ubuntu 18.04 — установка с Nginx и SSL
Airsonic на Ubuntu 18.04 — установка с Nginx и SSL

Что такое Airsonic

Airsonic — свободный open source медиасервер на Java. Позволяет стримить музыку и видео по HTTP, поддерживает форматы MP3, FLAC, APE, WMA и другие контейнеры, которые можно передавать по HTTP. В этом руководстве мы развернём standalone‑версию через .war-файл и настроим доступ по HTTPS через Nginx.

Важно: эта инструкция ориентирована на Ubuntu 18.04 и предполагает доступ root или sudo.

Кому пригодится это руководство

  • Сисадминам, которые хотят развернуть локальный медиасервер.
  • Домашним энтузиастам, желающим слушать музыку удалённо.
  • Командам, которые хотят тестовую инстанцию Airsonic под обратным прокси.

Предварительные требования

  • Ubuntu 18.04 64‑bit.
  • Права root или sudo.
  • DNS‑запись вида music.example.com, указывающая на сервер (замените на свой домен).

Что мы сделаем

  1. Установим Java (OpenJDK/Oracle‑вариант, как в оригинальной инструкции).
  2. Развернём Airsonic как standalone .war и создадим systemd‑сервис.
  3. Получим SSL‑сертификат от Let’s Encrypt.
  4. Настроим Nginx как обратный прокси с HTTPS.
  5. Включим базовый UFW и правила.
  6. Пройдём тестирование и базовую настройку Airsonic.

Шаг 1 — Установка Java OpenJDK / Oracle Java

Airsonic — Java‑приложение, для работы требуется JRE/JDK версии 1.8 (Java 8). В оригинальной инструкции используется PPA webupd8team для установки Oracle Java 8. На современных системах можно использовать OpenJDK 8 или более новый OpenJDK, но если вам нужен именно oracle‑пакет, следуйте ниже.

Установите вспомогательные пакеты и добавьте PPA (если вы доверяете источнику):

sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:webupd8team/java -y

Установите Java 8 (oracle‑инсталлятор требует принятия лицензионного соглашения при установке в интерактивном режиме):

sudo apt update
sudo apt install oracle-java8-installer -y

Проверьте установленную версию:

java -version

Примечание: если вы хотите использовать OpenJDK (более актуально с точки зрения безопасности и лицензирования), замените пакет установки на openjdk-8-jre или openjdk-11-jre.

Шаг 2 — Установка и настройка Airsonic (standalone .war)

Создадим системного пользователя и рабочую директорию:

sudo useradd -r -m -U -d /opt/airsonic -s /bin/false airsonic
sudo mkdir -p /opt/airsonic

Перейдите в папку и загрузите .war‑пакет (пример из оригинала использует v10.1.1 — при повторной установке проверьте релизы на GitHub):

cd /opt/airsonic
sudo wget https://github.com/airsonic/airsonic/releases/download/v10.1.1/airsonic.war
sudo chown -R airsonic:airsonic /opt/airsonic

Загрузка файла airsonic.war в /opt/airsonic

Создаём systemd‑юнит для автоматического запуска:

sudo tee /etc/systemd/system/airsonic.service > /dev/null <<'UNIT'
[Unit]
Description=Airsonic Media Server
After=remote-fs.target network.target
AssertPathExists=/opt/airsonic

[Service]
Type=simple
Environment="JAVA_JAR=/opt/airsonic/airsonic.war"
Environment="JAVA_OPTS=-Xmx700m"
Environment="AIRSONIC_HOME=/opt/airsonic"
Environment="PORT=8080"
Environment="CONTEXT_PATH=/airsonic"
Environment="JAVA_ARGS="
EnvironmentFile=-/etc/default/airsonic
ExecStart=/usr/bin/java \
          $JAVA_OPTS \
          -Dairsonic.home=${AIRSONIC_HOME} \
          -Dserver.context-path=${CONTEXT_PATH} \
          -Dserver.port=${PORT} \
          -jar ${JAVA_JAR} $JAVA_ARGS
User=airsonic
Group=airsonic

[Install]
WantedBy=multi-user.target
UNIT

Создайте файл с дефолтными переменными:

sudo tee /etc/default/airsonic > /dev/null <<'CONF'
# Set the location of the standalone war to use
JAVA_JAR=/opt/airsonic/airsonic.war

# Set any java opts separated by spaces
JAVA_OPTS=-Xmx700m

AIRSONIC_HOME=/opt/airsonic
PORT=8080
CONTEXT_PATH=/airsonic
# Bind to localhost by default (useful при обратном прокси)
JAVA_ARGS=--server.address=127.0.0.1
CONF

Перезагрузите systemd и запустите сервис:

sudo systemctl daemon-reload
sudo systemctl start airsonic
sudo systemctl enable airsonic

Проверьте, что служба слушает порт 8080:

sudo netstat -plntu | grep 8080

Вывод netstat с прослушиваемым портом 8080

Если сервис не запускается, смотрите логи:

sudo journalctl -u airsonic -b --no-pager | tail -n 50

Важно: если ваш Airsonic должен принимать трафик на внешнем интерфейсе без прокси — уберите --server.address=127.0.0.1 или укажите нужный IP.

Шаг 3 — Получение SSL‑сертификата Letsencrypt

Для публикации Airsonic по HTTPS используем Nginx как обратный прокси и Let’s Encrypt для сертификатов. Установите certbot:

sudo apt install letsencrypt -y

Остановите сервисы, которые могут слушать 80/443 (если используете standalone режим certbot):

sudo systemctl stop nginx

Сгенерируйте сертификат для вашего домена (замените на свой домен):

sudo certbot certonly --standalone -d music.hakase-labs.io

При запросе укажите email, согласитесь с условиями и выберите опции по уведомлениям. После успешного выполнения сертификаты будут в /etc/letsencrypt/live/your-domain/.

Запрос certbot для создания сертификата Letsencrypt

Результат выдачи сертификата Letsencrypt — путь к сертификатам

Автоматическое продление: certbot устанавливает cron или systemd‑таймер для certbot renew. Для теста можно выполнить:

sudo certbot renew --dry-run

Если вы используете --standalone только для первого получения, в дальнейшем используйте --nginx или настройте автоматическое продление вместе с перезагрузкой nginx.

Шаг 4 — Установка и конфигурация Nginx как обратного прокси

Установите Nginx:

sudo apt install nginx -y

Создайте виртуальный хост:

sudo tee /etc/nginx/sites-available/airsonic > /dev/null <<'NGCONF'
server {
    listen 80;
    listen [::]:80;
    server_name music.hakase-labs.io;
    return 301 https://$server_name$request_uri;
}

server {
    listen              443 ssl;
    server_name         music.hakase-labs.io;
    ssl_certificate /etc/letsencrypt/live/music.hakase-labs.io/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/music.hakase-labs.io/privkey.pem;

    location /airsonic {
      proxy_set_header X-Real-IP         $remote_addr;
      proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto https;
      proxy_set_header X-Forwarded-Host  $http_host;
      proxy_set_header Host              $http_host;
      proxy_max_temp_file_size           0;
      proxy_pass                         http://127.0.0.1:8080;
      proxy_redirect                     http:// https://;
    }
}
NGCONF

Активируйте сайт, проверьте конфигурацию и перезапустите nginx:

sudo ln -s /etc/nginx/sites-available/airsonic /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
sudo systemctl enable nginx

Установка Nginx и конфигурация обратного прокси для Airsonic

Проверьте, что nginx слушает 443 порт:

sudo netstat -plntu | grep 443

Вывод netstat для порта Nginx (443)

Совет: для улучшения безопасности HTTPS включите современные шифры и HSTS в конфигурации nginx.

Шаг 5 — Настройка UFW (основной брандмауэр)

Разрешите SSH, HTTP и HTTPS и включите UFW:

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

Проверьте статус правил:

sudo ufw status verbose

Включение UFW и правила для SSH/HTTP/HTTPS

Важно: если у вас есть дополнительные сервисы (например, админ‑панель на другом порту), добавьте правила заранее, чтобы не потерять доступ.

Шаг 6 — Тестирование и базовая настройка Airsonic

Откройте в браузере:

https://music.hakase-labs.io/airsonic/

Вы увидите страницу логина Airsonic.

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

По умолчанию логин/пароль: admin/admin. Первое, что нужно сделать — сменить пароль администратора.

Смена пароля администратора

  1. Войдите под admin/admin.
  2. Откройте настройки администратора и измените пароль.

Форма смены пароля администратора Airsonic

Настройки пользователя admin — включение смены пароля

Настройка медиа‑папок

Создайте папку для музыки и отдайте права пользователю airsonic:

sudo mkdir -p /var/music
sudo chown -R airsonic:airsonic /var/music

Перейдите в веб‑панель Airsonic → Settings → Media folders, включите папку Music и сохраните. Затем на вкладке Users дайте пользователю admin доступ к папке.

Параметры медиа‑папок в панели Airsonic

Вкладка Пользователи — доступ к папке Music для admin

После добавления музыки вы увидите интерфейс с библиотекой:

Панель управления Airsonic с загруженным контентом


Дополнительные рекомендации и лучшие практики

Автоматическое обновление сертификатов

  • Убедитесь, что certbot установлен с systemd‑таймером: sudo systemctl list-timers | grep certbot.
  • Если вы используете --standalone для получения, убедитесь, что nginx останавливается во время certbot renew или используйте --nginx плагин.

Безопасность и жёсткая конфигурация

  • Запускайте Airsonic под отдельным пользователем (мы создали airsonic).
  • Отключите неиспользуемые HTTP методы в nginx.
  • Настройте fail2ban для защиты от bruteforce логинов (особенно для SSH и если вы открыли Airsonic наружу).
  • Используйте сильные пароли или внешний провайдер аутентификации (если доступно).

Резервное копирование

  • Делайте резервные копии папки AIRSONIC_HOME (/opt/airsonic) и базы данных/настроек.
  • Бэкап медиафайлов (/var/music) храните отдельно.

Логи и отладка

  • Логи systemd: sudo journalctl -u airsonic -f
  • Логи nginx: /var/log/nginx/error.log и /var/log/nginx/access.log

Когда такой подход не подходит (примеры)

  • Нужен кластерный или HA‑развёрнутый медиасервер — standalone .war + один сервер не обеспечит высокой доступности.
  • Если требуется интеграция с централизованной системой аутентификации (LDAP/SSO), возможны дополнительные настройки или плагины.
  • На слабых машинах Java‑приложения потребляют значительные ресурсы — учитывайте RAM/CPU.

Альтернативные подходы

  • Использовать Docker‑контейнеры (официальные/сообщества) для изоляции и удобного обновления.
  • Установить Airsonic из пакета (если доступен) вместо .war.
  • Использовать другой медиасервер (например, Ampache, Navidrome) если нужен более лёгкий стек.

Чек‑лист для разных ролей

Администратор (быстрый чек):

  • Создан пользователь airsonic.
  • .war размещён в /opt/airsonic с корректными правами.
  • systemd‑юнит добавлен и активирован.
  • Nginx настроен и SSL действителен.
  • UFW настроен.

DevOps (дополнительно):

  • Автообновление сертификатов тестировано.
  • Мониторинг (логсы, alert на падение сервиса) настроен.
  • Резервное копирование конфигураций и медиа настроено.

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

  • Сайт доступен по HTTPS: https://music.example.com/airsonic/
  • Админ может войти под новым паролем.
  • Медиафайлы воспроизводятся в браузере/клиентах.
  • Сертификат действителен и продлевается без вмешательства.

Типичные ошибки и способы устранения

  • Сервис не стартует: смотрите journalctl -u airsonic. Частая причина — некорректный путь к .war или права доступа.
  • nginx не запускается: nginx -t покажет синтаксические ошибки.
  • Certbot не может получить порт 80: проверьте, что nginx остановлен или используйте DNS‑/webroot‑метод.

Команды‑шпаргалка

  • Запуск/стоп Airsonic: sudo systemctl start|stop|status airsonic
  • Логи Airsonic: sudo journalctl -u airsonic -f
  • Проверка nginx: sudo nginx -t
  • Renew certbot: sudo certbot renew --dry-run
  • Проверка портов: sudo netstat -plntu

Краткая методология развёртывания

  1. Подготовка ОС и установка Java.
  2. Размещение .war и создание systemd‑юнита.
  3. Локальная проверка работы на 127.0.0.1:8080.
  4. Получение SSL и развертывание nginx.
  5. Перенос медиа и настройка прав.
  6. Тестирование, бэкапы и мониторинг.

Глоссарий (1‑линейные определения)

  • Airsonic — Java‑медиасервер для стриминга музыки и видео.
  • .war — Java Web Archive, формат развёртывания web‑приложения.
  • Nginx — высокопроизводительный HTTP‑сервер и обратный прокси.
  • Letsencrypt / certbot — автоматизированный сервис получения бесплатных SSL‑сертификатов.

Резюме

Вы настроили Airsonic на Ubuntu 18.04 как standalone .war, упаковали его в systemd‑сервис, защитили трафик через Nginx и Letsencrypt, включили базовую защиту UFW и сделали первые шаги по администрированию и резервированию. Для продакшен‑развёртывания подумайте об автоматизации обновлений, мониторинге и HA‑архитектуре.

Полезная ссылка:

Поделиться: 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 быстро