Update YAMS installation instructions for clarity and consistency

This commit is contained in:
Roger Gonzalez 2024-12-30 18:35:22 -03:00
parent cef408d197
commit ab57666ef4
Signed by: rogs
GPG Key ID: C7ECE9C6C36EC2E6

View File

@ -7,11 +7,11 @@ summary: First steps to install YAMS on your server
## Dependencies ## Dependencies
YAMS only needs a few things to get going: YAMS only needs a few things to get started:
- Debian 12 (recommended) or Ubuntu 22.04. If your OS isn't ready yet, check out these guides: - Debian 12 (recommended) or Ubuntu 22.04. If your OS isn't ready yet, check out these guides:
+ https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-11 + https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-12
+ https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu + https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-22-04
- Your OS needs to be properly configured. That means: - Your OS needs to be properly configured. That means:
+ You have a user that is not `root` (because we're responsible adults 😎) + You have a user that is not `root` (because we're responsible adults 😎)
+ You can run `sudo apt update` and `sudo apt upgrade` without errors + You can run `sudo apt update` and `sudo apt upgrade` without errors
@ -28,29 +28,37 @@ Don't worry if you don't have `docker` and `docker-compose` installed - the scri
Before we dive in, make sure you have: Before we dive in, make sure you have:
- **An installation location:** The script defaults to `/opt/yams` but hey, you do you! Just make sure your user can write to wherever you choose. ### An installation location
- **A media folder:** This is where all your stuff will live. For example, if you pick `/srv/media`, the script will create: The script defaults to `/opt/yams` but you can use any location as long as your user has write permissions. If you want to use the default location (recommended), set it up like this:
+ `/srv/media/tv`: For your TV shows
+ `/srv/media/movies`: For your movies
+ `/srv/media/music`: For your tunes
+ `/srv/media/books`: For your books
+ `/srv/media/downloads`: For your downloads
+ `/srv/media/blackhole`: For your torrent blackhole
- **A regular user to run and own the media files:** Don't use `root` (I mean, I can't stop you, but come on! 😅)
- **A VPN service (optional but STRONGLY recommended):** Choose one from [this list](/advanced/vpn#official-supported-vpns). I always recommend [ProtonVPN](https://protonvpn.com/) because it's super easy to set up!
## Installation Steps
### 1. Setup your install location
The `/opt/yams` location is **recommended**, but you can be a rebel and use whatever you like if your user has permissions:
```bash ```bash
sudo mkdir -p /opt/yams sudo mkdir -p /opt/yams
sudo chown -R $USER:$USER /opt/yams sudo chown -R $USER:$USER /opt/yams
``` ```
### 2. If you already have docker installed... ### A media folder
This is where all your content will live. For example, if you pick `/srv/media`, the script will create:
+ `/srv/media/tvshows`: For your TV shows
+ `/srv/media/movies`: For your movies
+ `/srv/media/music`: For your music library
+ `/srv/media/books`: For your ebook collection
+ `/srv/media/downloads`: For your downloads
+ `/srv/media/blackhole`: For your torrent blackhole directory
### A regular user to run YAMS
+ Don't use `root` (I mean it! 😅)
+ This user will own all the media files
+ Must have sudo privileges for the initial setup
### A VPN service (optional but STRONGLY recommended)
+ Choose one from [this list](/advanced/vpn#official-supported-vpns)
+ We recommend ProtonVPN because:
- Easy to configure
- Built-in port forwarding support
- Privacy-focused
- Reasonable pricing
### If you already have Docker installed...
Make sure you can run `docker` **without** `sudo`! Try this: Make sure you can run `docker` **without** `sudo`! Try this:
@ -58,48 +66,105 @@ Make sure you can run `docker` **without** `sudo`! Try this:
docker run hello-world docker run hello-world
``` ```
If it fails, you might need to add your user to the docker group. Check out [Docker's post-installation steps](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user) or look at our [Common docker permission errors](/faqs/common-errors/#common-docker-permission-errors) page. If it fails, you might need to add your user to the docker group. Follow [Docker's post-installation steps](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user) or check our [Common docker permission errors](/faqs/common-errors/#common-docker-permission-errors) page.
### 3. Get YAMS on your system ## Installation Steps
Clone the installer to a temporary spot (let's keep things tidy!): ### 1. Get YAMS on your system
First, let's grab a fresh copy of YAMS and put it in a temporary location (we like to keep things tidy!):
```bash ```bash
git clone --depth=1 https://gitlab.com/rogs/yams.git /tmp/yams git clone --depth=1 https://gitlab.com/rogs/yams.git /tmp/yams
cd /tmp/yams cd /tmp/yams
``` ```
### 4. Fire up the installer ### 2. Start the installer
```bash ```bash
bash install.sh bash install.sh
``` ```
Now comes the fun part! The installer will walk you through everything: You'll see this welcome screen:
```bash
#### Docker Setup (if needed) ====================================================
___ ___ ___
___ / /\ /__/\ / /\
/__/| / /::\ | |::\ / /:/_
| |:| / /:/\:\ | |:|:\ / /:/ /\
| |:| / /:/~/::\ __|__|:|\:\ / /:/ /::\
__|__|:| /__/:/ /:/\:\ /__/::::| \:\ /__/:/ /:/\:\
/__/::::\ \ \:\/:/__\/ \ \:\~~\__\/ \ \:\/:/~/:/
~\~~\:\ \ \::/ \ \:\ \ \::/ /:/
\ \:\ \ \:\ \ \:\ \__\/ /:/
\__\/ \ \:\ \ \:\ /__/:/
\__\/ \__\/ \__\/
====================================================
Welcome to YAMS (Yet Another Media Server)
Installation process should be really quick
We just need you to answer some questions
====================================================
``` ```
### 3. Docker Installation (if needed)
The installer will first check for Docker:
```bash
Checking prerequisites... Checking prerequisites...
⚠️ Docker/Docker Compose not found! ⚠️ ⚠️ Docker not found! ⚠️
Install Docker and Docker Compose? Only works on Debian/Ubuntu (y/N) [Default = n]: Do you want YAMS to install docker and docker-compose? IT ONLY WORKS ON DEBIAN AND UBUNTU! [y/N]: y
``` ```
Choose `y` if you want YAMS to handle the Docker installation.
#### Pick Your User - If you don't have Docker installed:
+ Type `y` and press Enter to let YAMS handle the Docker installation
+ The script will install both Docker and Docker Compose
+ This only works on Debian and Ubuntu!
- If you already have Docker:
+ You'll see "docker exists ✅" instead
+ The installer will move to the next step
### 4. Choose Installation Location
```bash ```bash
User to own the media server files? [current-user]: Where do you want to install the docker-compose file? [/opt/yams]:
``` ```
This is where you pick who's going to own all the media files. It defaults to your current user (which is usually what you want 👍).
#### Choose Your Directories - Press Enter to use the default `/opt/yams` (recommended)
- Or type a different path if you want to install somewhere else
- Make sure your user has write permissions to this location!
### 5. Select User
```bash ```bash
Installation directory? [/opt/yams]: What's the user that is going to own the media server files? [your_current_user]:
Media directory? [/srv/media]:
Are you sure your media directory is "/srv/media"? (y/N) [Default = n]:
``` ```
The script will create these if they don't exist - how thoughtful! 🎉
#### Pick Your Media Service - Press Enter to use your current user (recommended)
- Or type a different username
- Remember: Don't use `root`!
- The user must exist and have sudo privileges
### 6. Set Media Directory
```bash
Please, input your media directory [/srv/media]:
```
- Press Enter to use the default `/srv/media`
- Or type the path where you want your media stored. This path can also be a SMB/NFS mount in your host OS
- This can be an external drive or different partition
Then confirm your choice:
```bash
Are you sure your media directory is "/srv/media"? [y/N]:
```
- Type `y` and press Enter if the path is correct
- Type `n` or press Enter to go back and change it
### 7. Choose Media Service
```bash ```bash
Time to choose your media service. Time to choose your media service.
Your media service is responsible for serving your files to your network. Your media service is responsible for serving your files to your network.
@ -110,33 +175,109 @@ Supported media services:
Choose your media service [jellyfin]: Choose your media service [jellyfin]:
``` ```
Jellyfin is great for beginners - it's what I recommend! But hey, they're all good choices.
#### VPN Setup Pick your streaming service:
- Press Enter for Jellyfin (recommended for beginners)
- Type `emby` for Emby
- Type `plex` for Plex
Each service has its strengths:
- **Jellyfin**: Free, open-source, easy to set up
- **Emby**: Similar to Jellyfin but with premium features
- **Plex**: Most polished, but requires online account and is more complex to configure
### 8. VPN Configuration
```bash ```bash
Time to set up the VPN. Time to set up the VPN.
Supported VPN providers: https://yams.media/advanced/vpn Supported VPN providers: https://yams.media/advanced/vpn
Configure VPN? (Y/n) [Default = y]: Configure VPN? (Y/n) [Default = y]:
VPN service? (with spaces) [protonvpn]:
If you are using ProtonVPN, remember to suffix '+pmp' to your username
VPN username (without spaces):
VPN password:
``` ```
This is where the magic happens to keep your downloads private and secure! 🔒
### 5. Let it rip! If you want to use a VPN (strongly recommended):
1. Press Enter or type `y` to configure VPN
2. Enter your VPN provider:
```bash
VPN service? (with spaces) [protonvpn]:
```
- Press Enter for ProtonVPN (recommended)
- Or type your VPN provider's name
The script will now: 3. Enter your credentials:
1. Copy all the files where they need to go ```bash
2. Start up all the YAMS services VPN username (without spaces):
3. Install a handy CLI tool VPN password:
4. Set up all the permissions just right ```
Special notes:
- For ProtonVPN, just enter your username - the script automatically adds `+pmp` for port forwarding
- For Mullvad, it will only ask you for your username, since Mullvad doesn't need a password
When it's done, you'll get a nice success message and all your service URLs: If you don't want to configure VPN now:
- Type `n` and press Enter
- You can set it up later, but **always use a VPN when downloading torrents!**
### 9. Installation Process
After you've answered all the questions, you'll see:
```bash
Copying docker-compose.example.yaml to /opt/yams/docker-compose.yaml...
docker-compose.example.yaml was copied successfuly! ✅
Copying .env.example to /opt/yams/.env...
.env.example was copied successfuly! ✅
Copying docker-compose.custom.yaml to /opt/yams/docker-compose.custom.yaml...
docker-compose.custom.yaml was copied successfuly! ✅
Everything installed correctly! 🎉
Running the server...
This is going to take a while...
```
The installer will now:
1. Copy all necessary configuration files
2. Set up your chosen options
3. Start downloading and configuring Docker containers
You'll then see:
```bash
We need your sudo password to install the YAMS CLI and configure permissions...
```
Enter your sudo password to:
- Install the YAMS command-line tool
- Set proper permissions on your media folders
If everything works, you'll see these success messages:
```bash
YAMS CLI installed successfully ✅
Media directory ownership and permissions set successfully ✅
Install directory ownership and permissions set successfully ✅
Configuration folder "/opt/yams/config" exists ✅
Configuration folder ownership and permissions set successfully ✅
```
### 10. Final Success Screen
When everything's done, you'll see this awesome ASCII art:
```bash
========================================================
_____ ___ ___ ___
/ /::\ / /\ /__/\ / /\
/ /:/\:\ / /::\ \ \:\ / /:/_
/ /:/ \:\ / /:/\:\ \ \:\ / /:/ /\
/__/:/ \__\:| / /:/ \:\ _____\__\:\ / /:/ /:/_
\ \:\ / /:/ /__/:/ \__\:\ /__/::::::::\ /__/:/ /:/ /\
\ \:\ /:/ \ \:\ / /:/ \ \:\~~\~~\/ \ \:\/:/ /:/
\ \:\/:/ \ \:\ /:/ \ \:\ ~~~ \ \::/ /:/
\ \::/ \ \:\/:/ \ \:\ \ \:\/:/
\__\/ \ \::/ \ \:\ \ \::/
\__\/ \__\/ \__\/
========================================================
```
Following this, you'll get a list of all your service URLs:
```bash ```bash
Service URLs: Service URLs:
qBittorrent: http://your.ip.address:8081/ qBittorrent: http://your.ip.address:8081/
@ -151,13 +292,36 @@ Media Service: http://your.ip.address:8096/
Portainer: http://your.ip.address:9000/ Portainer: http://your.ip.address:9000/
``` ```
Don't worry - these URLs are saved in `~/yams_services.txt` so you don't have to memorize them! 😉 Don't worry about memorizing these - they're saved in `~/yams_services.txt` for easy reference!
### Important Notes:
1. **First Start Time**
- Services might take a few minutes to fully start
- Be patient on first launch!
2. **VPN Check**
If you configured a VPN, verify it's working:
```bash
yams check-vpn
```
You should see different IPs for your system and qBittorrent.
## What's Next? ## What's Next?
Head over to the [configuration docs](/config) to get your media server set up just the way you like it! Time to configure your new media server! Head over to [Configuration](/config) and follow these guides in order:
1. [qBittorrent](/config/qbittorrent)
2. [SABnzbd](/config/sabnzbd)
3. [Radarr](/config/radarr)
4. [Sonarr](/config/sonarr)
5. [Prowlarr](/config/prowlarr)
6. [Bazarr](/config/bazarr)
7. Your chosen media service:
- [Jellyfin](/config/jellyfin)
- [Emby](/config/emby)
- [Plex](/config/plex)
Running into trouble? We've got your back! Need help? We've got your back!
- Check out the [Common Issues](/faqs/common-errors/) page - Check our [Common Issues](/faqs/common-errors/) page
- Visit the [YAMS Forum](https://forum.yams.media) - 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 - we're a friendly bunch! 🙋‍♂️ - Join our [Discord](https://discord.gg/Gwae3tNMST) or [Matrix](https://matrix.to/#/#yams-space:rogs.me) chat