This is a personal blog focused on computer software and hardware. Most
projects are implementing software and hardware for a homelab. What is a
homelab? I would say a homelab could be a single computer or dozens of
computers connected in a network. You can also integrate with computers
in the Cloud.
In a vain attempt to fix issues I am having on my Linux laptop, I wiped my drive and installed Fedora 40. I was using Debian 12 since it released but my laptop has issues related to the dedicated AMD GPU. Feel free to skip the summary of my issues as the rest of this post is about setting up Fedora 40.
Issues with Current system
When I attempt to launch an application on the dedicated GPU with the environment variable DRI_PRIME=1, there are graphical artifacts and then the system becomes completely unresponsive until you hold the power button for a reboot. There is also a bug where the HDMI and usb-c ports that are directly connected to the dedicated GPU do not work unless you log out and log back in. I wish I never purchased a system with multiple GPUs even though they are both AMD and should be supported by open-source mesa drivers. Usually people encounter issues with Nvidia GPUs on Linux and folks recommend Intel/AMD for Linux desktops. I also discovered that when I attempt to create a .xz archive with a lot of files, the CPU would overheat to over 95 Celsius and shut down the system. These are some pretty major issues that affect my ability to daily drive the system.
Setting Up Gitea in a Docker Container and Securing it with Nginx
Gitea is a lightweight, self-hosted Git service that can be easily deployed in a Docker container. In this post, we’ll go through the process of setting up Gitea in a Docker container and securing it with Nginx as a reverse proxy.
Prerequisites
First, you need to install Docker on your server. If you are not familiar with Docker, check out a previous post to get started and install the required software.
Through 2024 I have been redesigning my homelab. Now that networking, firewalls, and servers are operational, the foundation is in place to start managing software projects within the Homelab.
Critical server software
The most important software in use in my homelab is tied to the “critical” servers. “Critical” servers will run 24/7 so I opt for the lowest power usage devices that I own which in my case is 2 Raspberry Pi devices.
A Network File System (NFS) server is a network protocol that allows a system to share its files and directories with other systems over a network. NFS is commonly used in *nix environments to enable file sharing between systems. A basic NFS server is easy to set up and you can choose what directory to share with other systems.
Ubuntu setup
On Ubuntu, first you install the nfs server packages and then enable a system daemon to manage the server and client connections.
AdGuard Home is a network-wide software for blocking ads and tracking. When used as your network DNS server, you can also manage custom DNS records in your local network. Once configured as your DNS server, all devices on your network will have ads and trackers blocked.
DNS is a distributed naming system for translating domain names (like example.com) into IP addresses (such as 192.168.1.1) that computers understand.
DNS resolves human-readable domain names to machine-readable IP addresses, enabling users to access websites, send emails, and connect to other networked resources using memorable domain names rather than numeric IP addresses. Together, DHCP and DNS form the backbone of modern networking infrastructure.
One of the most useful systems to set up in a homelab is shared storage. Making storage available over the network makes it easier to share files and make system backups. I have tried various setups for shared storage in my homelab and my latest iteration is an attempt at a simple setup.
I am going to set up an Ubuntu 22.04 LTS Linux system with disk drives assigned to ZFS storage pools. This operating system is a stable base to set up SMB file shares for Windows clients, AFP for macOS, NFS for Linux, iSCSI for block storage, rsync daemons, and FTP servers.