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.
To install Ampache on nixOS Latest, you must have the following:
Before we begin, update the system by running the following command:
sudo nixos-rebuild switch
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.
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
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.
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
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!