The complete guide to building your personal self hosted server for streaming and ad-blocking powered by Plex, Jellyfin, Adguard Home and Docker. ( lemmy.dbzer0.com )

The complete guide to building your personal self hosted server for streaming and ad-blocking.

Captain’s note: This OC was originally posted in reddit but its quality makes me wants to ensure a copy survices in lemmy as well.


We will setup the following applications in this guide:

  • Docker
  • AdguardHome - Adblocker for all your devices
  • Jellyfin/Plex - For watching the content you download
  • Qbittorrent - Torrent downloader
  • Jackett - Torrent indexers provider
  • Flaresolverr - For auto solving captcha in some of the indexers
  • Sonarr - *arr service for automatically downloading TV shows
  • Radarr - *arr service for movies
  • Readarr - *arr service for (audio)books
  • lidarr - *arr service for music
  • Bazarr - Automatically downloads subtitles for Sonarr and Radarr
  • Ombi/Overseer - For requesting movies and tv shows through Sonarr and Radarr
  • Heimdall - Dashboard for all the services so you don’t need to remember all the ports

Once you are done, your dashboard will look something like this.

Heimdall Dashboard

I started building my setup after reading this guide https://www.reddit.com/r/Piracy/comments/ma1hlm/the_complete_guide_to_building_your_own_personal/.

Hardware

You don’t need powerful hardware to set this up. I use a decade old computer, with the following hardware. Raspberry pi works fine.

Hardware

Operating system

I will be using Ubuntu server in this guide. You can select whatever linux distro you prefer.

Download ubuntu server from https://ubuntu.com/download/server. Create a bootable USB drive using rufus or any other software(I prefer ventoy). Plug the usb on your computer, and select the usb drive from the boot menu and install ubuntu server. Follow the steps to install and configure ubuntu, and make sure to check “Install OpenSSH server”. Don’t install docker during the setup as the snap version is installed.

Once installation finishes you can now reboot and connect to your machine remotely using ssh.


<span style="color:#323232;">ssh username@server-ip 
</span><span style="color:#323232;"># username you selected during installation
</span><span style="color:#323232;"># Type ip a to find out the ip address of your server. Will be present against device like **enp4s0** prefixed with 192.168.
</span>

Create the directories for audiobooks, books, movies, music and tv.

I keep all my media at ~/server/media. If you will be using multiple drives you can look up how to mount drives.

We will be using hardlinks so once the torrents are downloaded they are linked to media directory as well as torrents directory without using double storage space. Read up the trash-guides to have a better understanding.


<span style="color:#323232;">mkdir ~/server
</span><span style="color:#323232;">mkdir ~/server/media # Media directory
</span><span style="color:#323232;">mkdir ~/server/torrents # Torrents
</span><span style="color:#323232;">
</span><span style="color:#323232;"># Creating the directories for torrents
</span><span style="color:#323232;">cd ~/server/torrents
</span><span style="color:#323232;">mkdir audiobooks  books  incomplete  movies  music  tv 
</span><span style="color:#323232;">
</span><span style="color:#323232;">cd ~/server/media
</span><span style="color:#323232;">mkdir audiobooks  books  movies  music  tv
</span>

Installing docker and docker-compose

Docker https://docs.docker.com/engine/install/ubuntu/


<span style="color:#323232;"># install packages to allow apt to use a repository over HTTPS
</span><span style="color:#323232;">sudo apt-get update
</span><span style="color:#323232;">sudo apt-get install 
</span><span style="color:#323232;">    apt-transport-https 
</span><span style="color:#323232;">    ca-certificates 
</span><span style="color:#323232;">    curl 
</span><span style="color:#323232;">    gnupg 
</span><span style="color:#323232;">    lsb-release
</span><span style="color:#323232;"># Add Docker’s official GPG key:
</span><span style="color:#323232;">curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
</span><span style="color:#323232;"># Setup the repository
</span><span style="color:#323232;">echo 
</span><span style="color:#323232;">  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu 
</span><span style="color:#323232;">  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
</span><span style="color:#323232;"># Install Docker Engine
</span><span style="color:#323232;">sudo apt-get update
</span><span style="color:#323232;">sudo apt-get install docker-ce docker-ce-cli containerd.io
</span><span style="color:#323232;"># Add user to the docker group to run docker commands without requiring root
</span><span style="color:#323232;">sudo usermod -aG docker $(whoami) 
</span>

Sign out by typing exit in the console and then ssh back in

Docker compose https://docs.docker.com/compose/install/


<span style="color:#323232;"># Download the current stable release of Docker Compose
</span><span style="color:#323232;">sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
</span><span style="color:#323232;"># Apply executable permissions to the binary
</span><span style="color:#323232;">sudo chmod +x /usr/local/bin/docker-compose
</span>

Creating the compose file for Adguard home

First setup Adguard home in a new compose file.

Docker compose uses a yml file. All of the files contain version and services object.

Create a directory for keeping the compose files.


<span style="color:#323232;">mkdir ~/server/compose
</span><span style="color:#323232;">mkdir ~/server/compose/adguard-home
</span><span style="color:#323232;">vi ~/server/compose/adguard-home/docker-compose.yml
</span>

Save the following content to the docker-compose.yml file. You can see here what each port does.


<span style="color:#323232;">version: '3.3'
</span><span style="color:#323232;">services:
</span><span style="color:#323232;">    run:
</span><span style="color:#323232;">        container_name: adguardhome
</span><span style="color:#323232;">        restart: unless-stopped
</span><span style="color:#323232;">        volumes:
</span><span style="color:#323232;">            - '/home/${USER}/server/configs/adguardhome/workdir:/opt/adguardhome/work'
</span><span style="color:#323232;">            - '/home/${USER}/server/configs/adguardhome/confdir:/opt/adguardhome/conf'
</span><span style="color:#323232;">        ports:
</span><span style="color:#323232;">            - '53:53/tcp'
</span><span style="color:#323232;">            - '53:53/udp'
</span><span style="color:#323232;">            - '67:67/udp'
</span><span style="color:#323232;">            - '68:68/udp'
</span><span style="color:#323232;">            - '68:68/tcp'
</span><span style="color:#323232;">            - '80:80/tcp'
</span><span style="color:#323232;">            - '443:443/tcp'
</span><span style="color:#323232;">            - '443:443/udp'
</span><span style="color:#323232;">            - '3000:3000/tcp'
</span><span style="color:#323232;">        image: adguard/adguardhome
</span>

Save the file and start the container using the following command.


<span style="color:#323232;">docker-compose up -d
</span>

Open up the Adguard home setup on YOUR_SERVER_IP:3000.

Enable the default filter list from filters→DNS blocklist. You can then add custom filters.

Filters

Creating the compose file for media-server

Jackett

Jackett is where you define all your torrent indexers. All the *arr apps use the tornzab feed provided by jackett to search torrents.

There is now an *arr app called prowlarr that is meant to be the replacement for jackett. But the flaresolverr(used for auto solving captchas) support was added very recently and doesn’t work that well as compared to jackett, so I am still sticking with jackett for meantime. You can instead use prowlarr if none of your indexers use captcha.


<span style="color:#323232;">jackett:
</span><span style="color:#323232;">    container_name: jackett
</span><span style="color:#323232;">    image: linuxserver/jackett
</span><span style="color:#323232;">    environment:
</span><span style="color:#323232;">      - PUID=1000
</span><span style="color:#323232;">      - PGID=1000
</span><span style="color:#323232;">      - TZ=Asia/Kolkata
</span><span style="color:#323232;">    volumes:
</span><span style="color:#323232;">      - '/home/${USER}/server/configs/jackett:/config'
</span><span style="color:#323232;">      - '/home/${USER}/server/torrents:/downloads'
</span><span style="color:#323232;">    ports:
</span><span style="color:#323232;">      - '9117:9117'
</span><span style="color:#323232;">    restart: unless-stopped
</span><span style="color:#323232;">prowlarr:
</span><span style="color:#323232;">		container_name: prowlarr
</span><span style="color:#323232;">    image: 'hotio/prowlarr:testing'
</span><span style="color:#323232;">    ports:
</span><span style="color:#323232;">      - '9696:9696'
</span><span style="color:#323232;">    environment:
</span><span style="color:#323232;">      - PUID=1000
</span><span style="color:#323232;">      - PGID=1000
</span><span style="color:#323232;">      - TZ=Asia/Kolkata
</span><span style="color:#323232;">    volumes:
</span><span style="color:#323232;">      - '/home/${USER}/server/configs/prowlarr:/config'
</span><span style="color:#323232;">    restart: unless-stopped
</span>

Sonarr - TV

Sonarr is a TV show scheduling and searching download program. It will take a list of shows you enjoy, search via Jackett, and add them to the qbittorrent downloads queue.


<span style="color:#323232;">sonarr:
</span><span style="color:#323232;">    container_name: sonarr
</span><span style="color:#323232;">    image: linuxserver/sonarr
</span><span style="color:#323232;">    environment:
</span><span style="color:#323232;">      - PUID=1000
</span><span style="color:#323232;">      - PGID=1000
</span><span style="color:#323232;">      - TZ=Asia/Kolkata
</span><span style="color:#323232;">    ports:
</span><span style="color:#323232;">      - '8989:8989'
</span><span style="color:#323232;">    volumes:
</span><span style="color:#323232;">      - '/home/${USER}/server/configs/sonarr:/config'
</span><span style="color:#323232;">      - '/home/${USER}/server:/data'
</span><span style="color:#323232;">    restart: unless-stopped
</span>

Radarr - Movies

Sonarr but for movies.


<span style="color:#323232;">radarr:
</span><span style="color:#323232;">    container_name: radarr
</span><span style="color:#323232;">    image: linuxserver/radarr
</span><span style="color:#323232;">    environment:
</span><span style="color:#323232;">      - PUID=1000
</span><span style="color:#323232;">      - PGID=1000
</span><span style="color:#323232;">      - TZ=Asia/Kolkata
</span><span style="color:#323232;">    ports:
</span><span style="color:#323232;">      - '7878:7878'
</span><span style="color:#323232;">    volumes:
</span><span style="color:#323232;">      - '/home/${USER}/server/configs/radarr:/config'
</span><span style="color:#323232;">      - '/home/${USER}/server:/data'
</span><span style="color:#323232;">    restart: unless-stopped
</span>

Lidarr - Music


<span style="color:#323232;">lidarr:
</span><span style="color:#323232;">    container_name: lidarr
</span><span style="color:#323232;">    image: ghcr.io/linuxserver/lidarr
</span><span style="color:#323232;">    environment:
</span><span style="color:#323232;">      - PUID=1000
</span><span style="color:#323232;">      - PGID=1000
</span><span style="color:#323232;">      - TZ=Asia/Kolkata
</span><span style="color:#323232;">    volumes:
</span><span style="color:#323232;">      - '/home/${USER}/server/configs/liadarr:/config'
</span><span style="color:#323232;">      - '/home/${USER}/server:/data'
</span><span style="color:#323232;">    ports:
</span><span style="color:#323232;">      - '8686:8686'
</span><span style="color:#323232;">    restart: unless-stopped
</span>

Readarr - Books and AudioBooks


<span style="color:#323232;"># Notice the different port for the audiobook container
</span><span style="color:#323232;">readarr:
</span><span style="color:#323232;">    container_name: readarr
</span><span style="color:#323232;">    image: 'hotio/readarr:nightly'
</span><span style="color:#323232;">    ports:
</span><span style="color:#323232;">      - '8787:8787'
</span><span style="color:#323232;">    environment:
</span><span style="color:#323232;">      - PUID=1000
</span><span style="color:#323232;">      - PGID=1000
</span><span style="color:#323232;">      - TZ=Asia/Kolkata
</span><span style="color:#323232;">    volumes:
</span><span style="color:#323232;">      - '/home/${USER}/server/configs/readarr:/config'
</span><span style="color:#323232;">      - '/home/${USER}/server:/data'
</span><span style="color:#323232;">    restart: unless-stopped
</span><span style="color:#323232;">
</span><span style="color:#323232;">readarr-audio-books:
</span><span style="color:#323232;">    container_name: readarr-audio-books
</span><span style="color:#323232;">    image: 'hotio/readarr:nightly'
</span><span style="color:#323232;">    ports:
</span><span style="color:#323232;">      - '8786:8787'
</span><span style="color:#323232;">    environment:
</span><span style="color:#323232;">      - PUID=1000
</span><span style="color:#323232;">      - PGID=1000
</span><span style="color:#323232;">      - TZ=Asia/Kolkata
</span><span style="color:#323232;">    volumes:
</span><span style="color:#323232;">      - '/home/${USER}/server/configs/readarr-audio-books:/config'
</span><span style="color:#323232;">      - '/home/${USER}/server:/data'
</span><span style="color:#323232;">    restart: unless-stopped
</span>

Bazarr - Subtitles


<span style="color:#323232;">bazarr:
</span><span style="color:#323232;">    container_name: bazarr
</span><span style="color:#323232;">    image: ghcr.io/linuxserver/bazarr
</span><span style="color:#323232;">    environment:
</span><span style="color:#323232;">      - PUID=1000
</span><span style="color:#323232;">      - PGID=1000
</span><span style="color:#323232;">      - TZ=Asia/Kolkata
</span><span style="color:#323232;">    volumes:
</span><span style="color:#323232;">      - '/home/${USER}/server/configs/bazarr:/config'
</span><span style="color:#323232;">      - '/home/${USER}/server:/data'
</span><span style="color:#323232;">    ports:
</span><span style="color:#323232;">      - '6767:6767'
</span><span style="color:#323232;">    restart: unless-stopped
</span>

Jellyfin

I personally only use jellyfin because it’s completely free. I still have plex installed because overseerr which is used to request movies and tv shows require plex. But that’s the only role plex has in my setup.

I will talk about the devices section later on.

For the media volume you only need to provide access to the /data/media directory instead of /data as jellyfin doesn’t need to know about the torrents.


<span style="color:#323232;">jellyfin:
</span><span style="color:#323232;">    container_name: jellyfin
</span><span style="color:#323232;">    image: ghcr.io/linuxserver/jellyfin
</span><span style="color:#323232;">    environment:
</span><span style="color:#323232;">      - PUID=1000
</span><span style="color:#323232;">      - PGID=1000
</span><span style="color:#323232;">      - TZ=Asia/Kolkata
</span><span style="color:#323232;">    ports:
</span><span style="color:#323232;">      - '8096:8096'
</span><span style="color:#323232;">    devices:
</span><span style="color:#323232;">      - '/dev/dri/renderD128:/dev/dri/renderD128'
</span><span style="color:#323232;">      - '/dev/dri/card0:/dev/dri/card0'
</span><span style="color:#323232;">    volumes:
</span><span style="color:#323232;">      - '/home/${USER}/server/configs/jellyfin:/config'
</span><span style="color:#323232;">      - '/home/${USER}/server/media:/data/media'
</span><span style="color:#323232;">    restart: unless-stopped
</span><span style="color:#323232;">
</span><span style="color:#323232;">plex:
</span><span style="color:#323232;">    container_name: plex
</span><span style="color:#323232;">    image: ghcr.io/linuxserver/plex
</span><span style="color:#323232;">    ports:
</span><span style="color:#323232;">      - '32400:32400'
</span><span style="color:#323232;">    environment:
</span><span style="color:#323232;">      - PUID=1000
</span><span style="color:#323232;">      - PGID=1000
</span><span style="color:#323232;">      - TZ=Asia/Kolkata
</span><span style="color:#323232;">      - VERSION=docker
</span><span style="color:#323232;">    volumes:
</span><span style="color:#323232;">      - '/home/${USER}/server/configs/plex:/config'
</span><span style="color:#323232;">      - '/home/${USER}/server/media:/data/media'
</span><span style="color:#323232;">    devices:
</span><span style="color:#323232;">      - '/dev/dri/renderD128:/dev/dri/renderD128'
</span><span style="color:#323232;">      - '/dev/dri/card0:/dev/dri/card0'
</span><span style="color:#323232;">    restart: unless-stopped
</span>

Overseer/Ombi - Requesting Movies and TV shows

I use both. You can use ombi only if you don’t plan to install plex.


<span style="color:#323232;">ombi:
</span><span style="color:#323232;">    container_name: ombi
</span><span style="color:#323232;">    image: ghcr.io/linuxserver/ombi
</span><span style="color:#323232;">    environment:
</span><span style="color:#323232;">      - PUID=1000
</span><span style="color:#323232;">      - PGID=1000
</span><span style="color:#323232;">      - TZ=Asia/Kolkata
</span><span style="color:#323232;">    volumes:
</span><span style="color:#323232;">      - '/home/${USER}/server/configs/ombi:/config'
</span><span style="color:#323232;">    ports:
</span><span style="color:#323232;">      - '3579:3579'
</span><span style="color:#323232;">    restart: unless-stopped
</span><span style="color:#323232;">
</span><span style="color:#323232;">overseerr:
</span><span style="color:#323232;">    container_name: overseerr
</span><span style="color:#323232;">    image: ghcr.io/linuxserver/overseerr
</span><span style="color:#323232;">    environment:
</span><span style="color:#323232;">      - PUID=1000
</span><span style="color:#323232;">      - PGID=1000
</span><span style="color:#323232;">      - TZ=Asia/Kolkata
</span><span style="color:#323232;">    volumes:
</span><span style="color:#323232;">      - '/home/${USER}/server/configs/overseerr:/config'
</span><span style="color:#323232;">    ports:
</span><span style="color:#323232;">      - '5055:5055'
</span><span style="color:#323232;">    restart: unless-stopped
</span>

Qbittorrent - Torrent downloader

I use qflood container. Flood provides a nice UI and this image automatically manages the connection between qbittorrent and flood.

Qbittorrent only needs access to torrent directory, and not the complete data directory.


<span style="color:#323232;">qflood:
</span><span style="color:#323232;">    container_name: qflood
</span><span style="color:#323232;">    image: hotio/qflood
</span><span style="color:#323232;">    ports:
</span><span style="color:#323232;">      - "8080:8080"
</span><span style="color:#323232;">      - "3005:3000"
</span><span style="color:#323232;">    environment:
</span><span style="color:#323232;">      - PUID=1000
</span><span style="color:#323232;">      - PGID=1000
</span><span style="color:#323232;">      - UMASK=002
</span><span style="color:#323232;">      - TZ=Asia/Kolkata
</span><span style="color:#323232;">      - FLOOD_AUTH=false
</span><span style="color:#323232;">    volumes:
</span><span style="color:#323232;">      - '/home/${USER}/server/configs/qflood:/config'
</span><span style="color:#323232;">      - '/home/${USER}/server/torrents:/data/torrents'
</span><span style="color:#323232;">    restart: unless-stopped
</span>

Heimdall - Dashboard

There are multiple dashboard applications but I use Heimdall.


<span style="color:#323232;">heimdall:
</span><span style="color:#323232;">    container_name: heimdall
</span><span style="color:#323232;">    image: ghcr.io/linuxserver/heimdall
</span><span style="color:#323232;">    environment:
</span><span style="color:#323232;">      - PUID=1000
</span><span style="color:#323232;">      - PGID=1000
</span><span style="color:#323232;">      - TZ=Asia/Kolkata
</span><span style="color:#323232;">    volumes:
</span><span style="color:#323232;">      - '/home/${USER}/server/configs/heimdall:/config'
</span><span style="color:#323232;">    ports:
</span><span style="color:#323232;">      - 8090:80
</span><span style="color:#323232;">    restart: unless-stopped
</span>

Flaresolverr - Solves cloudflare captcha

If your indexers use captcha, you will need flaresolverr for them.


<span style="color:#323232;">flaresolverr:
</span><span style="color:#323232;">    container_name: flaresolverr
</span><span style="color:#323232;">    image: 'ghcr.io/flaresolverr/flaresolverr:latest'
</span><span style="color:#323232;">    ports:
</span><span style="color:#323232;">      - '8191:8191'
</span><span style="color:#323232;">    environment:
</span><span style="color:#323232;">      - PUID=1000
</span><span style="color:#323232;">      - PGID=1000
</span><span style="color:#323232;">      - TZ=Asia/Kolkata
</span><span style="color:#323232;">    restart: unless-stopped
</span>

Transcoding

As I mentioned in the jellyfin section there is a section in the conmpose file as “devices”. It is used for transcoding. If you don’t include that section, whenever transcoding happens it will only use CPU. In order to utilise your gpu the devices must be passed on to the container.

https://jellyfin.org/docs/general/administration/hardware-acceleration.html Read up this guide to setup hardware acceleration for your gpu.

Generally, the devices are same for intel gpu transcoding.


<span style="color:#323232;">devices:
</span><span style="color:#323232;">      - '/dev/dri/renderD128:/dev/dri/renderD128'
</span><span style="color:#323232;">      - '/dev/dri/card0:/dev/dri/card0'
</span>

To monitor the gpu usage install intel-gpu-tools


<span style="color:#323232;">sudo apt install intel-gpu-tools
</span>

Now, create a compose file for media server.


<span style="color:#323232;">mkdir ~/server/compose/media-server
</span><span style="color:#323232;">vi ~/server/compose/media-server/docker-compose.yml
</span>

And copy all the containers you want to use under services. Remember to add the version string just like adguard home compose file.

Configuring the docker stack

Start the containers using the same command we used to start the adguard home container.


<span style="color:#323232;">docker-compose up -d
</span>

Jackett

Navigate to YOUR_SERVER_IP:9117

Add a few indexers to jackett using the “add indexer” button. You can see the indexers I use in the image below.

Indexers

Qbittorrent

Navigate to YOUR_SERVER_IP:8080

The default username is admin and password adminadmin. You can change the user and password by going to Tools → Options → WebUI

Change “Default Save Path” in WebUI section to /data/torrents/ and “Keep incomplete torrents in” to /data/torrents/incomplete/

Create categories by right clicking on sidebar under category. Type category as TV and path as tv. Path needs to be same as the folder you created to store your media. Similarly for movies type Movies as category and path as movies. This will enable to automatically move the media to its correct folder.

Sonarr

Navigate to YOUR_SERVER_IP:8989

  • Under “Download Clients” add qbittorrent. Enter the host as YOUR_SERVER_IP port as **8080,** and the username and password you used for qbittorrent. In category type TV (or whatever you selected as category name(not path) on qbittorent). Test the connection and then save.
  • Under indexers, for each indexer you added in Jackett
    • Click on add button
    • Select Torzab
    • Copy the tornzab feed for the indexer from jackett
    • Copy the api key from jackett
    • Select the categories you want
    • Test and save
  • Under general, define the root folder as /data/media/tv

Repeat this process for Radarr, Lidarr and readarr.

Use /data/media/movies as root for Radarr and so on.

The setup for ombi/overseerr is super simple. Just hit the url and follow the on screen instructions.

Bazarr

Navigate to YOUR_SERVER_IP:6767

Go to settings and then sonarr. Enter the host as YOUR_SERVER_IP port as 8989. Copy the api key from sonarr settings→general.

Similarly for radarr, enter the host as YOUR_SERVER_IP port as 7878. Copy the api key from radarr settings→general.

Jellyfin

Go to YOUR_SERVER_IP:8096

  • Add all the libraries by selecting content type and then giving a name for that library. Select the particular library location from /data/media. Repeat this for movies, tv, music, books and audiobooks.
  • Go to dashboard→playback, and enable transcoding by selecting as VAAPI and enter the device as /dev/dri/renderD128

Monitor GPU usage while playing content using


<span style="color:#323232;">sudo intel_gpu_top
</span>

Heimdall

Navigate to YOUR_SERVER_IP:8090

Setup all the services you use so you don’t need to remember the ports like I showed in the first screenshot.

Updating docker images

With docker compose updates are very easy.

  • Navigate to the compose file directory ~/server/compose/media-server.
  • Then docker-compose pull to download the latest images.
  • And finally docker-compose up -d to use the latest images.
  • Remove old images by docker system prune -a

What’s next

  • You can setup VPN if torrents are blocked by your ISP/Country. I wanted to keep this guide simple and I don’t use VPN for my server, so I have left out the VPN part.
  • You can read about port forwarding to access your server over the internet.
Gooey0210 ,

Look into jellyfin + jellyserr

CallOfTheWild ,

Saving

univers3man ,

As an FYI to anyone trying this, I ran into the following problems and solved them.

  1. Port 53 (DNS) was already bound to systemd-resolved. This caused the Adguard container to fail. hub.docker.com/r/adguard/adguardhomeFrom their documentation, do this. I added the commands I did below.

sudo mkdir /etc/systemd/resolved.conf.d sudo touch /etc/systemd/resolved.conf.d/adguardhome.conf sudo nano /etc/systemd/resolved.conf.d/adguardhome.conf this in and save [Resolve] DNS=127.0.0.1 DNSStubListener=no

  1. DHCP on the interface I was using on my VM was already bound to DHCP. To resolve this, set a static IP. I used the following. sudo nano /etc/netplan/00-installer-config.yaml

with the following. Make sure if your adapter isn’'t labeled ens33, you change it appropriately. network: renderer: networkd ethernets: ens33: addresses: - 192.168.1.200/24 nameservers: addresses: [192.168.1.1] routes: - to: default via: 192.168.1.1 version: 2

Blxter ,
@Blxter@lemmy.zip avatar

Hey so I know this is really old but I have been running my adguard home on a raspi for a while now but am trying to move it over to run with everthing else. The only problem is that whenever I set the "DNSStubListener=no" it breaks all the API things for homepage and overseerr/tautuli etc do you know of a way to fix?

czer0_ ,
@czer0_@sh.itjust.works avatar

I’ll need to take a closer look at this later.

clericc ,

the hyphened “docker-compose” cmd is deprecated and does not receive updates anymore. Use “docker compose” (as in a subcommand of the docker cli) instead. You might docker compose files that the old thing refuses.

Blxter ,
@Blxter@lemmy.zip avatar

Yup I figured this out yesterday just started trying this guide I was sitting there like am I slow... Where I mess up lmao.

LWJanniesRCucks ,

👍👍

aldalire ,

Thank you for the guide. What are your thoughts on Jellyseer instead of Overseer? So that we can eliminate the need for Plex in the setup.

spacecowboy ,

Can anyone assist with an issue? I get to this part of the guide: > Save the following content to the docker-compose.yml file.

I am not quite sure how to “save” it. I tried the :wq thing and it seemed to work? But then when I tried starting the contaner by inputting >docker-compose up -d

I get >usr/local/bin/docker-compose: line 1: Not: command not found

I’m stuck at this point. Any tips would be appreciated!

lillo , (edited )
@lillo@lemmy.sdf.org avatar

Perhaps the manual is a bit outdated. In recent versions of Docker, docker-compose is installed as a plugin for the docker command. So instead of using docker-compose up -d, try using docker compose up -d (note the white space between “docker” and “compose”).

spacecowboy ,

That input results this response from the terminal:

no configuration file provided: not found

kaupas24 ,

If you run ls, does the file appear in the list?

spacecowboy ,

It does not

4lan ,

I had to press ZZ (shift-z twice) to save and exit the compose file before running ‘docker-conpose up -d’

spacecowboy ,

That brought me back out of the file writing screen but when I run the docker-compose up -d it tells me the same as before, “/usr/local/bin/docker-compose: line 1: Not: command not found”

ohlaph ,

I have a raspberry pi chilling on the desk. I should try this items.

JokeDeity ,

Saving for later, this is the way everyone, try to be more like this legend.

dmrzl ,

There really isn’t a single good name in this entire area of software. Just a massive cringefest.

jose1324 ,

Half of this stuff is like widely loved and open source. What is so cringe

mechoman444 ,

The names of stuff. They’re weird to him. That’s the issue he’s having. Basically a complete lack of self awareness.

KaleDaddy , (edited )

I know one or both changed their name and idk if theyre even still around but makes me think of wefwef and mlem for lemmy what cringy fucking names. I know the name isnt a huge deal if the software is good but for one second can we not sound exactly as cringy as a people imagine us lol

dmrzl , (edited )

Yes, wefwef got the memo and changed its name to Voyager. Maybe it’s an age issue - most pirates are young.

klyde ,

Funny coming from the person saying ‘cringe.’

ILikeBoobies , (edited )

I tried a few days ago but

I couldn’t have docker containers on a separate drive

And I couldn’t get Jellyfin to attach to my port through docker. The logs didn’t show anything was going wrong though

ohlaph ,

Keep trying please

XTornado ,

Any reason for not using Prowlarr?

SchizoDenji ,

You can use Jellyseer and remove plex entirely. It’s a fork of overseer.

Nioxic ,

Is all these blocks just… pasted into the terminal?

Is i really that easy??

doink ,

No these blocks would be parts of a docker-compose.yml file.

Then you can just run ‘docker compose up -d’

  • All
  • Subscribed
  • Moderated
  • Favorites
  • piracy@lemmy.dbzer0.com
  • random
  • All magazines