Skip to content

Install on a new server

This guide installs the whole stack on one Linux server: Navidrome, Postgres, a local Telegram Bot API server, and the bot. If you already run Navidrome, connect it instead.

Check the requirements first.

Download the installer of the latest release, v0.0.8, and run it on the server:

Terminal window
curl -fL https://github.com/lubaskinc0de/beatstash/releases/download/v0.0.8/install.sh -o install.sh
curl -fL https://github.com/lubaskinc0de/beatstash/releases/download/v0.0.8/install.sh.sha256 -o install.sh.sha256
sha256sum -c install.sh.sha256
bash install.sh

Choose new when it asks about Navidrome. The installer then:

  • walks you through creating a Telegram bot, turning on inline mode, and getting the Telegram credentials;
  • generates the database password and the encryption key;
  • starts Navidrome and creates its first administrator with the login and password you enter (if Navidrome already has accounts, it checks that this one signs in);
  • starts the bot.

On a server reached over SSH, it prints Telegram links for you to open on your computer or phone. If Telegram is blocked on the server, it notices and asks for a proxy; see when Telegram is blocked.

If you enter an https:// public address, the installer offers to set up HTTPS. It can add a site to a Caddy already running on the server, or start its own Caddy when nothing else uses ports 80 and 443. It shows each change and asks first. HTTPS and public access lists what it checks.

Passwords and tokens are hidden as you type them. If you stop partway, run the installer again in the same directory: press Enter at a filled prompt to keep the saved value. It keeps your Compose file, configuration, and generated secrets.

  1. Send the bot a tagged audio file and wait for 👍.
  2. Open Navidrome, let it scan the track, and play it.
  3. Create an invite and have someone join with a new account.
  4. Check that they see their personal library and the shared library, but not yours.
  5. Share the track from Music > Mine. Check that they find it under Shared.

Next, set up HTTPS if you skipped it, so players and listening links work from anywhere. To change limits or intervals later, see configuration. To update, see updates.