How to Install Ampache on nixOS Latest

Ampache is a free and open-source web-based application that allows users to access their music and video collections from anywhere in the world. In this tutorial, we will show you how to install Ampache on nixOS Latest.

Prerequisites

To install Ampache on nixOS Latest, you must have the following:

Step 1: Update the System

Before we begin, update the system by running the following command:

sudo nixos-rebuild switch

Step 2: Install the Required Packages

Next, install the required packages by running the following command:

sudo nix-env -iA nixos.php --arg phpExtensions 'withExtensions [php-pdo php-sqlite3 php-xml]'

This will install PHP, PDO, SQLite3, and XML extensions.

Step 3: Download and Extract Ampache

Download the latest version of Ampache by running the following command:

cd /tmp
wget https://github.com/ampache/ampache/archive/master.zip

Once the download is complete, extract the contents by running the following command:

unzip master.zip -d /opt

Step 4: Configure Ampache

Next, navigate to the extracted Ampache directory by running the following command:

cd /opt/ampache-master

Copy the config/ampache.cfg.php.dist file to ampache.cfg.php:

cp config/ampache.cfg.php.dist config/ampache.cfg.php

Edit the configuration file ampache.cfg.php with your favorite editor, for example vi:

vi config/ampache.cfg.php

And change the values of $_SERVER['HTTP_HOST'] and $_SERVER['SERVER_PORT'] to match your domain's name and Apache port number:

$_SERVER['HTTP_HOST'] = 'your.domain.com';
$_SERVER['SERVER_PORT'] = '80';

Save and close the file.

Step 5: Configure Apache

Next, we need to configure Apache to serve Ampache. To do this, create a new virtual host file:

vi /etc/nixos/apache/virtual-hosts/ampache.nix

Add the following content to this file:

{ config, pkgs, ... }:

let 
  port = "8080"; # Apache listening port
  hostName = "your.domain.com";  # domain name
  webRoot = "/opt/ampache-master/"; # path to Ampache web root
in {

  # Configure Apache
  services.httpd.configs."ampache" = {
    enable = true;
    virtualHosts."${hostName}:${port}" = {
      serverAliases = [ "$hostName" ];
      documentRoot = "${webRoot}";
      directoryOptions = {
          "AllowOverride" = "None";
          "Indexes" = "FollowSymLinks MultiViews";
          "Require" = "all granted";
        };
      extraConfig = ''
         <Directory "${webRoot}">
             Options +Indexes +FollowSymLinks +MultiViews
             AllowOverride None
             # Require all granted
             RewriteEngine On
             RewriteRule ^.well-known/host-meta /var/lib/acme/.well-known/host-meta [L]
             RewriteRule ^.well-known/host-meta.json /var/lib/acme/.well-known/host-meta.json [L]
             RewriteRule ^.well-known/webfinger /var/lib/acme/.well-known/webfinger [L]
          </Directory>
          <Directory "${webRoot}/bin">
              AllowOverride None
              # Require all denied
          </Directory>
          <Directory "${webRoot}/config">
              AllowOverride None
              # Require all denied
          </Directory>
          <Directory "${webRoot}/lib">
              AllowOverride None
              # Require all denied
          </Directory>
          <Directory "${webRoot}/plugins">
              AllowOverride None
              # Require all denied
          </Directory>
          <Directory "${webRoot}/themes">
              AllowOverride None
              # Require all denied
          </Directory>
          <Directory "${webRoot}/sql">
              AllowOverride None
              # Require all denied
          </Directory>
          <FilesMatch "^\.git">
              Order Deny,Allow
              Deny from All
          </FilesMatch>
      '';
    };
  };

}

Save and close the file.

Finally, reload the Apache configuration by running the following command:

sudo nixos-rebuild switch

Step 6: Accessing Ampache

You can now access Ampache by opening a web browser and navigating to http://your.domain.com:8080/ampache/.

You will be prompted to create a new administrator account. Follow the on-screen instructions to complete the setup process.

Congratulations! You have successfully installed Ampache on nixOS Latest.

If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!