de Ampache Muziek Streaming Server te installeren op Ubuntu 20.04

Ampache is gratis, open-source, en web-gebaseerde software waarmee je je eigen muziek streaming server kunt hosten. Met Ampache heb je toegang tot je muziek en video over het internet. Je kunt je muziek bekijken, bewerken en afspelen via een web browser of een andere media streaming client.

Kenmerken

  • Krachtige API en streaming naar elke client
  • Flexibele catalogi en aanpassing
  • Moderne HTML5 webspeler
  • Ondersteuning van verschillende autorisatiemethoden zoals MySQL, LDAP, HTTP en PAM
  • Verenigbaar met elke Subsonic client

In deze handleiding leren we hoe je de Ampache muziek streaming server kunt opzetten op Ubuntu 20.04.

Vereisten

  • Een server waarop Ubuntu 20.04 draait.
  • Een root wachtwoord is ingesteld op je server.

Aan de slag

Alvorens te beginnen is het een goed idee om de pakketten van je systeem bij te werken tot de nieuwste versie. Je kunt ze bijwerken met het volgende commando:

apt-get update -y
apt-get upgrade -y

Als alle pakketten zijn bijgewerkt, herstart je je systeem om de veranderingen toe te passen.

Installeer de LAMP server

Ampache draait op de webserver, is geschreven in PHP en gebruikt MySQL/MariaDB om zijn gegevens op te slaan. Je zult dus Apache, MariaDB, PHP en andere vereiste PHP uitbreidingen in je systeem moeten installeren. Je kunt ze installeren door het volgende commando uit te voeren:

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

Als alle pakketten geïnstalleerd zijn, open je het php.ini bestand en pas je enkele instellingen aan:

nano /etc/php/7.4/apache2/php.ini

Verander de volgende waarden:

upload_max_filesize = 100M
post_max_size = 100M
date.timezone = Asia/Kolkata

Sla het bestand op en sluit het als je klaar bent. Herstart dan de Apache dienst om de veranderingen door te voeren:

systemctl restart apache2

Configureer de MariaDB Database

MariaDB is standaard niet beveiligd. Je kunt hem beveiligen door het volgende script uit te voeren:

mysql_secure_installation

Beantwoord alle vragen zoals hieronder aangegeven:

Enter current password for root (enter for none): 
Set root password? [Y/n] Y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Zodra de MariaDB beveiligd is, log je in op de MariaDB shell met het volgende commando:

mysql -u root -p

Geef je MariaDB root wachtwoord en maak een database en gebruiker voor Ampache met het volgende commando:

MariaDB [(none)]> CREATE DATABASE ampachedb;
MariaDB [(none)]> CREATE USER 'ampache'@'localhost' IDENTIFIED BY 'password';

Verleen vervolgens alle privileges aan de Ampache database met het volgende commando:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON ampachedb.* TO 'ampache'@'localhost';

Spoel vervolgens de privileges door en verlaat de MariaDB shell met het volgende commando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Download Ampache

Je kunt de nieuwste versie van de Ampache downloaden met het volgende commando:

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

Zodra de download voltooid is, pak je het gedownloade bestand uit in de Apache web root directory:

unzip ampache-4.1.1_all.zip -d /var/www/html/ampache

Verander vervolgens het eigendom van de map Ampache in www-data:

chown -R www-data:www-data /var/www/html/ampache

Verander vervolgens de directory in ampache en hernoem het vereiste .htaccess bestand.

cd /var/www/html/ampache
mv rest/.htaccess.dist rest/.htaccess
mv play/.htaccess.dist play/.htaccess
mv channel/.htaccess.dist channel/.htaccess

Maak vervolgens een directory om muziekbestanden in op te slaan en verander het eigendom in www-data:

mkdir -p /data/Music
chown www-data:www-data /data/Music

Als je klaar bent, kun je verder gaan met de volgende stap.

Configureer Apache voor Ampache

Vervolgens moet je een nieuw Apache virtual host configuratiebestand maken voor Ampache. Je kunt het maken met het volgende commando:

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

Voeg de volgende regels toe:

<VirtualHost *:80>

    ServerName ampache.linuxbuz.com
    DocumentRoot /var/www/html/ampache

    <Directory /var/www/html/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>

Sla het bestand op en sluit het als je klaar bent. Controleer dan het Apache configuratiebestand op eventuele fouten met het volgende commando:

apachectl configtest

Je zou de volgende uitvoer moeten krijgen:

Syntax OK

Schakel vervolgens het Apache virtuele host configuratiebestand en de vereiste modules in met het volgende commando:

a2ensite ampache
a2enmod expires rewrite

Herstart tenslotte de Apache dienst om de veranderingen toe te passen:

systemctl reload apache2

Op dit punt is Ampache geïnstalleerd en geconfigureerd. Je kunt nu verder gaan met de volgende stap.

Beveilig Ampache met Let’s Encrypt SSL

Het is aan te bevelen je Ampache website te beveiligen met Let’s Encrypt SSL.

Installeer eerst de Certbot client om de Let’s Encrypt SSL voor je website te downloaden en te installeren.

apt-get install certbot python3-certbot-apache -y

Eenmaal geïnstalleerd, voer je het volgende commando uit om de Let’s Encrypt SSL voor je website te installeren.

certbot --apache -d ampache.linuxbuz.com

Je wordt gevraagd je e-mail adres op te geven en de servicevoorwaarden te accepteren, zoals hieronder:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for ampache.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/ampache-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/ampache-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/ampache-le-ssl.conf

Vervolgens moet je kiezen of je HTTP verkeer al dan niet naar HTTPS wilt omleiden, zoals hieronder:

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): 2

Typ 2 en druk op Enter om verder te gaan. Als de installatie voltooid is, zou je de volgende uitvoer moeten krijgen:

Redirecting vhost in /etc/apache2/sites-enabled/ampache.conf to ssl vhost in /etc/apache2/sites-available/ampache-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://ampache.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=ampache.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/ampache.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/ampache.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-07-29. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Test vervolgens de autorenewal van het Let’s Encrypt certificaat met het volgende commando:

certbot renew --dry-run

Als de test geslaagd is, zou je de volgende uitvoer moeten krijgen:

** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates below have not been saved.)

Congratulations, all renewals succeeded. The following certs have been renewed:
  /etc/letsencrypt/live/ampache.linuxbuz.com/fullchain.pem (success)
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates above have not been saved.)

Toegang tot de Ampache Web Interface

Je Ampache website is nu beveiligd met Let’s Encrypt SSL. Open nu je web browser en typ de URL https://ampache.linuxbuz.com. Je wordt doorverwezen naar de volgende pagina:

Kies taal

Kies je taal en klik op de Start Configuration knop. Je zou de volgende pagina moeten zien:

Controleer de voorwaarden

Zorg ervoor dat alle vereiste PHP extensies geïnstalleerd zijn en klik dan op de Ga door knop. Je zou de volgende pagina moeten zien:

Database configuratie

Geef je database gegevens op, vink Database maken uit, vink Tabellen maken aan, vink Database Gebruikers maken uit en klik op de knop Database invoegen. Je ziet nu de volgende pagina:

Genereer configuratiebestand

Geef je database gegevens op, kies ffmpeg en klik op de knop Create Config. Je zou de volgende pagina moeten zien:

Maak een admin account aan

Geef je admin gebruikersnaam en wachtwoord op en klik op de knop Create Account. Je zou de volgende pagina moeten zien:

Werk nu bij

Klik op de knop Update Now om alle vereiste pakketten bij te werken. Je zou de volgende pagina moeten zien:

Ampache update

Klik op de Return to main page link. Je zou de volgende pagina moeten zien:

Admin login

Geef je admin gebruikersnaam en wachtwoord op en klik op de Login knop. Je zou het Ampache dashboard op de volgende pagina moeten zien:

Ampache dashboard

Conclusie

Gefeliciteerd! Je hebt met succes Ampache geïnstalleerd en beveiligd op Ubuntu 20.04 server. Je kunt nu je nieuwe catalogus aanmaken, je muziek uploaden en ze over het internet spelen.