Skip to main content

NixOS

caution
  • You cannot load a backup from another installation method after installation without losing progress. Use the Docker installation if you plan to switch drives or OS.

Installation

Declarative installation:

environment.systemPackages = [
pkgs.audiobookshelf
];

Configuration

You can configure Audiobookshelf using parameters passed to the executable.
It supports the same options you'd use with the Docker container.

The example below shows default values if none are specified:

audiobookshelf --metadata "$(pwd)/metadata" \
--config "$(pwd)/config" \
--port 8000 \
--host 0.0.0.0

If you're using a reverse proxy (you should!), listening on localhost is sufficient.
In that case, set:

--host 127.0.0.1

Start Audiobookshelf

To automatically start Audiobookshelf on boot, create a simple systemd service in your configuration.nix:

services.audiobookshelf.enable = true;

For further options, see the NixOS options page.


Optional: Configure NGINX Reverse Proxy

services.nginx = {
enable = true;
recommendedProxySettings = true;
virtualHosts."your.hostname.org" = {
forceSSL = true; # Optional, but highly recommended
locations."/" = {
proxyPass = "http://127.0.0.1:${builtins.toString config.services.audiobookshelf.port}";
proxyWebsockets = true;
extraConfig = ''
proxy_redirect http:// $scheme://;
'';
};
useACMEHost = "[attribute name from security.acme.certs]"; # Optional, but highly recommended
};
};

Check Service Status

systemctl status audiobookshelf.service