RUN SAP BETTER
Homelab
Uptime Kuma | Monitoring Tool
​Uptime Kuma is an open-source monitoring tool that can track the health of websites, applications, and APIs. It can monitor services over HTTP/S, TCP, DNS, and other protocols.
Features
​
-
Notifications: Uptime Kuma can send notifications via email, Telegram, Discord, Gotify, Slack, Pushover, and more than 90 other notification services​​
-
Status pages: Uptime Kuma allows users to create custom status pages to share information about service health and manage incidents
-
Scalability: Uptime Kuma can be deployed on any cloud or on-premise
-
Security: Uptime Kuma is secure
-
Data storage: Uptime Kuma uses a local SQLite database to store user data and service configuration
​
Installing Uptime Kuma on Docker
​
-
Open the terminal
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
Update Repository | Command: apt update
-
(Optional) Install 'Docker', if you don't have it | Command: apt install docker-io
-
Install 'Uptime Kuma' using 'Docker' | Command: docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
-
Accessing 'Uptime Kuma' | Hyperlink: http://<ip-address>:3001
-
Example: http://192.168.1.130:3000
-
Create an User and Password
-
​
Accessing Uptime Kuma over Internet
​
In order to expose Uptime Kuma to the web securely, you can reverse proxy it using a Tunnel (like CloudFlare Tunnel).
​
Monitoring
​
-
HTTP(s)
-
Advanced Status Code
-
200-299 Range: Page is OK (Use this to your webpage)
-
400-499 Range: Problem with the Client (Problem is with your Computer)
-
500-599 Range: Problem with the Server
-
-
-
HTTP(s) - Keyword
-
It will monitor and search an specific word in your webpage, if the word is not found it will considered your webpage down
-
-
DNS
-
You can monitor your DNS Resolver (Like AdGuard or Pi-Hole)
-
You can insert a webpage, and you DNS Resolver and port
-
BGInfo | Computer Info on Wallpaper
​BGInfo is a tool that displays a Windows computer's configuration information on the desktop wallpaper. It's part of Sysinternals and is often used by system administrators in large enterprises.
BGInfo can display information such as: Computer name, IP address, Service pack version, OS version, and Hostname.
Requirements
​
-
Client: Windows 8.1 and higher
-
Server: Windows Server 2012 and higher
​
Warning: BGInfo has issues with some wallpapers extension, like '.png', try using '.jpg'
​
To use BGInfo
​
-
Download BGInfo from the Sysinternals website
-
Extract the ZIP file contents
-
Suggested Folder: 'C:\Program Files\BGInfo\'
-
-
Run BGInfo and configure it to your needs
-
Click OK to save your configuration
-
(Option) You can save a '.bgi' file to transfer to another computer
-
-
View your system information on your desktop background
​
Custom User Defined Fields
​
-
Architecture | WMI Query | SELECT OSArchitecture FROM Win32_OperatingSystem
-
Example: 64-bit
-
-
BootDevice | WMI Query | SELECT BootDevice FROM Win32_OperatingSystem
-
NumbProcess| WMI Query | SELECT NumberOfProcessors FROM Win32_ComputerSystem
-
ProcessName | WMI Query | SELECT Name FROM Win32_Processor
-
BIOSDate | Registry Value | HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS\BIOSReleaseDate
-
BoardProduct | Registry Value | HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS\BaseBoardProduct
-
SystemFamily | Registry Value | HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS\SystemFamily
-
Edition | Registry Value | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName
-
Version | Registry Value | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DisplayVersion
-
LastUpdatePurge | Registry Value | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\LastDownloadsPurgeTime
​
Auto Update the Display
Windows Startup
​​​
-
Create a shortcut
-
Example 1 | Target | "C:\Program Files\BGInfo\Bginfo64.exe" /timer:0 /silent
-
Example 2 | Target | "C:\Program Files\BGInfo\Bginfo64.exe" Bginfo64.bgi /timer:0 /silent
-
Example 3 | Target | "C:\Program Files\BGInfo\Bginfo64.exe" "C:\Program Files\BGInfo\Bginfo64.bgi" /timer:0 /silent /nolicprompt
-
(Optional) Change the Run Mode | Run: Minimized
-
-
Put the shortcut on | C:\ProgramData\Microsoft\Microsoft\Windows\Start Menu\ Programs\Startup
​
Registry Editor
​
-
Search Bar | Application: regedit
-
Go to | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
-
Create a New 'Expandable String Value'
-
Name: BGInfo
-
Value Data: C:\Program Files\BGInfo\Bginfo64.bgi /timer:0 /silent /nolicprompt
-
​
Parameters
​
-
<path> | Specifies the name of a configuration file to use for the current session. Changes to the configuration are automatically saved back to the file when OK or Apply is pressed. If this parameter is not present BGInfo uses the default configuration information which is stored in the registry under the current user ("HKEY_CURRENT_USER\Software\Winternals\BGInfo")
-
/timer | Specifies the timeout value for the countdown timer, in seconds.
-
Example 1 | /timer:10 | Specifying 10 or no timer (default) will update the display in 10 seconds
-
Example 2 | /timer:0 | Specifying zero will update the display without displaying the configuration dialog
-
Example 3 | /timer:300 |Specifying 300 seconds or longer disables the timer altogether
-
-
/popup | Causes BGInfo to create a popup window containing the configured information without updating the desktop. The information is formatted exactly as it would if displayed on the desktop, but resides in a fitted window instead. When using this option the history database is not updated
-
/silent | Suppresses error messages
-
/taskbar | Causes BGInfo to place an icon in the taskbar's status area without updating the desktop. Clicking the icon causes the configured information to appear in a popup window. When using this option the history database is not updated
-
/all | Specifies that BGInfo should change the wallpaper for any and all users currently logged in to the system. This option is useful within a Terminal Services environment, or when BGInfo is scheduled to run periodically on a system used by more than one person (see Using a Schedule below)
-
/log | Causes BGInfo to write errors to the specified log file instead of generating a warning dialog box. This is useful for tracking down errors that occur when BGInfo is run under the scheduler
-
/rtf | Causes BGInfo to write its output text to an RTF file. All formatting information and colors are included
-
/nolicprompt | EULA (End User License Agreement) is not prompted for new users
-
/accepteula | EULA (End User License Agreement) is automatically accepted for new users
Pi Hole (DNS Sinkhole)
Installing Pi Hole o n Ubuntu
​
-
Open the terminal
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
Update Package Database | Command: apt update
-
Install 'curl' to download the Application | Command: apt install curl
-
Install Pi-Hole | Command: curl -sSL https://install.pi-hole.net | bash
-
Follow the steps to conclude the installation
-
Pi-Hole will be installed and the initial password will be displayed on the screen
-
Changing the Initial Password | Command: pihole -a -p
​
Installing Pi Hole on Docker Container
​
PowerShell Command:
​​
-
Open the terminal
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
Install Pi-Hole | Command: docker run -d --name pihole -p 53:53/tcp -p 53:53/udp -p 80:80 -p 443:443 -e TZ="Europe/London" -v "$(pwd)/etc-pihole/:/etc/pihole/" -v "$(pwd)/etc-dnsmasq.d/:/etc/dnsmasq.d/" --restart=unless-stopped pihole/pihole:latest
-
docker run -d (Run Docker)
-
--name pihole (Container Name)
-
-p 53:53/tcp (Ports to expose. The 53 and 80 are the bare minimum ports required for Pi-holes HTTP and DNS services)
-
-p 53:53/udp
-
-p 80:80
-
-p 443:443
-
-e TZ="Europe/London" (Timezone)
-
-v "$(pwd)/etc-pihole/:/etc/pihole/" (Volume and $(pwd) for your Pi-hole configs help persist changes across docker image updates)
-
-v "$(pwd)/etc-dnsmasq.d/:/etc/dnsmasq.d/" (Volume and $(pwd) for your Pi-hole configs help persist changes across docker image updates)
-
--restart=unless-stopped (Automatically (re)start your Pi-hole on boot or in the event of a crash)
-
pihole/pihole:latest (Image of the Pi Hole and the tag latest to always get the latest release)
​
Automatic Ad List Updates: Since the 3.0+ release, "cron" is baked into the container and will grab the newest versions of your lists and flush your logs. Set your TZ environment variable to make sure the midnight log rotation syncs up with your timezone's midnight.
​
Accessing the Pi Hole
​
URL: http://pi.hole/admin
​
If the URL doesn't work you can check the "IPCONFIG" Command Prompt, the IPv4 of your LAN (main server)
​
Example: 192.168.0.101/admin
​
Initial Password
​
Since we didn't use the variable to set the password, Pi Hole generates a random one.
Check the password:
-
Open your Docker Container
-
Containers
-
Click on Pi Hole Container
-
Logs tab
-
Search for assigned random password
-
Line example: [i] Assigning random password: 5Tg45Gd9
-
​
Changing the Password:
-
You don't need the initial password to change it
-
Just need to type the command: docker exec -it <pihole_container_name> pihole -a -p (in our case the name is pihole)
-
And a prompt will request the new password
​
Command:
​
docker exec -it pihole pihole -a -p
​
Using the Pi Hole
​
You can use the same IP address that you are using to access the Pi Hole Web GUI to put as a DNS in your laptop, mobile or pfSense.
AdGuard Home (DNS Sinkhole)
​
What is AdGuard Home?
​
It is a DNS Resolver and DNS Sinkhole. In other words, AdGuard Home is a application for blocking ads & tracking.
​
It will replace the IP of your DNS server, querying major DNS providers such as Google (8.8.8.8), Cloudflare (1.1.1.1), with the correct IP address for your devices (DNS Resolver). But with one difference, it will block ads and tracking IPs by changing it to (0.0.0.0), a non-existent IP address (DNS Sinkhole).
​
Benefits
-
Privacy (Tracking Blocking)
-
Reduction of Ads
-
Increasing network speed (IP 0.0.0.0 won't download anything)
​
Installing on Docker
​
Warning: According with AdGuard documentation, the application has no drivers to work on Windows Docker, it must be installed on Docker on Linux-based system.
​
Pull the Docker Image
​
docker pull adguard/adguardhome
​
Create and Run the Container
​
docker run --name adguardhome --restart unless-stopped -v /my/own/workdir:/opt/adguardhome/work -v /my/own/confdir:/opt/adguardhome/conf -p 53:53/tcp -p 53:53/udp -p 67:67/udp -p 68:68/udp -p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp -p 853:853/tcp -p 784:784/udp -p 853:853/udp -p 8853:8853/udp -p 5443:5443/tcp -p 5443:5443/udp -d adguard/adguardhome
​
-
docker run --name adguardhome
-
--restart unless-stopped
-
-v /my/own/workdir:/opt/adguardhome/work
-
-v /my/own/confdir:/opt/adguardhome/conf
-
-p 53:53/tcp -p 53:53/udp
-
-p 67:67/udp -p 68:68/udp
-
-p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp
-
-p 853:853/tcp
-
-p 784:784/udp -p 853:853/udp -p 8853:8853/udp
-
-p 5443:5443/tcp -p 5443:5443/udp
-
-d adguard/adguardhome
​
Installing on Linux-based Systems (Ubuntu, Raspberry Pi OS)
​
1 Option using "curl"
​​
-
Open the terminal
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
Update Package Database | Command: apt update
-
(Optional) If you don't have "curl", install it | Command: apt install curl
-
Verify if you have "curl" | Command: curl --version
-
-
Install AdGuard | Command: curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
-
Accessing AdGuard
-
Finishing the installation you will see the IP address to access the Web GUI. (It will be the IP address with port 3000)
-
Example: http://127.0.0.1:3000
-
​
2 Option using "snapd"
​​
-
Open the terminal
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
Update Repository | Command: apt update
-
(Optional) If you don't have "snap", install it | Command: apt install snapd
-
Verify if you have "snap" | Command: snapd --version
-
-
Install AdGuard | Command: snap install adguard-home
-
Accessing AdGuard
-
Finishing the installation you will see the IP address to access the Web GUI. (It will be the IP address with port 3000)
-
Example: http://127.0.0.1:3000
-
Plex Media Server
​
Plex Media Server is a free software application that lets you store, organize, and stream your media collection from a central location. It's similar to having your own personal Netflix or Spotify server that you can access from many different devices.
​​
Plex Media Server Ports
​
-
The most important port to make sure your firewall allows is the main TCP port the Plex Media Server uses for communication:
-
Access to the Plex Media Server | TCP: 32400 (required)
-
-
The following additional ports are also used within the local network for different services:
-
Access to the Plex DLNA Server | UDP: 1900
-
Older Bonjour/Avahi network discovery | UDP: 5353
-
Controlling Plex for Roku via Plex Companion | TCP: 8324
-
Current GDM network discovery | UDP: 32410, 32412, 32413, 32414
-
Access to the Plex DLNA Server | TCP: 32469
-
​
Installing Plex Server on Ubuntu
​
-
Open the terminal
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
Update Package Database | Command: apt update
-
Install WGET to download the Application | Command: apt install wget
-
(Optional) To get the path for the last version of Plex
-
Go to official Plex Webpage | Page: https://www.plex.tv/
-
Go to | Download > Plex Media Server > COMPUTER > Linux
-
Choose the Linux Distribution | Click on Linux Distribution and Copy the link of the right distribution for you
-
Example of the Ubuntu/Debian Intel/AMD 64-bit:
-
Link for Download (Download the Application step): https://downloads.plex.tv/plex-media-server-new/1.41.0.8992-8463ad060/debian/plexmediaserver_1.41.0.8992-8463ad060_amd64.deb
-
File (Install the Application step): plexmediaserver_1.41.0.8992-8463ad060_amd64.deb
-
-
-
Download the Application | Command: wget https://downloads.plex.tv/plex-media-server-new/1.41.0.8992-8463ad060/debian/plexmediaserver_1.41.0.8992-8463ad060_amd64.deb
-
Install the Application | Command: dpkg -i plexmediaserver_1.41.0.8992-8463ad060_amd64.deb
​
Accessing Plex via Web Browser
​
-
Open your browser
-
And access it using: http://<plex-ip-address>:32400/web
-
Example: http://192.168.0.110:32400/web
-
​​
Mount an SMB Share Drive for Plex
​
If you want to map a SMB share drive to be used on Plex, you can check in those link below:
-
Mount SMB on Ubuntu | Check it here
​
Activating Automatic Update
​
On DEB-based distros (Ubuntu, etc.)
​
The PMS package will automatically do all repository setup for you on Debian 10+/Ubuntu 20.04+ installations, including obtaining the package signing key.
​
-
Open the terminal
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
Edit the file | Command: nano /etc/apt/sources.list.d/plexmediaserver.list
-
1 Option | On the line "#deb https://downloads.plex.tv/repo/deb/ public main" | Uncomment Removing: #
-
The line should be like this "deb https://downloads.plex.tv/repo/deb/ public main"
-
-
2 Option | On the line "#deb [arch=amd64 signed-by=/usr/share/keyrings/plexmediaserver.gpg] https://downloads.plex.tv/repo/deb/ public main" | Uncomment Removing: #
-
The line should be like this "deb [arch=amd64 signed-by=/usr/share/keyrings/plexmediaserver.gpg] https://downloads.plex.tv/repo/deb/ public main"
-
-
Save it | Ctrl+X, accept the change with "Yes" and press "Enter"
​
Warning: If you have some issues with the updates, probably you are using older versions and you need to perform this follow steps below
​
For pre Debian 10 and Ubuntu 20.04
To enable the Plex Media Server repository only a few terminal commands are required.
​​
-
Open the terminal
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
Command: echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list
-
Command: curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add -
-
(OPTIONAL) If you don't have the "curl" install it | Command: apt install curl
-
(OPTIONAL) If you get a error about "gnupg" install it | Command: apt install gnupg
-
-
Update the Repository | Command: apt update
-
Upgrade the Packages | Command: apt upgrade -y
​​
2 Option | using WGET
​
-
Command: wget -q https://downloads.plex.tv/plex-keys/PlexSign.key -O - | sudo apt-key add -
-
(OPTIONAL) If you don't have the "wget" install it | Command: apt install wget
-
​
RPM-based distros (Fedora, CentOS, etc.)
Inside the RPM package we have silently added a repository configuration file for Plex Media Server to hook up to a repository.
-
To enable the repo, edit /etc/yum.repos.d/plex.repo
-
change line 4 from enabled=0 to enabled=1
It should look like this:
​
[PlexRepo]
name=PlexRepo
baseurl=https://downloads.plex.tv/repo/rpm/$basearch/
enabled=1
gpgkey=https://downloads.plex.tv/plex-keys/PlexSign.key
gpgcheck=1
​
-
Once you’ve done that you can then update your Plex Media Server to the current public release
-
Run your update program or |Command: yum update
-
Plex Media Server will automatically get updated too
​
On openSUSE
After doing the normal steps for RPM-based distributions, openSUSE users will need to make an additional change:
-
Open the “Software Repositories” app
-
Find the “PlexRepo” entry
-
Set that entry to Enabled and Auto Refresh
References: Microsoft (www.microsoft.com); GitHub (github.com); Proxmox (www.proxmox.com)