### Operating Systems:
* [Windows](#windows)
* [macOS](#macos)
* [Linux](#linux)
* [FreeBSD / FreeNAS](#freebsd--freenas)
* [Docker](#docker)
* [Synology](#synology)
* [Western Digital](#western-digital) (Third party)
* [QNAP](#qnap) (Third party)
* [ReadyNAS](#readynas) (Third party)
* [Thecus NAS](#thecus-nas) (Third party)
* [ArchLinux](#archlinux) (Third party)
----
## Windows
Download and run the latest Windows `.exe` installer from the [GitHub Releases page](https://github.com/Tautulli/Tautulli/releases/latest).
Alternate installation instructions
* Download the latest version of [Python](https://www.python.org/downloads/) and complete the installation with all the default options.
* Option 1 (easy):
* Download Tautulli from GitHub: https://github.com/Tautulli/Tautulli/zipball/master
* Extract the ZIP file.
* Double click `start.bat` to run Tautulli.
* Tautulli will be loaded in your browser or listening on http://localhost:8181.
* Option 2 (preferred):
> **NOTE**: This will install extra shell extensions and make adjustments to your path environment.
* Go to https://gitforwindows.org/ and download `git`.
* Run the installer, select all the defaults except for the section called "Adjusting your PATH environment" - here select **"Git from the command line and also from 3rd-party software"**.
* Complete the rest of the installation with the default options.
* Right click on your desktop and select "Git Gui".
* Select "Clone Existing Repository".
* In the "Source Location" enter: `https://github.com/Tautulli/Tautulli.git`
* In the "Target Directory" enter a new folder where you want to install Tautulli to (e.g. `C:\Tautulli`).
* Click "Clone".
* When it's finished a Git Gui windows will appear, just close this Window.
* Browse to where you cloned the Tautulli repository (e.g. `C:\Tautulli`) in Windows Explorer.
* Double click `start.bat` to run Tautulli.
* Tautulli will be loaded in your browser or listening on http://localhost:8181.
## macOS
Download and run the latest macOS `.pkg` installer from the [GitHub Releases page](https://github.com/Tautulli/Tautulli/releases/latest).
* Note: The `.pkg` installer requires macOS 10.14 (Mojave) or newer. For macOS 10.13 (High Sierra) and older please use the alternate installation instructions below.
Alternate installation instructions
Tautulli will be installed to `/Applications/Tautulli`
* Option 1 (easy):
* Download Tautulli from GitHub: https://github.com/Tautulli/Tautulli/zipball/master
* Extract the zip to `/Applications/Tautulli`. Make sure you extract the files directly in the root.
* Open a terminal
* Type: `cd /Applications/Tautulli`
* Option 2 (preferred):
* Open a terminal
* Install Git. This can be done via `xcode-select --install`
* Type: `cd /Applications/`
* Type: `git clone https://github.com/Tautulli/Tautulli.git`
* Type: `cd Tautulli`
* Type: `./start.sh` to run Tautulli.
* Tautulli will be loaded in your browser or listening on http://localhost:8181.
## Linux
Tautulli can be installed on most Linux distribution using a Snap.
1. Select your Linux distribution at the bottom of the [Tautulli Snapcraft page](https://snapcraft.io/tautulli) to install `snapd`.
* If your Linux distribution is not listed, additional instructions can be found [here](https://snapcraft.io/docs/installing-snapd).
1. Install Tautulli: `sudo snap install tautulli`
1. Tautulli will be loaded in your browser or listening on http://localhost:8181/
Alternate installation instructions
Tautulli will be installed to `/opt/Tautulli`.
1. Open a terminal.
1. Install prerequisites:
* Ubuntu/Debian: `sudo apt-get install git python3.7 python3-setuptools`
* Fedora: `sudo yum install git python3 python3-setuptools`
1. Change directory: `cd /opt`
1. Clone Tautulli: `sudo git clone https://github.com/Tautulli/Tautulli.git`
1. Add the Tautulli user:
* Ubuntu/Debian: `sudo addgroup tautulli && sudo adduser --system --no-create-home tautulli --ingroup tautulli`
* CentOS/Fedora: `sudo adduser --system --no-create-home tautulli`
1. Change ownership: `sudo chown -R tautulli:tautulli /opt/Tautulli`
1. Copy the service script: `sudo cp /opt/Tautulli/init-scripts/init.systemd /lib/systemd/system/tautulli.service`
1. Enable the service: `sudo systemctl daemon-reload && sudo systemctl enable tautulli.service`
1. Start Tautulli: `sudo systemctl start tautulli.service`
1. Tautulli will be loaded in your browser or listening on http://localhost:8181
#### Note:
* Refer to the instructions in the service file to run Tautulli using a different user or move your Tautulli data to a different location:
* https://github.com/Tautulli/Tautulli/blob/master/init-scripts/init.systemd
## FreeBSD / FreeNAS
Tautulli will be installed to `/usr/local/share/Tautulli`.
1. Create a new jail for Tautulli and open a terminal for the jail.
1. Install prerequisites:
`pkg install python py37-setuptools py37-sqlite3 py37-openssl py37-pycryptodomex security/ca_root_nss git-lite`
1. Change directory: `cd /usr/local/share`
1. Clone Tautulli: `git clone https://github.com/Tautulli/Tautulli.git`
1. Add the Tautulli user: `pw useradd -n tautulli -c "Tautulli" -s /sbin/nologin -w no`
1. Change ownership: `chown -R tautulli:tautulli Tautulli`
1. Copy the service script: `mkdir -p /usr/local/etc/rc.d && cp /usr/local/share/Tautulli/init-scripts/init.freenas /usr/local/etc/rc.d/tautulli`
1. Enable the service: `sysrc -f /etc/rc.conf tautulli_user="tautulli" && sysrc -f /etc/rc.conf tautulli_enable="YES"`
1. Start Tautulli: `service tautulli start`
1. Tautulli will be loaded in your browser or listening on http://localhost:8181
#### Note:
* Refer to the instructions in the service file to run Tautulli using a different user or move your Tautulli data to a different location:
* https://github.com/Tautulli/Tautulli/blob/master/init-scripts/init.freebsd
## Docker
### Using `docker run`
Create and run the container (substitute your ``):
```sh
docker run -d \
--name=tautulli \
--restart=unless-stopped
-v :/config \
-e PUID= \
-e PGID= \
-e TZ= \
-p 8181:8181 \
tautulli/tautulli
```
To update the container it must be removed and recreated:
```sh
# Stop the Tautulli container
docker stop tautulli
# Remove the Tautulli container
docker rm tautulli
# Pull the latest update
docker pull tautulli/tautulli
# Run the Tautulli container with the same parameters as before
docker run -d ...
```
### Using `docker-compose`
Create a `docker-compose.yml` file with the following contents (substitute your ``):
```yml
version: '3'
services:
tautulli:
image: tautulli/tautulli
container_name: tautulli
restart: unless-stopped
volumes:
- :/config
environment:
- PUID=
- PGID=
- TZ=
ports:
- 8181:8181
```
Create and start the container (run the command from the same folder as your `docker-compose.yml` file):
```sh
docker-compose up -d
```
To update the container:
```sh
# Pull the latest update
docker-compose pull
# Update and restart the container
docker-compose up -d
```
### Parameters
You *must* substitute the `` with your own settings.
Parameters are split into two halves separated by a colon. The left side represents the host and the right side the container.
**Example**: `-p external:internal` - This shows the port mapping from internal to external of the container.
So `-p 8181:8181` would expose port `8181` from inside the container to be accessible from the host's IP on port `8181` (e.g. `http://:8181`). The internal port *must be* `8181`, but the external port may be changed (e.g. `-p 8080:8181`).
| Parameter | Function | Required / Optional |
| :---: | --- | :---: |
| `-p 8181:8181` | Port for web UI | Required |
| `-v :/config` | Contains Tautulli config and database | Required |
| `-e PUID=` | User ID (see below) | Optional |
| `-e PGID=` | Group ID (see below) | Optional |
| `-e TZ=` | Lookup `TZ` value [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) (e.g. America/Toronto) | Required |
### User / Group Identifiers:
When using data volumes (`-v` flags) permissions issues can arise between the host OS and the container. To avoid this issue you can specify the user `PUID` and group `PGID`. Ensure the data volume directory on the host is owned by the same user you specify.
In this instance `PUID=1001` and `PGID=1001`. To find yours use `id user` as below:
```
$ id dockeruser
uid=1001(dockeruser) gid=1001(dockergroup) groups=1001(dockergroup)
```
## Synology
You can easily install *Tautulli* on Synology devices using [Docker](#docker). Depending on your Synology device you may or may not have Docker pre-installed. If your device is 'unsupported' (i.e. Docker is not pre-installed or downloadable through the Synology *Package Center*), follow the guide [here](https://web.archive.org/web/20190730155552/https://tylermade.net/2017/09/28/how-to-install-docker-on-an-unsupported-synology-nas/) and newer versions of the Docker spk found [here](https://archive.synology.com/download/Package/Docker) to install it.
Once you have Docker on your Synology, add the [official image](https://hub.docker.com/r/tautulli/tautulli/) for Tautulli. This is done by opening the Docker program and searching the **Registry** tab for Tautulli. At the time of this write-up, the interface looked like [this](https://imgur.com/EqxJT91). The official image is named `tautulli/tautulli` and it may not be the first option listed. Double-click the image entry to download it. Once downloaded you will see the image show up under your **Image** tab. Before installing the image you will need some additional user information.
Depending on your preference, you can create a unique user on your system for Tautulli, or you can use the default admin user created during your first start-up. You will need the UID and GID of whatever user you have chosen. The steps to obtain these are as follows:
1. SSH into your system using [PuTTy](https://www.putty.org/) (if on Windows) or through Terminal (if on Linux or Mac). Be sure to use the appropriate username when logging in.
- If you're having trouble with this, make sure that [SSH is enabled](http://richardsumilang.com/server/synology/diskstation/enable-ssh-access-to-synology-diskstation/) in your *Terminal and SNMP* settings in your Synology *Control Panel*.
2. Type `id`
3. This will return a line with the `uid` of that user and their primary group `gid`.
```
[user@nas ~]$ id
uid=1001(user) gid=1001(user) groups=1001(user)
```
Next, you will want to make sure that you have the prerequisite folders for Tautulli to save config files to. Here's an example general/simplified setup:
```
/root
└──/docker
└──/tautulli
└──/config
```
Obviously, the important folder here is `/root/docker/tautulli/config`. You should ensure that the permissions on this folder allows the user you picked earlier, and will set later, has _full_ rights to the folder. You can fix the permissions by right-clicking on your folders and going to `Properties` and then the `Permission` tab. Assign the appropriate user/group Full Control and if necessary Enable the option *Apply to this folder, sub-folders and files*.
You may need to restart your DiskStation for the change to take effect.
Next, back in the Docker window, double click your `tautulli/tautulli:latest` image to open the *Create Container* window. On the first menu, name your container whatever you want as long as it is identifiable to you. Next, click *Advanced Settings* to open a new window. Next, follow the instructions for the following tabs:
- **Advanced Settings**:
- Enable *Enable auto-restart*
- If you wish, create a shortcut on the desktop
- **Volume**:
- Click *Add Folder* and add the following paths and corresponding Mount Paths.
| File/Folder | Mount Path |
| :---- | :---- |
| `docker/tautulli/config` | `/config` |
- **Port Settings**:
- Change the *Local Port* to `8181` to match the *Container Port*. For some reason the default vale of `Auto` almost never works.
- You may choose a different *Local Port* if port `8181` is already in use, but you cannot change the *Container Port*.
| Local Port | Container Port | Type |
| :---- | :---- | :---- |
| `8181` | `8181` | `TCP` |
- **Environment**:
- Add the following *variables* and their respective *value*
| variable | value |
| :---- | :---- |
| `PUID` | `uid` from your ssh session, eg. `1001` |
| `PGID` | `gid` from your ssh session, eg. `1001` |
| `TZ` | Lookup `TZ` value [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) (eg. `America/Los_Angeles`) |
Finalize the container by applying the *advanced settings* and then following the remaining prompts.
If your container doesn't immediately run, launch it from the Docker window and give it a few dozen seconds to start completely. Your *Tautulli* installation should now be accessible via port `8181` (or your other *Local Port*) on your DiskStation's local IP address. You can find this under Control Panel -> Network -> Network Interface under `LAN1` or `LAN2`. For example if it shows `192.168.0.5`, then Tautulli can be found at `http://192.168.0.5:8181/`.
### How to update the container
* See [here](https://mendesconsulting.net/2018/03/26/updating-docker-containers-on-synology/) for instructions on updating a Docker container on Synology.
---
### The packages below are created and maintained by a third party. For support, please contact the creator.
## Western Digital
You can install Tautulli on Western Digital devices using the [WD package by Tfl](https://community.wd.com/t/package-tautulli-plexpy-adds-monitoring-analytics-and-notifications-for-your-plex-server/217773).
## QNAP
You can install Tautulli on QNAP devices using the `.qpkg` by QNAP_Stephane:
* [QNAP Club](https://qnapclub.eu/en/qpkg/557)
* [QNAP forum thread](https://forum.qnap.com/viewtopic.php?f=320&t=139879)
## ReadyNAS
You can install Tautulli on ReadyNAS devices using the [ReadyNAS app by Mhynlo](http://apps.readynas.com/pages/?page_id=9).
## Thecus NAS
You can install Tautulli on Thecus devices using the [Thecus app by outkastm](https://forum.thecus.com/showthread.php?tid=12768&pid=70628#pid70628).
## ArchLinux
You can install Tautulli on ArchLinux using the [AUR package by fryfrog/Sonic-Y3k](https://aur.archlinux.org/packages/tautulli/).