Black Lives Matter. Please consider donating to the San Luis Obispo, CA Bail Fund or other bail funds so we can make the world a just and equitable place for all people of all colors.

Plebscale

Old PC's + Old SBC's = Plebian Internal Cloud

This project is an internal cloud that is scaled enough to meet the demands of a single pleb like me.

Goals of this project

  • Learn how to use industry-standard DevOps tools
  • Try to adhere to Infrastructure as Code (IaC)
  • Give these old devices an actual use

Technology Stack

End-User Services, planned and completed

NameStatusDeployed onDescription
OctoPrintDeployedBare Metal3D Printer sender with web UI
Firefly IIIDeployedk3sBudgeting App
Printer Image SnapperDeployedk3sPeriodically takes pictures of my 3D Printer and uploads them to the internet
DokuWiki, D&DDeployedDocker ComposeA wiki for worldbuilding my D&D campaign
Trilium NotesDeployedk3sPersonal wiki/note-taking for school and more
Apache SparkPlannedk3sBig Data processing engine
Jupyter NotebookPlannedk3sInteractive code notebooks
BookstackPlannedk3s“Internal” wiki for documenting this thing
ELabFTWPlannedk3sLab notes
NextCloudPlannedk3sPersonal cloud

Infrastructure Services

NameDescriptionDeployed on
ProxmoxAn open-source Type 1 Hypervisor OSBare metal
K3sA lightweight Kubernetes distribution that won’t eat up most of the resources on a Raspberry Pi or craptopVM
MySQL/MariaDBDatabaseLXC
PostgresDatabaseLXC
Docker ComposeMulti-container applications stack, useful for servers dedicated to a single purposeBare metal
NFSFile storageLXC

Hardware

Flexible Home Resources

These resources share a variety of workloads.

NameModelArchProcessorCoresRAM (GB)Role
crappertopfn-1Acer Aspire E1-510amd64Pentium N352044Proxmox: k3s, nfs
cracktopfn-2HP Pavilion x360 13amd64i5-2520M48Proxmox: k3s
thonkpadfn-3Thinkpad T420amd64i5-6200U48Proxmox: k3s, db, nfs
zerg-1fn-4Raspberry Pi 3B+armBCM2837B041k3s
zerg-2fn-4Raspberry Pi 3BarmBCM283741k3s
zerg-3fn-4Raspberry Pi 2B+armBCM283641k3s
zerg-4fn-4Orange Pi Onearmsun8iw7p140.5k3s
Total---------2823.5Wasting my Time

Here’s what it all looks like.

Raspberry Pis involved in the cluster. Hello from CyberCthulu

Turnkey Home Resources

These resources are dedicated to one purpose and one purpose only.

NameModelRole
octopiRaspberry Pi 2B+OctoPrint
BANANALenovo Legion Y530Personal Computer: development, work, and gaming

External Cloud Resources

Unfortunately, my internet connection is slow, so anything I want others to be able to use has to be hosted on an external cloud.

NameProviderPrice ($/mo)ArchProcessorCoresRAM (GB)Role
contaboContabo7.90amd64Xeon something48Docker Compose
oci-1Oracle0amd64Xeon something11Docker Compose
oci-2Oracle0amd64Xeon something11Docker Compose
Total---7.90------68Wasting my Time

Monitoring Services

NameTypeDescriptionDeployed on
Fluent-bitLogsReads logs from each node’s containersk3s, Docker Compose
FluentdLogsCentrally parses and processes logsk3s
LokiLogsStores and indexes logsk3s
PrometheusMetricsStores and indexes logsk3s
LokiVisualizationStores and indexes logsk3s
Look at this graaaaaaaph, every time I look it makes me laugh

Management Utilities

  • Ansible — Declaratively configuring servers
  • Terraform — Declaratively provisioning resources

Things I no longer use

  • ELK Stack (Elasticsearch, Logstash, Kibana, Filebeat, Metricbeat) — This eats up a ridiculous amount of resources. As in, 6 GB (after attempts to minimize it) just dedicated to logging on a 28 GB cluster.

  1. Zerg rushing is essentially the “quantity-over-quality” tactic in strategy games: you send many expendable units against the enemy to hopefully overwhelm them.
  2. :thinking: https://emoji.gg/assets/emoji/thonk.png
  3. This is my old laptop. I pulled it out of my backpack one day and saw the screen completely cracked for no good reason whatsoever.
  4. My mom complained about it being really slow, and even with Linux, it’s still slow. Thus, it’s worse than crap.

Comments

Markdown formatting is supported.