LabPortal: My Self-Hosted Modular Homelab Dashboard

Lab Portal

Hey everyone! ๐Ÿ‘‹

Over the past few weeks, Iโ€™ve been cooking up something in my homelab that started as a “cool idea” and is now a full-blown system I use daily:
Introducing ๐Ÿงฑ LabPortal โ€” my modular, real-time, self-hosted portal that ties everything together.

What started as a simple dashboard has evolved into a multi-feature control hub with weather, uptime, server stats, project management, sticky notes, calendar, content creation tools, and live visitor analytics. Oh โ€” and itโ€™s all running from my AlmaLinux-powered homelab ๐Ÿ’ช.

Lab Portal
Lab Portal
Lab Portal
Lab Portal

๐Ÿ› ๏ธ Tech Stack Used

Hereโ€™s a full breakdown of the tools, languages, and stacks powering LabPortal:

โš™๏ธ Backend

  • Python + Flask โ€“ Lightweight REST APIs (system info, calendar, uptime)
  • PHP โ€“ Used for AWStats log parsing and serving live visitor counts
  • Shell scripts โ€“ Basic system operations & monitoring tasks
  • Systemd โ€“ For running persistent background services

๐ŸŒ Frontend

  • TailwindCSS โ€“ Clean, responsive styling
  • Vanilla JavaScript โ€“ Dynamic features like weather, calendar, system data
  • Google Fonts (Emoji support) โ€“ To make it fun and friendly
  • Pure HTML5 + CSS3 โ€“ No bloat, just speed

๐Ÿ“ก APIs + Services

  • OpenWeather API โ€“ For the weather widget
  • AWStats โ€“ Parses unique visitors from raw logs
  • Flask CORS โ€“ To enable cross-origin access for frontend/backend sync

๐Ÿ’พ Storage & Infrastructure

  • Mounted network share โ€“ All content and media stored under /mnt/media/content
  • Cockpit โ€“ Server management
  • FirewallD โ€“ For securing APIs
  • Fail2Ban โ€“ Brute-force protection
  • Nginx/Apache โ€“ Hosting public and internal services

๐Ÿ“ Hosting

  • AlmaLinux 9 (bare metal)
  • Hosted on my own servers in my homelab rack
ProxMox Cluster
ProxMox Cluster

โšก Features So Far

Hereโ€™s what LabPortal does (so far):

  • โœ… Live System Stats: Uptime, load average, and datetime (auto-refreshing)
  • โœ… Weather Widget: Live weather, displayed in the top-right
  • โœ… Sticky Notes: Leave yourself reminders or in-progress notes
  • โœ… Project Dashboard: View active project titles with a clean UI
  • โœ… Dynamic Calendar:
    • Highlights the current day in green
    • Days you edit are marked in red
  • โœ… Live Visitor Stats:
    • Pulls from AWStats logs for both declinedstudios.com and utubemp3.net
    • Parsed in PHP and displayed live via a custom “Visitors” panel

๐Ÿง  Current Development: Content Creation System

The current big feature Iโ€™m working on is the Content Creation System. Here’s the vision:

  • ๐Ÿ“ Rich-text editor (WYSIWYG)
  • ๐Ÿ“ Upload media to /mnt/media/content
  • ๐Ÿ—“๏ธ Schedule posts (future support for multi-platform APIs)
  • ๐Ÿท๏ธ Tag and organize posts
  • ๐Ÿ”Œ API-ready backend for future Facebook, X/Twitter, YouTube Shorts, and Instagram integrations

Everything is being built in modular panels, so I can move, collapse, or re-order components as needed in future versions. My long-term plan is to have full drag-and-drop module support with persistent layout states.

๐Ÿงช Whatโ€™s Next?

  • ๐Ÿงฑ Drag-and-drop layout system for UI modules
  • ๐Ÿ“Š Basic analytics dashboard (engagement, post stats)
  • ๐Ÿค– AI-generated hashtags and captions (later, with OpenAI API)
  • ๐Ÿงญ Global search across notes, projects, and media
  • โ˜๏ธ Optional cloud backup for important configs

๐Ÿ’ฌ Final Thoughts

This isnโ€™t just a dashboard anymore โ€” itโ€™s the heart of my homelab. Itโ€™s fun to use, easy to build onto, and 100% mine. I can tweak it, break it, fix it, and learn something new every time.
Thatโ€™s the beauty of building your own tools.

If you’re into homelabs, dev, or web tech โ€” this is one of those projects worth investing time into. And stay tuned… I might open-source the core framework soon.

Cheers,