Skip to main content

DevHomeLab

My personal dev+home lab setup which allows me to do some personal as well as dev work with a breeze

  • Software Development
  • Devops
  • Data Analatics
The aero lesson builder app dragging an audio component into a screen about plant cells.

The Problem

To create a robust system which will allow me to experiment different software, services, design patterns also while keeping my devices connected, synced.

A set of light themed components for the aero design system

Solution

Created an infrastructure which keeps all my system connected and while keeping good security measures. Can run multiple services and resource intensive services as well. Keeps me connected across all devices. Light weight tech stack and also which is opensource

  • Secure - Infrastructure, Authentication, Authorization
  • Development environment accessible and working across all systems
  • Easy to deploy and test docker containerized or any other type of opensource services
  • Daily Life with Tech at ease with Sync, Backup, Media Server etc.

The homepage of the aero design system docs website linking to principles and components.

Tech Stack

  • Ubuntu: Free, open-source Linux operating system for desktops, servers, and cloud
  • Wireguard: Simple, fast, and modern VPN tunnel for connecting devices securely across the public internet
  • Terraform: Open-source infrastructure as code (IaC) tool for automating infrastructure provisioning across cloud providers, on-premises, and hybrid environments.
  • Traefik: Modern HTTP reverse proxy and load balancer for microservices deployments.
  • Nomad: Lightweight, flexible, and easy-to-use open-source workload orchestrator for deploying and managing containerized applications. (Alternative to Kubernetes)
  • Consul: Open-source service mesh solution for service discovery, load balancing, and secure service communication. (https://www.consul.io/)
  • Rustdesk: Open-source remote desktop software with a focus on simplicity, security, and performance.
  • Code Server : Open-source development environment that turns any machine with a browser into a powerful development workstation.
  • Metabase: Open-source business intelligence (BI) tool that helps users explore and analyze data from various data sources.
  • Netdata: Real-time performance monitoring tool for servers, applications, and infrastructure.
  • Minio: Open-source high-performance object storage server for cloud, on-premises, and hybrid deployments. (Alternative to S3)
  • Authelia: Open-source multi-factor authentication (MFA) server for securing web applications.
  • Nginx: Open-source, high-performance web server and reverse proxy.
  • Resilio Sync: P2P file synchronization software for keeping files in sync across multiple devices.
  • Uptime Kuma: Open-source monitoring tool for web applications and servers.
  • Jellyfin: Open-source media server for managing and streaming personal media libraries.

Functional Features

  • Any Device backup through Resilio sync
  • Media server with Jellyfin
  • Allows access to vs code over any machine, with desktop compute
  • Secured through wireguard vpn network and sites are multi factor authenticated
  • Allows deploying services and exposed to internet quickly thus allowing fast experimentation
  • Can check on Uptime of services
  • And lot many other features as I need

A drag and drop storyboard style editor for creating an adaptive lesson.

Non-Functional Features

  • The latency between devices is quite low and devices work over multiple nat layers
  • As all compute is accessible of desktop machine other devices like laptop can have extended period of battery life
  • Zero cost, as working with oracles free tier
  • Light weight yet extensible infrastructure with hashicorp stack

A drag and drop storyboard style editor for creating an adaptive lesson.

Project Outcome

Gives me piece of mind when syncing all my mobile data or any data across devices thus allowing me to easily switch between desktop, mobile, ipad or laptop. Gives me perspective of whole infrastructure. Allows me to iterate on different services and run different projects. Later doing other projects was really easy like gdelt project with ease after having experimented so much on this dev lab

A drag and drop storyboard style editor for creating an adaptive lesson.