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