🖥️ FLV homelab

Table of Contents

Homelab Overview

yes, but why?

A personal cloud homelab offers several advantages, making it an appealing choice for tech enthusiasts and privacy-conscious users. First, it provides full control over your data, ensuring privacy and security without relying on third-party services. You can customize the setup to suit your needs, whether it's for file storage, media streaming, or hosting applications. It also allows for offline access and backup, ensuring you are never dependent on an external service's uptime. Additionally, managing your own cloud fosters learning in areas like networking, server management, and automation, which can be both educational and empowering. Tecnology indipendence need to be implemented starting from my home.

historic

  • 2007 Toshiba tecra laptop (first headless machine=broken LCD) 512Mb ram
  • 2013 good old IBM thinkpad Intel centrino 2 cores, 1Gb ram, good memory of blue <ENTER> key. First homelab server
  • 2016 second homelab server Pine64 2Gb ram ARM era has started
  • 2019 third homelab server RaspberryPI IV 8Gb ram storage with 500Gb 3.5" Barracuda
  • 2021 water discovered: hobbyist single board is not suitable for server workload
  • 2022 Welcome Zimaboard + Proxmox

track your assets

This document provides a comprehensive breakdown of the homelab network, including hosts, tasks, and documentation.

A simple org-mode document with a simple custom CSS is my personal tool for homelab resource mapping.

host table

sequence.png

Zimaserver

description

Proxmox primary node, host several LXC container and Virtual Machines, provide large storage via lvm.

resources

CPU(s) Kernel Version Type
4 x Intel(R) Celeron(R) CPU N3450 @ 1.10GHz Linux 6.8.12-2-pve (2024-09-05T10:03Z) bare metal
Memory Storage
8 Gb 2 Tb

network

external internal
vmbr0 vmbr1
192.168.1.222 192.168.5.1

services

  • Proxmox Virtual Environment
  • Nut UPS monitor

Pbs

description

fanless mini appliance dedicated to Proxmox backup service may run other small services

resources

CPU(s) Kernel Version Type
2 x Intel(R) Core(TM) i3-4020Y CPU @ 1.50GHz Linux 6.8.4-2 (2024-04-10T17:36Z) bare metal
Memory Storage
8 Gb 916 Gb

network

internal wifi hotspot
br0 wlp3s0
192.168.5.117 the promised lan

services

  • backup storage bay mypbs hosts all zimaserver scheduled backups
  • NFS export for other than Proxmox backups

obsd

description

This machine replicate flvbox.org OpenBSD 7.6 environment. Every release cycle is tested here before flvbox.org sysupgrade.

resources

CPU(s) Kernel Version Type
1 x Intel(R) Celeron(R) CPU N3450 @ 1.10GHz (virtual) Linux 6.8.4-2 (2024-04-10T17:36Z) Virtual Machine
Memory Storage
256 Mb 32 Gb

network

internal
em0
192.168.5.118

services

  • OpenHTTPD with relayd and uwsgid

Django

description

My personal multi-service LXC container, some Django|Flask|Streamlit|Node personal apps

resources

CPU(s) Kernel Version Type
2 x Intel(R) Celeron(R) CPU N3450 @ 1.10GHz (virtual) Linux 6.8.12-2-pve (2024-09-05T10:03Z) LXC container
Memory Storage
2,2 Gb 128 Gb

network

internal external OpenVpn Wireguard
eth0@if32 eth1@if36 tun0 wg0
192.168.5.102 192.168.1.223 10.12.0.2 10.0.0.4

services

  • Django main project in /var/www/piserver-production managed by apache, this is the main portal
  • Self signed certificate for https
  • Postfix smtp only local
  • Code-server: listen on port 8080
  • Webcam: port 8001 via dedicated Flask app in /var/www/dj_video
  • RedisCommander: port 8081
  • NFS server exports under /srv/nfs4/
  • zimaserver UPS control via /home/flavio/ups-monitor/ups-monitor.py
  • FlvCry: Flask webapp for crypto-ops, port 8088 unit: flvcry.service
  • FlvCloud: streamlit portal, port 8501 unit: flvcloud.service, this is the secondary portal
  • JupyterLab: port 8888 unit: jupyter-lab.service
  • FlvGeoLoc: Flask webapp for geolocate me, port 5000 unit: flvgeoloc.service
  • MySQL MariaDB Distrib 10.5.26-MariaDB

dhcp

description

DHCP server with PXE boot environment provided by dnsmasqd, serve all 192.168.5.0/24 subnet via ZyXEL GS1100-16 ethernet switch.

Important services reiceve per host DHCP configuration (static IP, PXE boot server/options)

resources

CPU(s) Kernel Version Type
1 x Intel(R) Celeron(R) CPU N3450 @ 1.10GHz (virtual) Linux 6.8.12-2-pve (2024-09-05T10:03Z) LXC container
Memory Storage
256 Mb 32 Gb

network

internal
eth0@if6
192.168.5.2

services

  • DHCP and PXE boot environment via dnsmasqd
  • HTTP via Nginx http://dhcp.my.zimaserver/tftp/ tftp resources dir with autoindex
  • FLV rustic ADblocker populate dinamically /etc/alternate_hosts that's redirect all scams to 0.0.0.0
  • DNS name resolution service take in account /etc/alternate_hosts

gitea

description

Private, Fast, Reliable DevOps Platform. Brings teams and developers high-efficiency but easy operations from planning to production.

resources

CPU(s) Kernel Version Type
1 x Intel(R) Celeron(R) CPU N3450 @ 1.10GHz (virtual) Linux 6.8.12-2-pve (2024-09-05T10:03Z) LXC container
Memory Storage
300 Mb 100 Gb

network

external internal wireguard
eth0 eth1 wg0
192.168.1.14 192.168.5.139 10.0.0.6

services

  • Gitea at https://gitea.my.zimaserver/
  • my repositories hosts all homelab services

uptimekuma

description

Uptime Kuma is an easy-to-use self-hosted monitoring tool.

resources

CPU(s) Kernel Version Type
1 x Intel(R) Celeron(R) CPU N3450 @ 1.10GHz (virtual) Linux 6.8.12-2-pve (2024-09-05T10:03Z) LXC container
Memory Storage
256 Mb 4 Gb

network

internal
eth0@if16
192.168.5.3

services

  • Uptime Kuma monitoring dashboard at http://uptimekuma.my.zimaserver:3001

redis

description

Redis (Remote Dictionary Server) is a source-available, in-memory storage, used as a distributed, in-memory key–value database, cache and message broker, with optional durability.

resources

CPU(s) Kernel Version Type
1 x Intel(R) Celeron(R) CPU N3450 @ 1.10GHz (virtual) Linux 6.8.12-2-pve (2024-09-05T10:03Z) LXC container
Memory Storage
1,25 Gb 4 Gb

network

internal OpenVpn Wireguard
eth0@if7 tun0 wg0
192.168.5.134 10.12.0.25 10.0.0.5

services

  • Redis listen on internal and vpn
    • [X] migrated to Valkey

whoogle

description

Get Google search results, but without any ads, JavaScript, AMP links, cookies, or IP address tracking.

resources

CPU(s) Kernel Version Type
1 x Intel(R) Celeron(R) CPU N3450 @ 1.10GHz (virtual) Linux 6.8.12-2-pve (2024-09-05T10:03Z) LXC container
Memory Storage
256 Mb 2 Gb

network

internal OpenVpn
eth0@if18 tun0
192.168.5.123 10.12.0.23

services

  • Whoogle Search listen on internal and vpn, port 5000

trilium

description

Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases.

resources

CPU(s) Kernel Version Type
1 x Intel(R) Celeron(R) CPU N3450 @ 1.10GHz (virtual) Linux 6.8.12-2-pve (2024-09-05T10:03Z) LXC container
Memory Storage
256 Mb 4 Gb

network

internal
eth0@if17
192.168.5.145

services

  • Trilium listen on internal , port 8080, http://trilium.my.zimaserver:8080

blog

description

Personal blog

  • BE: Django application that provides a RESTful API for managing blog posts. The API allows clients to list, create, retrieve, update, and delete posts. The application is built using Django and Django Rest Framework (DRF).
  • FE: React front-end, custom CSS in order to avoid bootstrap or similar frameworks.

resources

CPU(s) Kernel Version Type
1 x Intel(R) Celeron(R) CPU N3450 @ 1.10GHz (virtual) Linux 6.8.12-2-pve (2024-09-05T10:03Z) LXC container
Memory Storage
900 Mb 8 Gb

network

internal OpenVpn
eth0@if31 tun0
192.168.5.140 10.12.0.27

services

  • Django backend listen on internal , port 8000, http://blog.my.zimaserver:8000
  • React frontend listen on internal and vpn, port 80, http://blog.my.zimaserver

lfserver

description

lf aka father personal cloud space, data vault, app server.

resources

CPU(s) Kernel Version Type
1 x Intel(R) Celeron(R) CPU N3450 @ 1.10GHz (virtual) Linux 6.8.12-2-pve (2024-09-05T10:03Z) LXC container
Memory Storage
256 Mb 120 Gb

network

internal OpenVpn
eth0@if27 tun0
192.168.5.110 10.12.0.18

services

  • VPN gateway from internal network set default route to lfserver allow traffic with OpenVPN vpn (layer 2)
  • OpenSSH listen on internal and vpn
  • BibliotecaCasalinga tiny Django app, port 8000, listen on internal and vpn

flvbox.org

Date: 2024-10-07

Author: Flavio Ferretti

Created: 2024-10-29 Tue 15:36

Validate