162 lines
5.3 KiB
Markdown

---
title: Installation
date: 2023-01-10T15:23:20-03:00
weight: 2
summary: First steps to install YAMS on your server
---
## Dependencies
This script depends on:
- Debian 12 (recommended) or Ubuntu 22.04. If your OS is not ready, you need to figure that out first. Here are some guides:
+ https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-11
+ https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu
- Your OS must be fully configured. That means:
+ You have a user that is not `root`
+ You can run `sudo apt update` and `sudo apt upgrade` without errors
+ If you are using Ubuntu **make sure you are NOT installing the snap version of docker.** The snap version runs in a sandbox and doesn't have access to the OS.
If you run `which docker` and get this output:
```
$ which docker
/snap/bin/docker
```
You **won't** be able to install YAMS. ⚠️
- Required commands: `curl`, `docker`, `sed`, and `awk`
- Docker and Docker Compose (the script can install these for you on Debian/Ubuntu systems)
## Before running
Before installing, make sure you have:
- **An installation location:** The script defaults to `/opt/yams` but you can choose any location where your user has write permissions
- **A media folder:** This is where your files will be downloaded and organized. For example, if you choose `/srv/media`, the script will create:
+ `/srv/media/tv`: For TV shows
+ `/srv/media/movies`: For movies
+ `/srv/media/music`: For music
+ `/srv/media/books`: For books
+ `/srv/media/downloads`: For downloads
+ `/srv/media/blackhole`: For torrent blackhole
- **A regular user to run and own the media files:** Avoid using `root`
- **A VPN service (optional but STRONGLY recommended):** Choose from [this list](/advanced/vpn#official-supported-vpns). [ProtonVPN](https://protonvpn.com/) is recommended.
## Installation Steps
### 1. Setup Installation Location
The location `/opt/yams` is **recommended**, but you can use any location where your user has permissions:
```bash
sudo mkdir -p /opt/yams
sudo chown -R $USER:$USER /opt/yams
```
### 2. Check Docker Installation
If you already have Docker installed, ensure you can run it without sudo:
```bash
docker run hello-world
```
If this fails, follow the [Docker post-installation steps](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user) or check the [Common docker permission errors](/faqs/common-errors/#common-docker-permission-errors).
### 3. Clone YAMS
Clone the installer to a temporary location:
```bash
git clone --depth=1 https://gitlab.com/rogs/yams.git /tmp/yams
cd /tmp/yams
```
### 4. Run the Installer
```bash
bash install.sh
```
The installer will guide you through several configuration steps:
#### Docker Installation (if needed)
If Docker isn't installed, the script will offer to install it:
```
Checking prerequisites...
⚠️ Docker/Docker Compose not found! ⚠️
Install Docker and Docker Compose? Only works on Debian/Ubuntu (y/N) [Default = n]:
```
#### User Configuration
```bash
User to own the media server files? [current-user]:
```
Enter the username that will own the media files. The default is your current user.
#### Directory Configuration
```bash
Installation directory? [/opt/yams]:
Media directory? [/srv/media]:
Are you sure your media directory is "/srv/media"? (y/N) [Default = n]:
```
Confirm your installation and media directories. The script will create them if they don't exist.
#### Media Service Selection
```bash
Time to choose your media service.
Your media service is responsible for serving your files to your network.
Supported media services:
- jellyfin (recommended, easier)
- emby
- plex (advanced, always online)
Choose your media service [jellyfin]:
```
Select your preferred media service. Jellyfin is recommended for beginners.
#### VPN Configuration
```bash
Time to set up the VPN.
Supported VPN providers: https://yams.media/advanced/vpn
Configure VPN? (Y/n) [Default = y]:
VPN service? (with spaces) [protonvpn]:
VPN username (without spaces):
VPN password:
```
Configure your VPN settings if desired. The script supports all VPNs listed at `/advanced/vpn#official-supported-vpns`.
### 5. Final Installation
The script will:
1. Copy and configure all necessary files
2. Start the YAMS services
3. Install the YAMS CLI tool
4. Set appropriate permissions
When complete, you'll see a success message and URLs for all services:
```bash
Service URLs:
qBittorrent: http://your.ip.address:8081/
SABnzbd: http://your.ip.address:8080/
Radarr: http://your.ip.address:7878/
Sonarr: http://your.ip.address:8989/
Lidarr: http://your.ip.address:8686/
Readarr: http://your.ip.address:8787/
Prowlarr: http://your.ip.address:9696/
Bazarr: http://your.ip.address:6767/
Media Service: http://your.ip.address:8096/
Portainer: http://your.ip.address:9000/
```
These URLs are also saved to `~/yams_services.txt` for future reference.
## Next Steps
After installation completes, proceed to the [configuration documentation](https://yams.media/config) to set up your media server.
If you encounter any issues:
- Check the [Common Issues](/faqs/common-errors/) page
- Visit the [YAMS Forum](https://forum.yams.media)
- Join our [Discord](https://discord.gg/Gwae3tNMST) or [Matrix](https://matrix.to/#/#yams-space:rogs.me) chat