Hello, I'm Ashik Eqbal

A passionate software engineer who loves to build web applications.

Ashik Eqbal

Latest Blog Posts

Screenshort of proxmox
Trial, Error, and Ethernet: My Homelab Learning Journey
Ashik EqbalJanuary 14, 2025
IT
Homelab
Throughout the process of breaking and rebuilding my system multiple times, I have encountered numerous opportunities to learn and grow in ways I never anticipated. Each failure became a stepping stone to deeper understanding and skill-building, reinforcing the importance of perseverance in the face of challenges

Introduction

I’ve always been curious about server hosting. Back in the day, I used to experiment with hosting WordPress sites and tinkering with basic setups. When I got my first computer, I dove into video games, and like many others, I got hooked on Minecraft. Around 2018 or 2019, I landed a sponsorship deal that allowed me to run my first publicly hosted Minecraft server. That server ran for 3–4 months, giving me my first glimpse into server management and sparking my interest in hosting and infrastructure.

After that, I moved to DigitalOcean, where I started learning more advanced concepts. I explored tools like proxy managers, worked with SSH, and got my first real experience with the Linux environment. These early days laid the foundation for what would later become a deep enthusiasm for self-hosting.

With only one PC at the time, I began my self-hosting journey using VirtualBox on my Windows machine, running Ubuntu 22.04 LTS and Docker. This marked the true beginning of my homelab adventure.

Early Steps: VirtualBox and Docker

My homelab journey started simply, with VirtualBox and Ubuntu 20.04 LTS on my gaming PC. At first, I used Docker to host multiple services, including my first media server. For container management, I relied on Portainer, which was an invaluable learning experience and introduced me to the basics of managing and monitoring containers.

Eventually, I transitioned from Windows to Arch Linux, a move that brought new challenges and opportunities. Along the way, I switched from VirtualBox to Virt-Manager for virtualization. This transition wasn’t without its hiccups—I broke my system multiple times and had to rebuild it from scratch. However, each rebuild taught me something new, deepening my understanding of server management and Linux.

Through this journey, I became proficient in a variety of tools and concepts, including:

  • Local DNS Management: Setting up and managing local domain names.
  • Docker & Docker Compose: Creating and managing containerized applications.
  • Automation: Learning to streamline tasks using scripts and tools.
  • Self-Hosting: Hosting services on my own hardware instead of relying on third-party providers.
  • Server Management: Gaining practical knowledge about maintaining and optimizing server environments.

These early experiences were not only educational but also laid the groundwork for a more sophisticated homelab setup in the future.

Transitioning to Arch Linux and Virt-Manager

Switching to Arch Linux was a significant milestone in my homelab journey. This transition provided me with daily hands-on experience using Linux tools and the command-line interface (CLI), allowing me to dive deeper into system management. Arch’s flexibility and excellent support for Virt-Manager made it an obvious choice, as it offered greater control over my system and its configurations.

At the time, my setup included a 12-core CPU, and I allocated 6 of those cores specifically for virtualization. Using this system, I installed CasaOS on top of Ubuntu as the base, which made managing applications and services much simpler. On this platform, I ran several Docker containers to host various services, including Cocola Lab, Code Server, Portainer, Plex, Jellyfin, Homarr, Overseerr, Radarr, Sonarr, and Watchtower.

This setup provided a comprehensive media server environment while also allowing me to experiment with containerized applications. The combination of Arch Linux and Virt-Manager offered the perfect balance of control, performance, and learning opportunities, making it an invaluable part of my homelab journey.

Experimenting with New Technologies

Once I got my hands on a new laptop, I transformed my old PC into a full-time server. This marked a new chapter in my homelab journey as I began experimenting with hypervisors. Initially, I tried using TrueNAS as my main system OS. While TrueNAS is an excellent tool for storage management, it didn’t quite fit my needs due to its limited flexibility for non-storage tasks.

Recognizing the need for a more versatile platform, I switched to Proxmox. The transition was seamless, and Proxmox proved to be the perfect solution for my requirements. Its robust virtualization capabilities, combined with a user-friendly interface, have made it my go-to hypervisor ever since. I’ve been using it consistently, and it continues to meet my expectations as I expand my homelab.

My Current System

Today, my homelab setup is a reflection of the knowledge and experience I’ve gained over the years. Here’s an overview of my current system:

Hardware overview:

  • CPU: Ryzen 3600
  • GPU: 1050ti (overkill for my current use case)
  • RAM: 16 GB
  • Primary OS: Proxmox VE
  • Storage:
    • 128 GB NVMe SSD: Used for Proxmox boot drive, as well as VM and container disks.
    • 1 TB SATA SSD: Passed through to a TrueNAS VM for storage.
    • 1 TB HDD: Passed through to the TrueNAS VM.

Virtual Machines and Containers:

Virtual Machines:

  • TrueNAS VM: Manages and shares storage using NFS and SMB protocols.
  • Ubuntu VM: Hosts Jellyfin with hardware encoding enabled, utilizing the 1050ti.

Containers (CTs):

  • Pi-hole and AdGuard Home: For DNS filtering and ad-blocking.
  • Plex: For media streaming.
  • Nginx Proxy Manager: Simplifies reverse proxy and SSL management.
  • *Various arr Tools: Radarr, Sonarr, and others for automating media downloads.
  • Cloudflared: For secure remote access.
  • Overseerr: For managing media requests.
  • Homepage: A central dashboard for quick access to homelab services.
  • Docker: Hosting additional lightweight services and tools.

Network Overview:

My current network setup is designed to ensure efficient communication between all devices and services in my homelab.

Network Interfaces:

  • enp4s0 (Physical Network Device):
    • Directly connected to my Proxmox host, serving as the main network adapter.
  • vmbr0 (Linux Bridge):
    • Configured as the primary bridge, linked to enp4s0.
    • Handles the main Proxmox network traffic and all VM/container connections.
    • IP Address: 192.168.1.10/24
    • Gateway: 192.168.1.1
  • vmbr1 (Linux Bridge):
    • Provides an internal connection between your VM and containers (CTs).

DNS Management:

DNS management is streamlined using Pi-hole and AdGuard Home. This setup ensures efficient ad-blocking and provides internal DNS resolution for *.local.homecave.site domains. Additionally, Nginx Proxy Manager is used to simplify reverse proxying and SSL configuration on all internal services, enhancing security and accessibility within your homelab.

Remote Access:

To facilitate secure and encrypted access to my homelab, I rely on Tailscale, which provides seamless remote connectivity from any location. For hosting a few services publicly, Cloudflare Tunnel (via Cloudflared) is utilized. This ensures both secure and reliable access to the public-facing services in your network.

Breaking and Rebuilding

Throughout the process of breaking and rebuilding my system multiple times, I have encountered numerous opportunities to learn and grow in ways I never anticipated. Each failure became a stepping stone to deeper understanding and skill-building, reinforcing the importance of perseverance in the face of challenges.

Teachable Moments:

Understanding System Dependencies: Early on, I discovered the intricate web of dependencies between various components. The importance of knowing how changes in one part of the system can affect others became clear. A small error in one configuration could cascade into issues elsewhere. This taught me the necessity of careful planning and testing each change in isolation before applying it system-wide.

Backup is Essential: I learned the hard way that it's essential to have reliable backup systems in place. Breaking the system multiple times reinforced the importance of regularly backing up data and configurations, allowing me to quickly recover and avoid unnecessary downtime.

Troubleshooting as a Skill: Initially, troubleshooting felt daunting, but with each error message and failure, I learned to interpret logs and trace issues step by step. The key was developing the ability to remain calm and methodically resolve issues rather than rushing to fix them.

Automation to Avoid Human Error: As I continued breaking and rebuilding, I realized how crucial automation was for reducing manual mistakes. Implementing scripts and tools to handle repetitive tasks saved time and ensured consistency across the system. This led to smoother rebuilds with less risk of human oversight.

The Power of Documentation: Early on, I found myself repeatedly retracing my steps when fixing issues. Creating detailed documentation of configurations, setups, and procedures helped me avoid redundancy and allowed for quicker fixes in the future. It also made collaboration with others much easier.

Patience and Persistence: Rebuilding my system often felt frustrating, especially when things didn’t work as expected. However, this process taught me patience. I learned that failure is just part of the learning process, and persistence is key. Each rebuild made me more comfortable and confident in my ability to tackle complex systems.

Exploring New Technologies: Each iteration led to experimentation with new technologies, tools, and techniques. Whether it was testing a new version of software or exploring a new networking solution, every failure presented an opportunity to explore alternatives and broaden my skillset.

Reflections and Advice

Looking back on my journey of breaking and rebuilding my system, I realize just how much it has shaped my growth as a developer and systems administrator. What started as a frustrating process of constant errors and setbacks has transformed into a valuable learning experience. I now have a better understanding of my systems, and I’ve developed key skills that I can apply in various projects.

Embrace Failure as a Learning Opportunity

The most valuable lesson I’ve learned is that failure is not something to fear, but something to embrace. Each time my system broke, it presented a unique opportunity to explore new solutions and refine my approach. It taught me that problems are not roadblocks but stepping stones toward growth. My advice is to approach failure with curiosity rather than frustration. Ask yourself, “What can I learn from this?” and use that mindset to propel your learning forward.

Start Small and Build Gradually

One of the most important pieces of advice I can give is to start with small, manageable tasks. It’s tempting to jump into ambitious projects, but taking on too much too soon can overwhelm you. I found that by breaking down problems into smaller, more achievable parts, I could learn more effectively and avoid feeling bogged down by the complexity of the entire system. Gradual progress leads to steady growth.

Learn from Each Mistake

With every mistake, there’s a lesson. Whether it’s missing a configuration step or misinterpreting a command, each mistake has the potential to teach you something. The key is to analyze what went wrong and figure out how to prevent it from happening again. Keep track of these lessons and use them to build a stronger foundation for your future work.

Seek Help, Don’t Go It Alone

There were times when I felt stuck or overwhelmed, and I learned that reaching out for help is invaluable. There are countless communities, forums, and resources online that can provide insights, answer questions, and even offer new perspectives. Don’t hesitate to ask for advice or share your struggles with others. Collaborative problem-solving often leads to faster and more creative solutions.

Patience is Key

Throughout this process, I had to develop patience. Rebuilding a system can be slow, especially when you're trying new configurations or troubleshooting persistent issues. The temptation to rush through problems is strong, but I’ve realized that taking your time and thinking critically often leads to better long-term results. Don’t rush the learning process; embrace the journey, even if it feels slow.

Automate Repetitive Tasks

One of the most rewarding improvements I made was automating repetitive tasks. Whether it was backing up data, configuring services, or setting up new environments, automation made a huge difference in reducing errors and saving time. My advice is to invest time in learning how to automate tasks with scripts or tools. It’ll pay off in the long run and make your processes more efficient.

Document Everything

The more I worked, the more I realized how important it was to document my progress. Whether it’s a simple configuration change or a more complex network setup, writing things down helps you track your work and serves as a valuable reference for future troubleshooting. It also makes it easier for others to collaborate with you on the project.

Conclusion

Reflecting on my journey through trial, error, and growth in building my homelab, I’ve come to appreciate the value of persistence, curiosity, and continuous learning. Each challenge, failure, and success has shaped not only my technical skills but also my approach to problem-solving and systems management. From starting with a simple VirtualBox setup to building a comprehensive and robust homelab environment, every step along the way has been a learning experience that pushed me further into the world of self-hosting, automation, and infrastructure management.

Through countless rebuilds, I’ve learned that failure is not the end but a crucial part of the learning process. Each mistake provided an opportunity to refine my skills, explore new technologies, and strengthen my understanding of the intricate connections within a system. With each failure, I became more patient, more organized, and more resilient.

As I look ahead, I know that there will be many more challenges to overcome. However, I now approach them with confidence and a clear mindset, equipped with the tools, skills, and knowledge to adapt and learn. The advice I offer to others on a similar journey is simple: embrace failure, start small, automate, document, and, most importantly, be patient and persistent. Every setback is just a stepping stone to mastering the systems you’re building. The journey may be long, but the rewards, both in knowledge and experience, are well worth it.

In the end, my homelab is more than just a collection of hardware and software; it’s a testament to growth, learning, and the power of perseverance. The lessons I’ve learned along the way are not just about technology but about how to approach life’s challenges with a mindset of continual improvement and a passion for discovery.

Acknowledgements

I want to extend my heartfelt gratitude to several incredible creators and communities whose content, guidance, and inspiration have been pivotal in shaping my homelab journey. Their expertise, dedication, and passion have fueled my growth, providing invaluable insights and helping me overcome the challenges along the way.

Techno Tim – Your videos and tutorials on homelab setups, networking, and server hardware have been an endless source of inspiration. You've made complex topics approachable and exciting for those like me who are just starting out.

Christian Lempa – Your deep dives into homelab technology and server builds have opened my eyes to the possibilities of creating a powerful, personalized system. Your content has helped me explore new configurations and tools that I wouldn't have considered otherwise.

Lawrence Systems – From your detailed product reviews to your expert breakdowns of virtualization and networking, your content has been a cornerstone of my homelab education. Your guidance has given me the confidence to try new technologies and troubleshoot with precision.

Hardware Haven – Your thorough hardware reviews and hands-on testing have given me practical knowledge that helped guide my purchasing decisions for my homelab setup. You've made it clear that hardware selection is crucial to building a robust system.

TechHut – The homelab projects and setup ideas you've shared have inspired me to think outside the box and take on more ambitious challenges. Your projects have often been the spark for new ideas in my own homelab.

Craft Computing – Your focus on server setups and cost-effective solutions has encouraged me to think creatively about how I can build and maintain my systems. You've shown me that it's possible to create powerful setups without breaking the bank.

Raid Owl – Your tutorials on storage, networking, and server management have been indispensable. You’ve made understanding the technical aspects of homelab setups far less intimidating, and your content continues to inspire me to push my own setup further.

ServeTheHome – As a trusted resource for server hardware, networking, and virtualization, your site has been a go-to for me whenever I needed to dive deeper into specific components. Your reviews and articles have guided me in optimizing my hardware for efficiency and reliability.

DB Tech – Your focus on homelab efficiency and automation has motivated me to streamline my own workflows and ensure my systems are running smoothly with minimal effort. Your tutorials have provided me with the tools and confidence to implement new technologies.

Jeff Geerling – Your work with Ansible, automation, and homelab infrastructure has been a game-changer for me. You’ve helped me understand the power of automation and its role in maintaining scalable and efficient systems.

NetworkChuck – Your engaging, fun approach to networking and tech has made learning about homelabs both exciting and enjoyable. Your energy and approachability have made even the most technical topics accessible to people like me who are still learning the ropes.

And special thanks to tteckster, you will be missed. Rest in peace.

An introduction to Blockchain technology and its potential use cases
An introduction to Blockchain technology and its potential use cases
Ashik EqbalJanuary 25, 2024
Technology
Blockchain technology, the backbone of Bitcoin and other cryptocurrencies, has been making waves in various industries with its potential to revolutionize the way we conduct transactions and store data. It is a digital ledger that is decentralized, meaning it is not controlled by any single entity, and it is a chain of blocks, where each block contains a number of transactions, and these blocks are linked together chronologically. The key feature of blockchain technology is that once a block is added to the chain, it cannot be altered or deleted, providing a tamper-proof way to store data. Some benefits of blockchain technology include decentralization, transparency, security, and immutability, while some cons include scalability, complexity, and regulatory challenges. The current use cases of blockchain technology are cryptocurrency, supply chain management, voting systems and smart contracts. The future of blockchain technology is expected to be characterized by more experimentation, innovation, and widespread adoption in various industries, as well as addressing scalability issues and maturing of the technology.

Blockchain technology, the backbone of Bitcoin and other cryptocurrencies, has been making waves in various industries with its potential to revolutionize the way we conduct transactions and store data. In simple terms, it is a digital ledger that is decentralized, meaning it is not controlled by any single entity. Transactions are recorded and grouped together into blocks, and these blocks are linked together chronologically, forming a chain. The key feature of blockchain technology is that once a block is added to the chain, it cannot be altered or deleted, providing a tamper-proof way to store data.

One of the most significant advantages of blockchain technology is its ability to eliminate intermediaries in transactions. In traditional systems, transactions are conducted through intermediaries such as banks, which can slow down the process and increase costs. With blockchain, transactions can be conducted directly between parties, reducing costs and increasing speed.

The transparency of the ledger is another advantage of blockchain technology. The ledger is publicly accessible, creating a transparent and tamper-proof record of transactions. This can increase trust in the system and reduce the risk of fraud.

Security is another important aspect of blockchain technology. The use of consensus mechanisms and cryptography make it highly secure. This is particularly important for sensitive information and financial transactions.

Immutability is another key feature of blockchain technology. Once a block is added to the chain, it cannot be altered or deleted, providing a tamper-proof way to store data. This can be particularly useful for sensitive information, such as medical records, that need to be kept private.

Despite the many advantages of blockchain technology, there are also some challenges to be considered. Scalability is one of the biggest challenges facing blockchain technology today. The current scalability of blockchain technology is limited, with a maximum number of transactions that can be processed per second. This can be a barrier to widespread adoption.

Complexity is another challenge facing blockchain technology. The technology is complex, and not all individuals and businesses may have the resources or knowledge to implement it. This can be a barrier to widespread adoption.

Regulation is another issue to be considered. The regulatory environment for blockchain technology is still evolving, and there may be uncertainty about how it will be regulated in the future.

Despite these challenges, the potential use cases for blockchain technology are vast and varied. Cryptocurrency is one of the most popular use cases for blockchain technology. Bitcoin, the first and most well-known cryptocurrency, uses blockchain to record transactions. However, blockchain technology has potential use cases beyond just cryptocurrency. Supply chain management, voting systems, and smart contracts are some other potential use cases for blockchain technology.

Benefits of blockchain technology:

  • Decentralization: Blockchain technology is decentralized, meaning it is not controlled by any single entity. This eliminates the need for intermediaries in transactions, reducing costs and increasing speed.
  • Transparency: The ledger is publicly accessible, creating a transparent and tamper-proof record of transactions.
  • Security: The use of consensus mechanisms and cryptography make blockchain technology highly secure.
  • Immutability: Once a block is added to the chain, it cannot be altered or deleted, providing a tamper-proof way to store data.

Pros of blockchain technology:

  • Increased efficiency: Transactions can be conducted directly between parties, reducing the need for intermediaries and increasing speed.
  • Increased trust: The transparency and immutability of the ledger can increase trust in the system.
  • Reduced costs: The elimination of intermediaries can reduce costs associated with transactions.

Cons of blockchain technology:

  • Scalability: The current scalability of blockchain technology is limited, with a maximum number of transactions that can be processed per second.
  • Complexity: The technology is complex, and not all individuals and businesses may have the resources or knowledge to implement it.
  • Regulation: The regulatory environment for blockchain technology is still evolving, and there may be uncertainty about how it will be regulated in the future.

Current use cases of blockchain technology:

  • Cryptocurrency: Bitcoin, the first and most well-known cryptocurrency, uses blockchain technology to record transactions.
  • Supply chain management: Blockchain technology can be used to create a transparent and tamper-proof record of the journey of a product from the manufacturer to the consumer.
  • Voting systems: Blockchain technology can be used to conduct transparent and tamper-proof elections.
  • Smart contracts: Blockchain technology can be used to create and execute smart contracts, which are self-executing contracts with the terms of the agreement between buyer and seller being directly written into lines of code.

Conclusion:

Blockchain technology is a powerful tool that has the potential to revolutionize the way we conduct transactions and store data. Its decentralized nature, transparency, and immutability can increase efficiency, reduce costs, and increase trust in the system. The technology is still in the early stages of development, and there are challenges to be considered, such as scalability, complexity, and regulation. However, the potential use cases for blockchain technology are vast and varied, and it will be interesting to see how it develops in the future.

Future of blockchain technology:

Blockchain technology is still in its early stages of development, and we can expect to see more experimentation and innovation in the future. The scalability issue will be addressed as new solutions like sharding, off-chain and layer 2 scaling solutions being developed and implemented. As the technology matures, we can expect to see more widespread adoption in various industries. It is likely that blockchain technology will become an integral part of many businesses and organizations in the future, and it will be exciting to see how it continues to develop and evolve.

Unleashing the Future: Exploring the Latest Tech Innovations
Unleashing the Future: Exploring the Latest Tech Innovations
Ashik EqbalJuly 18, 2023
IOT
From AI's rise to mind-bending AR/VR experiences, explore IoT's impact and the power of 5G. Witness how green tech is shaping a sustainable future. Unleash the latest tech innovations now!

Introduction:

Welcome to our tech blog, where we delve into the ever-evolving landscape of technology and its profound impact on our lives. In this edition, we embark on a thrilling journey to uncover the latest and most groundbreaking tech innovations that are shaping the world around us. From colossal strides in artificial intelligence to mind-boggling advancements in virtual reality, prepare to be awestruck by what the future holds.

1.The Rise of Artificial Intelligence:

Artificial Intelligence (AI) dominates the tech sphere, revolutionizing numerous industries. Explore the latest breakthroughs in AI, such as deep learning algorithms that exponentially enhance machine learning capabilities, neural networks that emulate the complexity of the human brain, and autonomous systems that are radically transforming transportation and robotics. Witness how AI is reshaping healthcare, finance, and other sectors, paving the way for an extraordinarily intelligent and efficient future.

2. Augmented Reality and Virtual Reality:

Step into a realm where the boundaries between the physical and digital worlds dissolve. Augmented Reality (AR) and Virtual Reality (VR) technologies create immersive experiences like never before. Discover how AR is enhancing retail, education, and entertainment, while VR is revolutionizing gaming, training, and therapy. Unveil the mind-bending potential of these technologies and their profound impact on our perception of reality.

3. Internet of Things (IoT) in Everyday Life:

The Internet of Things (IoT) has transformed the way we interact with our surroundings. Learn about the latest IoT devices and applications that are making our lives smarter and more connected. Explore the seamless integration of IoT in homes, healthcare systems, transportation, and cities, and grasp the immense benefits and challenges it presents in terms of convenience, efficiency, and data security.

4. The Power of 5G:

As the world embraces the fifth generation of wireless technology (5G), get ready to witness lightning-fast connectivity and an unparalleled wave of possibilities. Discover how 5G networks are revolutionizing industries such as autonomous vehicles, smart cities, and telemedicine. Explore the boundless potential of this technology to propel us into an era of enhanced communication, productivity, and innovation.

5. Sustainability and Green Tech:

The need for sustainable solutions is more pressing than ever. Delve into the world of green tech, where innovative solutions are addressing environmental challenges head-on. Learn about awe-inspiring advancements in renewable energy, eco-friendly materials, smart grid systems, and sustainable transportation. Explore how technology is playing a pivotal role in building a greener and more sustainable future for generations to come.

Conclusion:

The world of technology is evolving at an astonishing pace, bringing forth a myriad of possibilities and opportunities. In this blog, we've barely scratched the surface of the latest tech innovations that are reshaping our lives. From the monumental rise of AI and the mind-altering experiences of AR and VR to the pervasive influence of IoT and the game-changing power of 5G, the future is being unleashed before our very eyes. As we embrace these monumental advancements, let us remain infinitely curious, agile, and mindful of the impact they have on society, ensuring that we steer technology towards a brighter, more inclusive, and awe-inspiring future.

Loading...

Featured Projects

A website for my high school

0 stars
12 commits
Not specified

No description available.

0 stars
28 commits
Not specified
GitHub

My personal portfolio and blog

1 stars
88 commits
Not specified

Tech Stack

JS

JS

Node JS

Node JS

CSS

CSS

HTML

HTML

Docker

Docker

Nest Js

Nest Js

React

React

SCSS

SCSS

Get in Touch