Software - Pelochus/pelochus-homelab GitHub Wiki

Webpage

I have my own personal webpage at https://pelochus.duckdns.org

See https://github.com/Pelochus/web for more information on my webpage

Note to self: Remember to install DuckDNS on the server! This is not done automatically

Networking and Monitoring

Pi-Hole

Installs Pi-Hole the official way with user interaction required. Needs full configuration or restoring a backup after installation. Uses port 80 for webUI and administration but change it to port 88 if it conflicts

Wireguard Easy

Easily install Wireguard in Docker. Substitutes older PiVPN (51820 for WireGuard, 51821 for WebUI)

Samba (ksmbd) + SFTP

Very simple NAS-like setup. SFTP is automatically working since using OpenSSH (uses SSH port, 22). Samba is completely installed and configured in script, but needs minimal user interaction (folder name, username and password). Currently using the Linux kernel implementation which is around 10-25% faster.

Netdata

Very lightweight way of monitoring the server, has connection to cloud for easily and securely connecting remotely to Netdata. May need compiling depending on architecture used. Uses port 19999

Homarr

Web interface for organizing services. Quite stylish, simple and provides a pretty organized look for the services running in the server, at least those with some kind of web interface or access without SSH / other protocols such as SMB or VPN. Needs extra config through webUI, but is easy and simple. Substitutes Organizr, which is worse, less simple and more difficult to configure and install. Uses port 7575, though it can be better to use 80

Homarr can also be used as a simple Docker manager. To do this, just add - /var/run/docker.sock:/var/run/docker.sock to the docker-compose.yml volumes section

Media and Downloads

qBittorrent

Installed qbittorrent-nox, edition without GUI but with webUI. See this guide for extra information in runnning and configuring the daemon. Uses port 8080

Jellyfin

Alternative to Plex, but completely FOSS. Installation commands are from the following guide

Compatible codecs listed here. Essentially, use Chrome, Edge or native OS client.

TODO Add Jellyfin configuration / recommended settings here

Has clients in these platforms. Uses the following ports:

  • 8096/tcp is used by default for HTTP traffic (In other words, default webUI port)
  • 8920/tcp is used by default for HTTPS traffic

ArrInstall: Install Radarr, Sonarr and other *Arr programs

Note: Right now I'm using Docker, which is probably wait better for these

This script install easily *Arr programs. IMPORTANT It is updated manually, so everytime running it, you should be checking if there's a newer version. See the official link in WikiArr

  • Radarr uses port 7878 for webUI
  • Sonarr uses port 8989 for webUI
  • Readarr uses port 8787 for webUI
  • Prowlarr uses port 9696 for webUI

Jellyseerr

Overseer fork for Jellyfin. Allows easy request of movies and shows through a cleaner, simpler web interface than Radarr / Sonarr or plain qBittorrent. Also useful because it combines both Radarr and Sonarr into one webUI. Install after Jellyfin and Arr software. Uses port 5055

PyLoad

For downloading stuff from the web. Like JDownloader, but for a server. Simpler, works better and off-loads computers from staying awake for only downloading. Uses port 8000

Others

Minecraft

The Minecraft setup in this script is using this guide. See this guide for extra details in configuration and running The main features are the following:

  • Supports both Java and Bedrock players thanks to Geyser and Floodgate plugins
  • Lightweight because it uses PaperMC
  • Extremely easy to run thanks to Docker
  • Can switch Minecraft versions pretty easily

I'm using this command to run:

docker run -it -v dockerminecraft:/minecraft -p 25565:25565 -p 19132:19132/udp -p 19132:19132 -e Version=1.20.1 -e MaxMemory=2048 -e TZ=Europe/Paris --restart unless-stopped 05jchambers/legendary-minecraft-geyser-floodgate:latest

Some useful files and directories are:

PaperMC configuration:
dockerminecraft/_data/server.properties

Geyser configuration:
dockerminecraft/_data/plugins/Geyser-Spigot/config.yml

Locate Docker volume:
docker volume inspect dockerminecraft

It is recommended to move the volume to an external storage if it is faster than the OS storage. Then create a symbolic link with ls -s where it was located previously so that Docker still can access the volume

Uses port 25565 for Java and 19132 for Bedrock

Port List

Software Port
Pi-Hole 88
NGINX 81
WG Easy 51820
Netdata 19999
qBittorrent 8080
Jellyfin 8096
Jellyseerr 5055
Radarr 7878
Sonarr 8989
Readarr 8787
Prowlarr 9696
PyLoad 8000
MC Java 25565
MC Bedrock 19132
Homarr 7575
VSCode 8443

Dynamic DNS

DynDNS is used here due to obvious reasons. I'm using NoIP because ISP's router supports it, but I'm also using DuckDNS as it works better with NGINX

Possible alternatives

  • Very interesting: KSMBD (Samba integrated into Linux 6.6) as alternative to userspace Samba
  • OMV / NextCloud as an upgraded alternative to Samba + SFTP
  • Grafana / Prometheus as alternatives to Netdata (way more configurable, less friendly and probably heavier on CPU/RAM/Disk)
  • Deluge / Transmission as alternatives to qBittorrent

TODO:

  • Finish this README accordingly to what software has been added