From ab57666ef4cbd5e4ddbba0ba148c5bdf06666180 Mon Sep 17 00:00:00 2001 From: Roger Gonzalez Date: Mon, 30 Dec 2024 18:35:22 -0300 Subject: [PATCH] Update YAMS installation instructions for clarity and consistency --- content/install/steps.md | 284 ++++++++++++++++++++++++++++++--------- 1 file changed, 224 insertions(+), 60 deletions(-) diff --git a/content/install/steps.md b/content/install/steps.md index ea3cb4a..d2a7677 100644 --- a/content/install/steps.md +++ b/content/install/steps.md @@ -7,11 +7,11 @@ summary: First steps to install YAMS on your server ## 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: - + https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-11 - + https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu + + https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-12 + + https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-22-04 - Your OS needs to be properly configured. That means: + 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 @@ -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: -- **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. -- **A media folder:** This is where all your stuff will live. For example, if you pick `/srv/media`, the script will create: - + `/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: +### An installation location +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: ```bash sudo mkdir -p /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: @@ -58,48 +66,105 @@ Make sure you can run `docker` **without** `sudo`! Try this: 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 git clone --depth=1 https://gitlab.com/rogs/yams.git /tmp/yams cd /tmp/yams ``` -### 4. Fire up the installer +### 2. Start the installer ```bash bash install.sh ``` -Now comes the fun part! The installer will walk you through everything: - -#### Docker Setup (if needed) +You'll see this welcome screen: +```bash +==================================================== + ___ ___ ___ + ___ / /\ /__/\ / /\ + /__/| / /::\ | |::\ / /:/_ + | |:| / /:/\:\ | |:|:\ / /:/ /\ + | |:| / /:/~/::\ __|__|:|\:\ / /:/ /::\ + __|__|:| /__/:/ /:/\:\ /__/::::| \:\ /__/:/ /:/\:\ +/__/::::\ \ \:\/:/__\/ \ \:\~~\__\/ \ \:\/:/~/:/ + ~\~~\:\ \ \::/ \ \:\ \ \::/ /:/ + \ \:\ \ \:\ \ \:\ \__\/ /:/ + \__\/ \ \:\ \ \:\ /__/:/ + \__\/ \__\/ \__\/ +==================================================== +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... -⚠️ Docker/Docker Compose not found! ⚠️ -Install Docker and Docker Compose? Only works on Debian/Ubuntu (y/N) [Default = n]: +⚠️ Docker not found! ⚠️ +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 -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 -Installation directory? [/opt/yams]: -Media directory? [/srv/media]: -Are you sure your media directory is "/srv/media"? (y/N) [Default = n]: +What's the user that is going to own the media server files? [your_current_user]: ``` -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 Time to choose your media service. Your media service is responsible for serving your files to your network. @@ -110,33 +175,109 @@ Supported media services: 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 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]: - -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: -1. Copy all the files where they need to go -2. Start up all the YAMS services -3. Install a handy CLI tool -4. Set up all the permissions just right +3. Enter your credentials: + ```bash + VPN username (without spaces): + VPN password: + ``` + +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 Service URLs: qBittorrent: http://your.ip.address:8081/ @@ -151,13 +292,36 @@ Media Service: http://your.ip.address:8096/ 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? -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! -- Check out the [Common Issues](/faqs/common-errors/) page +Need help? We've got your back! +- Check our [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 - we're a friendly bunch! 🙋‍♂️ +- Join our [Discord](https://discord.gg/Gwae3tNMST) or [Matrix](https://matrix.to/#/#yams-space:rogs.me) chat