Tutorial

Como instalar o servidor de Streaming do Ampache Music no Ubuntu 18.04

ApacheUbuntu 18.04

O autor selecionou a Open Internet/Free Speech Fund para receber uma doação como parte do programa Write for DOnations.

Introdução

O Ampache é um servidor de streaming de música de código aberto, que permite que você hospede e gerencie sua coleção de músicas digitais em seu próprio servidor. O Ampache pode fazer o streaming de suas músicas para seu computador, smartphone ou smart TV. Isso significa que você não precisa manter cópias de suas músicas no dispositivo que deseja usar para ouvi-las. Com o Ampache, você pode gerenciar sua coleção em seu servidor usando a interface Web do Ampache e ouvi-las em qualquer lugar.

Neste tutorial, você instalará e configurará o servidor Web e PHP do Apache, que exibirão sua instância do Ampache. Você criará, em seguida, um banco de dados MySQL que o Ampache utilizará para armazenar todas as informações operacionais. Por fim, você fará o upload de suas coleções de músicas para começar a fazer o streaming delas.

Pré-requisitos

Antes de iniciar este guia, será necessário o seguinte:

Passo 1 — Instalando o Ampache

Neste passo, você baixará o arquivo ZIP do Ampache ao seu servidor, desempacotará o arquivo em seu diretório base de instalação e fará algumas alterações necessárias no sistema de arquivos.

Primeiro, faça login em seu servidor com usuário não root. Em seguida, crie o diretório base do Ampache com o seguinte comando:

  • sudo mkdir /var/www/ampache

Depois, instale o utilitário zip necessário para desempacotar o arquivo do Ampache:

  • sudo apt install zip

Agora baixe o arquivo ZIP da versão mais recente. Você pode encontrar o link da versão mais recente na página GitHub do Ampache. Nestes exemplos, é utilizada a versão 4.1.1:

  • wget https://github.com/ampache/ampache/releases/download/4.1.1/ampache-4.1.1_all.zip

Agora, desempacote o arquivo ZIP no diretório /var/www/ampache/ usando a opção -d:

  • sudo unzip ampache-4.1.1_all.zip -d /var/www/ampache/

Em seguida, defina o usuário e a identidade de grupo dos arquivos do Ampache para que o Apache consiga ler, gravar e executar os arquivos de instância do Ampache:

  • sudo chown --recursive www-data:www-data /var/www/ampache/

A opção --recursive faz com que o chown altere a propriedade e a identidade de grupo de todos os arquivos e do subdiretório em /var/www/ampache/ para o usuário e grupo do Apache, www-data.

Em seguida, renomeie os arquivos .htaccess incluídos no arquivos ZIP. Os arquivos .htaccess contêm informações de segurança e outras informações de operação para o Apache. Mas eles funcionarão apenas com o nome de extensão de arquivo .htaccess. Renomeie os arquivos .htaccess.dist fornecidos para .htaccess com os comandos a seguir:

  • sudo mv /var/www/ampache/rest/.htaccess.dist /var/www/ampache/rest/.htaccess
  • sudo mv /var/www/ampache/play/.htaccess.dist /var/www/ampache/play/.htaccess
  • sudo mv /var/www/ampache/channel/.htaccess.dist /var/www/ampache/channel/.htaccess

Agora, você criará o diretório que terá seus arquivos de música. Por razões de segurança, é melhor criar este diretório fora do diretório de instalação do Ampache. Desta maneira, ele não será legível ou modificável por solicitações Web mal-intencionadas, pois ele se encontra fora do DocumentRoot do Ampache.

Crie o diretório /data/Music com o seguinte comando:

  • sudo mkdir -p /data/Music

Em seguida, altere a propriedade e identidade de grupo do arquivo para que o Apache consiga lê-lo e gravar nele:

  • sudo chown www-data:www-data /data/Music

Para terminar a configuração, você instalará o FFmpeg, que é um utilitário que converte áudio e vídeo de um formato para outro. Por exemplo, você pode usá-lo para converter um arquivo de música em MP3 para um arquivo de música em OPUS. O Ampache utiliza o FFmpeg para converter rapidamente o áudio no formato em que foi enviado para um formato que o dispositivo de áudio possa reproduzir. Este é um processo conhecido como transcodificação.

Este processo é útil pois nem todos os dispositivos podem reproduzir todos os formatos de música. O Ampache consegue detectar quais formatos são compatíveis no aparelho de reprodução e fornece automaticamente sua música no formato adequado.

Instale o FFmpeg com o seguinte comando:

  • sudo apt install ffmpeg

Você agora desempacotou e preparou sua instância do Ampache para o instalador Web e instalou o utilitário FFmpeg. Em seguida, você configurará o Apache e o PHP para auxiliar sua instância do Ampache.

Passo 2 — Configurando o Apache e o PHP

Nesta seção, você configurará o Apache criando um novo arquivo VirtualHost, que fornecerá a configuração de que o Apache necessita para exibir seu domínio do servidor do Ampache. Você também instalará alguns módulos adicionais do PHP que ampliam as habilidades dele para cobrir as necessidades do Ampache.

Primeiro, instale alguns módulos adicionais do PHP que não estão incluídos na instalação PHP padrão:

  • sudo apt install php-mysql php-curl php-json php-gd php7.2-xml

Estes módulos fornecem as seguintes funcionalidades adicionais:

  • php-mysql — Habilita o PHP para se comunicar com um banco de dados MySQL.
  • php-curl — Habilita o PHP para usar o utilitário curl para baixar arquivos, como a arte da capa de um álbum, a partir de servidores remotos.
  • php-json — Habilita o PHP para ler e manipular arquivos de texto no formato JSON.
  • php-gd — Habilita o PHP para manipular e criar arquivos de imagem.
  • php7.2-xml — Habilita o PHP para ler e manipular arquivos de texto em formato XML.

Em seguida, habilite alguns módulos do Apache usando o utilitário a2enmod:

  • sudo a2enmod rewrite expires

Estes módulos do Apache permitem que ele faça o seguinte:

  • rewrite — Modifica ou reescreve URLs seguindo as regras fornecidas pelo Ampache.
  • expires — Configura o tempo de expiração da cache para objetos, como imagens, para que eles sejam armazenados de maneira mais eficiente pelos navegadores.

Agora, você criará o arquivo VirtualHost, que informará ao Apache como e onde carregar a instância do Ampache.

Nota: se você criou um arquivo VirtualHost de teste, que utilize seu nome de domínio do Ampache ao seguir o guia “Como instalar o Linux, o Apache, o MySQL e a pilha PHP (LAMP) no 18.04”, será necessário desabilitá-lo. Utilize o utilitário a2dissite para desabilitá-lo.

  • sudo a2dissite test_virtalhost_file

Agora, crie e abra o arquivo VirtualHost com seu editor de texto em /etc/apache2/sites-available/ampache.conf:

  • sudo nano /etc/apache2/sites-available/ampache.conf

Adicione o modelo VirtualHost seguinte em seu arquivo:

/etc/apache2/sites-available/ampache.conf
<VirtualHost *:80>

    ServerName your_domain
    DocumentRoot /var/www/ampache

    <Directory /var/www/ampache/>
        AllowOverride All
        Require all granted
    </Directory>

    RewriteEngine on
    CustomLog /var/log/apache2/ampache.access.log common
    ErrorLog  /var/log/apache2/ampache.error.log

</VirtualHost>

Você deve alterar o your_domain para o nome de domínio para o qual você redirecionou o seu servidor. Quando terminar de editar este arquivo, salve e saia do editor.

As diretivas neste arquivo VirtualHost são:

  • ServerName — O nome de domínio que o Apache usará para exibir sua instância do Ampache.
  • DocumentRoot — A localização do sistema de arquivos em seu servidor onde a instância do Ampache está localizada. Esse é o mesmo lugar que você desempacotou o arquivo ZIP no Passo 1.
  • Directory — Esta seção passa a configuração do Apache que é aplicável aos arquivos e diretórios contidos no caminho.
  • RewriteEngine — Habilita a reescrita do módulo Apache.
  • CustomLog — Cria um arquivo de registro que o Apache utilizará para registrar todos os registros de acesso ao seu servidor Ampache.
  • ErrorLog — Cria um arquivo de registro que o Apache utilizará para registrar todos os registros de erro gerados pelo seu servidor Ampache.

Em seguida, verifique com utilitário apachectl se o arquivo VirtualHost que você criou não possui nenhum erro:

  • sudo apachectl configtest

Se a configuração não contiver erros, você verá o seguinte resultado após o comando:

Output
Syntax OK

Se a configuração contiver erros, a saída mostrará o nome de arquivo e o número da linha onde o erro foi encontrado.

Nota: se você vir o erro:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

Em seguida, será necessário editar o arquivo de configuração principal do Apache em /etc/apache2/apache2.conf e adicionar a seguinte linha:

ServerName your_domain

Depois, habilite a nova configuração do VirtualHost usando o utilitário a2ensite:

  • sudo a2ensite ampache

A configuração final é opcional, mas recomendada. A configuração padrão para se fazer upload de arquivos no PHP é que não pode ser feito nenhum upload de arquivos maiores do que 2MB. Os arquivos de música tendem a serem maiores do que este tamanho. Aumentar este tamanho permitirá que você utilize a interface do Ampache para fazer o upload de arquivos maiores em sua coleção de música.

Abra o /etc/php/7.2/apache2/php.ini com o seguinte comando:

  • sudo nano /etc/php/7.2/apache2/php.ini

E modifique as seguintes linhas:

/etc/php/7.2/apache2/php.ini
. . .
upload_max_filesize = 2M
. . .
post_max_size = 8M
. . .

Para:

/etc/php/7.2/apache2/php.ini
. . .
upload_max_filesize = 100M
. . .
post_max_size = 110M
. . .

Você poderá fazer o upload de arquivos de música de até 100MB. Utilize um valor maior, caso queira fazer upload de arquivos maiores que este tamanho. Salve e saia do arquivo.

Por fim, recarregue sua configuração atualizada do Apache:

  • sudo systemctl reload apache2.service

Você configurou o Apache para exibir o Ampache via HTTP. Em seguida, você obterá um certificado TLS e configurará o Apache para usá-lo. Desta forma, você poderá acessar com segurança o Ampache via HTTPS.

Passo 3 — Habilitando o HTTPS

Neste passo, você receberá um certificado TLS do Let’s Encrypt gratuito usando o utilitário Certbot, que habilita o acesso à navegação HTTPS. O Certbot criará o certificado, gerará automaticamente a configuração necessária do Apache e gerenciará a renovação automática do certificado.

Isso é importante, pois toda vez que você fizer o login no Ampache, você enviará seu nome de usuário e senha pela Internet. Se não estiver usando o HTTPS, então sua senha será enviada em texto simples, que pode ser lido ao passar pela Internet.

As versões LTS do Ubuntu normalmente não contêm os pacotes mais recentes. Isso também vale para o programa Certbot. Os desenvolvedores do Certbot mantêm um repositório Ubuntu dedicado conhecido como PPA. Assim, os usuários do Ubuntu conseguem manter uma cópia atualizada do Certbot.

Instale o repositório do Certbot com o seguinte comando:

  • sudo add-apt-repository ppa:certbot/certbot

Agora, instale o utilitário certbot:

  • sudo apt install python-certbot-apache

Em seguida, utilize o certbot para obter o certificado TLS:

  • sudo certbot --apache -d your_domain

A opção --apache utiliza o plug-in do Apache que permite que o Certbot leia e configure o Apache automaticamente. O -d your_domain especifica o nome de domínio para o qual você deseja que o Certbot crie o certificado.

Quando executar o comando certbot, você terá que responder a uma série de perguntas. Será solicitado que você digite um endereço de e-mail e que concorde com os termos de serviço.

Se o certbot confirmar que você controla seu domínio, ele pedirá que defina suas configurações do HTTPS:

Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. ------------------------------------------------------------------------------- 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. ------------------------------------------------------------------------------- Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
  • No redirect: o Apache auxiliará o Ampache através do HTTP e do HTTPS.
  • Redirect: o Apache redirecionará todas as conexões HTTP para o HTTPS automaticamente. Isso significa que seu servidor Ampache estará disponível apenas via HTTPS. Esta é a opção mais segura e não afetará a maneira como sua instância Ampache se comporta. Esta é a escolha que recomendamos.

Finalmente, teste se a renovação automática do certificado funciona executando o seguinte comando:

  • sudo certbot renew --dry-run

A opção --dry-run significa que o certbot fará uma tentativa de renovação sem fazer alterações permanentes em seu servidor. Se o teste for bem-sucedido, a saída incluirá a seguinte linha:

Output
Congratulations, all renewals succeeded. The following certs have been renewed: /etc/letsencrypt/live/your_domain/fullchain.pem (success)

O Apache e o PHP estão prontos para exibir sua instância do Ampache. No próximo passo, você criará e configurará o banco de dados do Ampache.

Passo 4 — Criando um banco de dados MySQL

O Ampache utiliza um banco de dados MySQL para armazenar informações, como playlists, preferências de usuário e assim por diante. Neste passo, você criará um banco de dados e um usuário do MySQL que o Ampache utilizará para acessá-lo.

Você precisará fornecer três informações para completar as seguintes instruções e assim criar o banco de dados do Ampache:

  1. ampache_database: o nome do banco de dados Ampache.
  2. database_user: o usuário MySQL que o Ampache usará para acessar o banco de dados. Este não é um usuário do sistema e ele pode acessar apenas o banco de dados.
  3. database_password: a senha do usuário do banco de dados. Escolha uma senha segura.

Anote estes detalhes. Você precisará deles mais tarde.

Primeiro, abra o shell interativo do MySQL com o comando mysql:

  • mysql --user=root --password

O --user=root abre o shell do MySQL como o usuário root do MySQL, e o --password solicita a senha do usuário root.

O seguinte comando criará um banco de dados vazio:

  • CREATE DATABASE ampache_database;

Em seguida, crie o usuário MySQL:

  • CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'database_password';

Agora, dê ao novo usuário acesso completo ao banco de dados:

  • GRANT ALL PRIVILEGES ON ampache_database.* TO 'database_user'@'localhost';

Por fim, verifique se o novo banco de dados existe, executando o seguinte comando:

  • SHOW DATABASES;

Você verá o seguinte resultado:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| ampache_database  |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

Saia do shell do MySQL digitando exit;.

Teste o banco de dados, nome do usuário e senha ao tentar fazer o login ao shell do MySQL com o database_user.

Digite o seguinte comando para fazer o login ao shell do MySQL como o novo usuário:

  • mysql --user=database_user --password ampache_database

Você criou o banco de dados que o Ampache utilizará. Você finalizou a configuração de seu servidor e está pronto para completar a instalação com o instalador Web.

Passo 5 — Usando o instalador Web

Neste passo, você utilizará o instalador Web do Ampache para terminar a instalação, fornecendo ao Ampache as informações que precisará para executar, como o usuário administrador Web, os detalhes do banco de dados e outras configurações.

Inicie a instalação digitando https://your_domain em seu navegador.

Escolha o idioma de instalação

Selecione o idioma de interface do Ampache e clique no botão Iniciar Configuração para continuar.

Requisitos

Esta página é onde o Ampache verifica se o servidor cumpre seus requisitos. Cada linha nesta página representa um teste que o instalador realiza para garantir que, por exemplo, todos os módulos necessários do PHP estejam presentes e funcionando. Você verá que cada teste possui uma marca de seleção para indicar que seu servidor está pronto para o Ampache.

Clique no botão Continuar para seguir para a próxima página.

Inserir o banco de dados do Ampache

Esta página cria o banco de dados do Ampache se ele não existir e o formata. Preencha os campos da seguinte maneira:

  • Nome do banco de dados desejado: ampache_database
  • Nome do host do MySQL: localhost
  • Porta do MySQL (opcional):<EMPTY>
  • Nome de usuário administrativo do MySQL: database_user
  • Senha administrativa do MySQL: database_password
  • Criar banco de dados:<UNCHECKED>
  • Criar tabelas (ampache.sql):<CHECKED>
  • Criar o usuário de banco de dados:<UNCHECKED>

Imagem mostrando o formulário completo

Clique no botão Inserir banco de dados para continuar.

Gere os arquivos de configuração

Esta página criará o arquivo de configuração que o Ampache utilizará para funcionar. Preencha os campos como segue:

  • Caminho Web:<EMPTY>

  • Nome do banco de dados: ampache_database

  • Nome do host do MySQL: localhost

  • Porta do MySQL (opcional):<EMPTY>

  • Nome de usuário do MySQL: database_user

  • Senha do MySQL: database_password

Imagem mostrando o formulário completo

  • Tipo de instalação Deixe isso na configuração padrão.

  • Permitir transcodificação Selecione ffmpeg na lista suspensa.

  • Players Deixe-os nas configurações padrão.

Clique no botão Criar Configuração para continuar.

Criar conta de administrador

Esta página cria o primeiro usuário da interface Web. Este usuário é criado com privilégios administrativos completos, e é o usuário que você utilizará para fazer login e configurar o Ampache pela primeira vez.

Escolha um nome de usuário e uma senha segura. Digite a senha nos campos Senha e Confirmar senha.

Clique no botão Criar Conta para continuar.

Atualizar o Ampache

Esta página realizará alterações administrativas no banco de dados do Ampache sempre que necessário. Estas alterações são feitas durante a atualização de versão. No entanto, como esta é uma nova instalação, o instalador não fará nenhuma alteração.

Clique no botão Atualizar agora! para continuar.

Atualizar o Ampache

Esta página exibe e explica qualquer atualização que o instalador tenha feito no passo anterior. Você deve ver que não há atualizações listadas.

Clique no link [Retornar para página principal] para seguir para a página de login. Digite seu nome de usuário e senha que definiu para fazer login em seu servidor Ampache.

O Ampache ainda não está totalmente configurado e pronto para ser utilizado. Agora, você completará a configuração adicionando suas músicas e poderá começar a usar seu novo servidor Ampache.

Passo 6 — Adicionando suas músicas ao Ampache

Um servidor de música não serve para nada se não tiver músicas para reproduzir. Neste passo, você configurará um catálogo de músicas e fará o upload de algumas músicas. “Catálogo” é o nome que o Ampache dá a uma coleção de músicas. O Ampache consegue ler músicas de origens variadas, estejam elas dentro ou fora do servidor. Entretanto, neste tutorial, você fará o upload e armazenará suas músicas no servidor em um catálogo local (modo como o Ampache se refere a elas).

Primeiro, na linha seguinte, clique no link adicionar um Catálogo na primeira página que você visualizar ao fazer login no Ampache:

Nenhum Catálogo configurado. Para começar a fazer o streaming de sua mídia, será necessário adicionar um Catálogo.

Isso levará você à página Adicionar Catálogo. Preencha os campos como segue:

  • Nome do Catálogo: dê a este catálogo um nome curto e fácil de lembrar.
  • Tipo de catálogo: local
  • Padrão do nome de arquivo:<EMPTY>
  • Pasta padrão: deixe isso com o padrão.
  • Coletar arte:<CHECKED>
  • Compilar playlists a partir dos arquivos de playlist (m3u, m3u8, asx, pls, xspf):<UNCHECKED>
  • Caminho: /data/Music

Imagem mostrando o formulário adicionar catálogo preenchido

Clique no botão Adicionar Catálogo para completar esta página.

Na página seguinte, clique no botão Continuar. Isso levará você à página Mostrar Catálogos, que exibirá os detalhes do catálogo que você criou. Você poderá alterar as configurações do catálogo a qualquer momento.

Habilite o recurso de upload Web do Ampache clicando no terceiro ícone de navegação para abrir as configurações estendidas:

Imagem mostrando o terceiro ícone de configuração

Role para baixo para a seção Configurar Servidor e clique no link Sistema para abrir a página de configuração do sistema.

Encontre a linha Permitir uploads do usuário e selecione Habilitar no menu suspenso da coluna Valor.

Você também pode escolher os níveis de usuário que poderão fazer upload de arquivos de música. O nível padrão é o Gerenciador de Catálogos, que permite que o Gerenciador de Catálogos e todos os usuários com privilégios maiores façam upload de músicas. Neste caso, o usuário com privilégios maiores é o administrador.

Você também precisa definir o catálogo ao qual a música será adicionada. Defina isso usando a linha Catálogo de Destino. Selecione o catálogo que você criou no Valor suspenso.

Imagem mostrando as linhas permitir upload e o destino

Clique no botão Atualizar preferências no final da página para completar a configuração. Tudo está pronto para fazer o upload de algumas músicas.

Primeiro, clique no primeiro ícone de configuração:

Ícone mostrando o primeiro ícone de configuração

Em seguida, clique no link Upload na seção Músicas.

Imagem mostrando o link de upload

Na página Upload, clique no botão Procurar para localizar seus arquivos de música em seu computador e faça o upload deles.

Se você deixar os rótulos Artista e Álbum em branco, o Ampache lerá, de maneira automática, as tags ID3 dos arquivos de música para descobrir o artista e o álbum. Após fazer o upload de algumas músicas, você poderá encontrá-las clicando nos links Músicas, Álbuns ou Artistas na seção Músicas no painel de navegação à esquerda.

Seu servidor de músicas Ampache está pronto para começar a fazer o streaming de suas músicas.

Conclusão

Neste artigo, você instalou e configurou um servidor de streaming de música Ampache e fez o upload de algumas das suas músicas. Agora, você pode escutá-las onde quiser e em qualquer um de seus dispositivos. A Documentação do Ampache ajudará você a usar e estender seu servidor de streaming. Estes aplicativos do Android e este aplicativo do iOS farão o streaming de suas músicas para o seu telefone. O Ampache organiza suas músicas no servidor usando as tags ID3 nos arquivos delas. O programa MusicMrainz ajudará você a gerenciar as tags ID3 dos seus arquivos de música.

Creative Commons License