This script only depends on:
If you haven’t installed
docker-compose, don’t worry! The script will attempt to run both installations (it only works in Debian and Ubuntu!)
Before installing, make sure you have:
- An installation location: The script is going to ask you for an install location, but it will default to
/opt/yams. Just make sure your current user has permissions to write on the selected directory.
- A media folder: This is the folder where all your files are going to be downloaded and categorized. For example, if you choose
/srv/media, the script is going to create the following folders:
/srv/media/tv: For your TV shows.
/srv/media/movies: For your movies.
/srv/media/downloads: For your torrent downloads.
/srv/media/blackhole: For your torrents blackhole.
- A regular user to run and own the media files: You shouldn’t use
root for this user, but I’m not your father, nothing is going to stop you lol
- A VPN service (optional but STRONGLY recommended): If you can, choose one from this list. The VPN I always recommend is Mullvad for reasons I will explain later in the installation process.
Setup your install location (location is optional, you can choose any other location)
/opt/yams is recommended, but you can use whatever you like if your current user has permissions on the directory.
sudo mkdir -p /opt/yams
sudo chown -R $USER:$USER /opt/yams
If you already have docker and docker-compose installed…
Make sure you can run
If you run
sudo and another user other than
root you’ll encounter multiple permission errors. You can find instructions on how to run
sudo here: https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user.
If you can run
docker run hello-world without
sudo, you can continue. If you encounter any other
docker issue, go to the FAQs, there’s a section on “Common
docker permission errors”.
install script by yourself (optional).
Its always a good practice to verify and study the scripts you run on your machine. You can always inspect
install.sh on the Gitlab repo here: https://gitlab.com/rogs/yams/-/blob/master/install.sh. You don’t have to be a complete expert in
bash (I’m definitely not lol), but if you have any experience with the Linux terminal you should be able to at understand what’s happening.
Cloning from Gitlab
git clone https://gitlab.com/rogs/yams.git
You’ll see the following prompt:
___ ___ ___
___ / /\ /__/\ / /\
/__/| / /::\ | |::\ / /:/_
| |:| / /:/\:\ | |:|:\ / /:/ /\
| |:| / /:/~/::\ __|__|:|\:\ / /:/ /::\
__|__|:| /__/:/ /:/\:\ /__/::::| \:\ /__/:/ /:/\:\
/__/::::\ \ \:\/:/__\/ \ \:\~~\__\/ \ \:\/:/~/:/
~\~~\:\ \ \::/ \ \:\ \ \::/ /:/
\ \:\ \ \:\ \ \:\ \__\/ /:/
\__\/ \ \:\ \ \:\ /__/:/
\__\/ \__\/ \__\/
Welcome to YAMS (Yet Another Media Server)
Instalation process should be really quick
We just need you to answer some questions
⚠️ docker not found! ⚠️
Do you want YAMS to install docker and docker-compose? IT ONLY WORKS ON DEBIAN AND UBUNTU! [y/N]: y
You can choose
y to install
docker-compose with YAMS or
n to exit the script.
When docker finishes the installation OR if you already had
docker-compose installed, you should see the following message at the bottom:
docker exists ✅
docker-compose exists ✅
Where do you want to install the docker-compose file? [/opt/yams]:
You should choose the path where you want YAMS to be installed. Like I said before, the
/opt/yams directory is recommended, but you can use whatever you like if your current user has permissions on the directory. Type the path you’ll like to use and press
[ENTER] to continue.
What's the user that is going to own the media server files? [your_current_user]:
Now, you have to choose the user that is going to own your media files. I strongly suggest you don’t use
root for this user, but you can do whatever you want. The script is going to default to the current
$USER running the script. Type the user you want to own the files and press
[ENTER] to continue.
Please, input your media folder:
My suggestion is to use something like
/srv/media, but you might want to use an external hard drive or a different partition on your machine. Just type the full path of the directory you want to use and press
[ENTER] to continue. If it doesn’t exist, the script is going to try to create it.
Are you sure your media folder is /srv/media? [y/N]:
n if you are happy with the folder you selected. Press
[ENTER] to continue.
Time to choose your media service.
Your media service is the one responsible for serving your files to your network.
By default, YAMS support 3 media services:
- jellyfin (recommended, easier)
- plex (advanced, always online)
It’s time to configure the media service!
By default, YAMS supports 3 big media services:
- Jellyfin (recommended): In my opinion, Jellyfin is the best one. It’s fast, easy to configure and Open Source.
- Emby: Emby its the one I use on my local config. It’s very similar to Jellyfin (Jellyfin is a fork of Emby), and it has almost the same funtionalities. The reason I’m not recommending it is because it has a paid plan and it’s closed source. (I’m actually migrating to Jellyfin now!).
- Plex: I only recommend Plex to advanced users or people who need all the extra stuff it provides, because the interface and all the services might be a little overwhelming if this is your first time with a home server. I don’t like it that much because it’s always online, and it has more functionalities than I need. Also, at least in YAMS, it’s the hardest to configure. But if you want to share your media server with other people easily, Plex is the way to go! Jellyfin and Emby can share media outside your network, but they are a little more complicated to configure.
Type one from the list and press [ENTER]. If you don’t choose anything, the installer is going to default to Jellyfin.
Time to setup the VPN.
You can check the supported VPN list here: https://yams.media/advanced/vpn.
Do you want to configure a VPN? [Y/n]:
Now it’s time to configure the VPN. The automatic installer supports all the VPNs on this list, but I strongly recommend using Mullvad. Why? Basically:
- They don’t require your email or information to create a new account.
- It’s simple to configure.
- They only have monthly subscriptions, so you can leave them whenever you want.
- You can pay with crypto.
If want to configure a VPN, select
Y and continue with these instructions. If you don’t have a VPN or don’t want to use a VPN, choose
N and move to finishing the installation. You can set your VPN later in the qBittorrent configuration. You should always use a VPN when downloading torrents!
What's your VPN service? (with spaces) [mullvad]:
First, select your VPN provider. You can go to this list and verify the name of your VPN.
What's your VPN username? (without spaces):
Now, just enter your VPN username. If it has spaces, delete them.
What's your VPN password? (if you are using mullvad, just enter your username again):
Then, enter your VPN password. The script is going to output
* characters to hide your password, so don’t worry about leaking your password on the screen.
What country do you want to use?
You can check the countries list for your VPN here: <url> [brazil]:
Select a country for the VPN to connect to. You can always check your VPN server list in their documentation. You should choose a country that is close to yours, or you can even choose your own country if it’s available. The closer the server is, the better speeds you’ll get. If you don’t choose anything, the installer its going to default to Brazil.
Finishing the installation
Everything installed correctly! 🎉
If you get a
docker permission error, go here to fix it.
After a lot of docker installing, you’ll get a message like this at the end:
_____ ___ ___ ___
/ /::\ / /\ /__/\ / /\
/ /:/\:\ / /::\ \ \:\ / /:/_
/ /:/ \:\ / /:/\:\ \ \:\ / /:/ /\
/__/:/ \__\:| / /:/ \:\ _____\__\:\ / /:/ /:/_
\ \:\ / /:/ /__/:/ \__\:\ /__/::::::::\ /__/:/ /:/ /\
\ \:\ /:/ \ \:\ / /:/ \ \:\~~\~~\/ \ \:\/:/ /:/
\ \:\/:/ \ \:\ /:/ \ \:\ ~~~ \ \::/ /:/
\ \::/ \ \:\/:/ \ \:\ \ \:\/:/
\__\/ \ \::/ \ \:\ \ \::/
\__\/ \__\/ \__\/
All done!✅ Enjoy YAMS!
You can check the installation on /opt/yams
Everything should be running now! To check everything running, go to:
You might need to wait for a couple of minutes while everything gets up and running
All the services location are also saved in ~/yams_services.txt
To configure YAMS, check the documentation at
And that’s it!
In your browser, you can visit each of the sites to check that they are running correctly. If one of them doesn’t show up, you might need to wait a couple of minutes for docker to finish the full installation.