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"
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.
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)
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.
macOS
Linux
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>/anystreamlinux = /home/<user>/anystreamwindows = 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
- Download anystream-server-1.0.0-SNAPSHOT.zip
- Right click
anystream-server-1.0.0-SNAPSHOT.zip, click "Extract All...", then click "Extract" when the window appears - Open the
anystream-server-1.0.0-SNAPSHOT/binfolder - 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
Configure Server
Now your server is running and ready to be used! See Installation > Configure Server for what to do next.