Skip to content

Getting started

This page covers running the AnyStream server manually. See Installation > Docker to use the containerized server.

Read this first

AnyStream is a private streaming service for your media files. Third party APIs and optional external applications are used to improve the quality of your collection. You are responsible for operating any external applications that AnyStream communicates with while managing your collection.

To maintain privacy it is recommended that you run AnyStream with a VPN like AirVPN or Mullvad.

Requirements

Java 21+

AnyStream requires Java 21 or later. Any compatible JDK or JRE distribution will work. Azul Zulu builds are a good choice.

Windows

Install Manually

Download the JRE 21 MSI file and run the installer. Follow the instructions until the installation is complete. For more information see "Install Azul Zulu with MSI installer"

Install with Chocolatey
choco install zulu21-jre

macOS

Install Manually

Download the JRE 21 for Intel DMG file or JRE 21 for Apple Silicon. Double click the file and follow the instructions until the installation is complete.

Install with Homebrew
brew install --cask zulu@21

Linux

Install with APT (Debian/Ubuntu)
sudo apt install gnupg ca-certificates curl
curl -s https://repos.azul.com/azul-repo.key | sudo gpg --dearmor -o /usr/share/keyrings/azul.gpg
echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://repos.azul.com/zulu/deb stable main" | sudo tee /etc/apt/sources.list.d/zulu.list
sudo apt update
sudo apt install zulu21-jre-headless
Install with DNF (Fedora/RHEL)
sudo dnf install https://cdn.azul.com/zulu/bin/zulu-repo-1.0.0-1.noarch.rpm
sudo dnf install zulu21-jre-headless

FFmpeg

FFmpeg is required to transcode your media library when streaming to certain devices and analyzing media files.

AnyStream will automatically search for FFmpeg in common installation directories. If it cannot be found, set the FFMPEG_PATH environment variable or config option to the directory containing the ffmpeg and ffprobe binaries.

Windows

Install Manually

Download a recent FFmpeg build from gyan.dev or BtbN/FFmpeg-Builds. Extract the archive and add the bin folder to your system PATH, or set FFMPEG_PATH to point to the bin directory.

Install with Chocolatey
choco install ffmpeg

macOS

Install with Homebrew
brew install ffmpeg
Install with MacPorts
sudo port install ffmpeg

Linux

Install with APT (Debian/Ubuntu)
sudo apt install ffmpeg
Install with DNF (Fedora/RHEL)
sudo dnf install ffmpeg-free

Download AnyStream

Stay up-to-date

It is recommended the latest version of AnyStream is used at all times, but older versions are available on the Releases page if required.

One download for any Operating System

The AnyStream server runs on Linux, macOS, or Windows with one download, you do not need a version specifically for your operating system.

The latest release can be viewed on the Github Release page or choose your preferred format below:

Download ZIP Download TAR

anystream-server-1.0.0-SNAPSHOT.zip

anystream-server-1.0.0-SNAPSHOT.tar

Installation

AnyStream tries to provide optimal default configuration and can be run without any configuration.

Configuration (Environment variables)

The following options can be modified on your first run to customize AnyStream for your system.

Name Default Description
PORT 8888 The port used to serve the web client and API.
DATA_PATH macos = /Users/<user>/anystream
linux = /home/<user>/anystream
windows = C:\Users\<user>\anystream
The folder where all data generated by AnyStream will be stored. This is not the folder for your media collection.
DATABASE_URL <DATA_PATH>/anystream.db The file path where the SQLite database will be stored.
CONFIG_PATH (none) Path to a configuration file (.conf for HOCON or .yml/.yaml for YAML). See Configure Server for details.
BASE_URL (none) The public URL of your AnyStream instance (e.g. https://stream.example.com). Required when behind a reverse proxy.
FFMPEG_PATH (auto-detected) The directory containing FFmpeg and FFprobe binaries.
TRANSCODE_PATH /tmp The directory used for temporary transcode output files.
WEB_CLIENT_PATH (none) The folder containing the web client files to serve. By default these files are provided by the server binary.

For qBittorrent and OIDC configuration, see Connecting qBittorrent and OIDC Authentication.

Configuration (Program arguments)

If preferred, AnyStream accepts arguments instead of Environment variables. The table below maps the Environment variable name to the CLI argument, see "Configuration (Environment variables)" for descriptions of each option.

Env Name CLI Argument
PORT -port=8888
DATA_PATH -app.dataPath="..."
DATABASE_URL -app.databaseUrl="..."
CONFIG_PATH -config="..."
BASE_URL -app.baseUrl="..."
FFMPEG_PATH -app.ffmpegPath="..."
TRANSCODE_PATH -app.transcodePath="..."
WEB_CLIENT_PATH -app.webClientPath="..."

Run on Windows

Newer versions of Windows 10 include curl and tar, if you're running an older version of Windows, follow the "Manual Download" section. Otherwise, see the "Command Prompt Download" section.

Manual Download
  1. Download anystream-server-1.0.0-SNAPSHOT.zip
  2. Right click anystream-server-1.0.0-SNAPSHOT.zip, click "Extract All...", then click "Extract" when the window appears
  3. Open the anystream-server-1.0.0-SNAPSHOT/bin folder
  4. Double click on anystream.bat

You will see a Command Prompt window appear, displaying log messages from AnyStream.

Command Prompt Download
> curl -LO https://github.com/DrewCarlson/AnyStream/releases/download/v1.0.0-SNAPSHOT/anystream-server-1.0.0-SNAPSHOT.tar
> tar -xvf anystream-server-1.0.0-SNAPSHOT.tar
> cd anystream-1.0.0-SNAPSHOT/bin
> anystream -port=8888

AnyStream will be running and printing log messages until you close the window or press ctrl + c.

Run on Linux or macOS

anystream from Terminal example
$ curl -LO https://github.com/DrewCarlson/AnyStream/releases/download/v1.0.0-SNAPSHOT/anystream-server-1.0.0-SNAPSHOT.tar
$ tar -xvf anystream-server-1.0.0-SNAPSHOT.tar
$ cd anystream-1.0.0-SNAPSHOT/bin
$ ./anystream -port=8888

Configure Server

Now your server is running and ready to be used! See Installation > Configure Server for what to do next.