DEV Community

Sam Hartley
Sam Hartley

Posted on

How I Built a Self-Funding AI Lab: From Hobby to Side Income in 6 Months

How I Built a Self-Funding AI Lab: From Hobby to Side Income in 6 Months

Six months ago I had a Mac Mini and a vague idea that local AI was cool.

Today I run three machines, six GPUs, a Telegram bot that manages my infrastructure, and a Fiverr gig that uses my own hardware to deliver AI services. The lab generates enough to cover its own electricity, hardware upgrades, and a decent chunk of my rent.

Here's how that happened — and the exact architecture that makes it work.

Phase 1: The Hobby (Month 0–2)

It started the way these things usually start: I bought a Mac Mini M4 and installed Ollama because I was tired of ChatGPT's rate limits.

The first month was pure experimentation. I ran Qwen, I ran Llama, I ran whatever fit in 16GB of unified RAM. I built a Telegram bot to query models from my phone. I wrote a Garmin watch face that fetched stock prices via a local API wrapper.

Cost so far: $0 additional (already owned the Mac Mini).
Revenue: $0.
Fun level: High.

The Mac Mini handled light tasks fine, but anything serious — a 30B coder model, image generation, batch embedding jobs — was either impossible or painfully slow.

So I bought a used RTX 3060 12GB off eBay for $150 and stuck it in an old Windows PC.

Cost: $150 one-time.
Capability unlocked: Real local inference, vision models, proper code generation.

Phase 2: The Realization (Month 2–3)

Here's the thing about adding a GPU: it's idle ~80% of the time.

I'd run a coding session, the fans would spin up, I'd get my answer in 3 seconds instead of 30, and then... nothing. The GPU just sat there, drawing power, doing nothing.

I tried mining. The margins in 2026 are a joke. I tried folding@home. Noble, but doesn't pay.

Then I found Vast.ai.

The concept is simple: you install a daemon on your machine, set a price per hour, and people rent your GPU to run their AI workloads. You get paid per second of actual use. No crypto, no pools, no complexity.

I set my RTX 3060 at $0.15/hour, mostly as an experiment. It got rented the first night.

Week 1 earnings: ~$11.
Not quit-your-job money, but not zero either.

The bigger realization: this wasn't just about renting a GPU. I now had infrastructure — machines, models, APIs — that could do work for other people.

Phase 3: The Services (Month 3–5)

GPU rental income is nice but lumpy. Day 3: $0. Day 6: $3.30. You can't budget around it.

What you can budget around: selling services that use the same infrastructure.

I opened a Fiverr gig offering custom Telegram bot development. Not generic "I'll build you a bot" — specifically AI-powered bots that run on local models. Customer service bots. Content schedulers. Alert systems. The pitch: "Your bot runs on my hardware, not OpenAI's API. No monthly fees, no token counting, no data leaving my servers."

Why this worked:

  • I already had the infrastructure (Ollama, Telegram API wrapper, cron jobs)
  • I had working examples from my own projects
  • "No API costs" is a genuine differentiator in 2026

First client: a small e-commerce business in Germany wanted an FAQ bot that could answer product questions in German and English. I fine-tuned a local Qwen model on their product docs, wrapped it in a Telegram bot, and delivered it in a weekend.

Revenue per gig: $50–300 depending on complexity.
Material cost: $0 (runs on hardware I already have).

Phase 4: The System (Month 5–6)

At this point I had multiple income streams running on the same machines. The problem: managing them.

  • GPU rental means the Windows PC is sometimes unavailable
  • Fiverr gigs need reliable uptime for demos
  • My own projects (watch face, personal RAG) need to keep running
  • I need to know when something breaks, without staring at logs

So I built what I now call my "AI operations center" — a Mac Mini that does nothing but orchestrate:

Mac Mini M4 (always on, always available)
├── Telegram Bot (Celebi)
│   ├── Status checks (all machines, all services)
│   ├── Income tracking (GPU rental + Fiverr)
│   └── Alerts when anything breaks
├── Model Router
│   ├── Quick queries → Mac Mini (Qwen 4B)
│   ├── Code/vision → Windows PC (when available)
│   └── Fallback → Ubuntu CPU box (when GPU is rented)
├── Cron Jobs
│   ├── Health checks every 15 min
│   ├── Watch face data updates
│   └── Market data fetchers
└── Notification Layer
    └── All alerts → my phone via Telegram
Enter fullscreen mode Exit fullscreen mode

The router is the key piece. When the Windows PC is rented out on Vast.ai, it automatically falls back to the Ubuntu box or the Mac Mini. When it's free, heavy tasks get routed there for speed.

I never have to think about which machine to use. I just ask a question, the system figures it out.

The Numbers (Month 6)

Here's what the lab looks like financially:

Income Source Monthly Range Notes
GPU Rental (1× RTX 3060) $50–130 Variable utilization
Fiverr (AI bots, RAG setup) $100–400 Depends on active gigs
Total Monthly $150–530
Expense Monthly Cost
Electricity (3 machines, 24/7) ~$35
Internet (already had) $0
Vast.ai fees ~$5–15
Total Expenses ~$40–50
Hardware One-time Cost
Mac Mini M4 Already owned
RTX 3060 12GB (used) $150
Ubuntu box (old laptop) Already owned
Total Hardware $150

Net monthly: $100–480 after expenses.
Hardware payback: already achieved in month 3.

Is this life-changing money? No. Could I scale it? Absolutely — and I'm planning to.

What I'm Adding Next

The math gets interesting with scale:

GPU Rental Rate Monthly (50% util)
RTX 3060 (current) $0.15/h ~$54
RTX 3080 10GB (in storage) $0.20/h ~$72
2× RTX 3070 8GB (in storage) $0.16/h ~$115
Total if all deployed ~$240/month rental alone

At 70% utilization: ~$340/month in rental income before any Fiverr work.

The bottleneck isn't demand — it's physical setup. I need to build a proper rig, manage thermals, and handle the cabling. But the software side is already solved.

The Architecture That Makes This Work

If you want to build something similar, here are the components:

1. Local LLM Stack (Ollama)

  • Ollama for model serving
  • Mix of small (4B) and large (30B) models
  • Run on whatever hardware you have

2. Model Router

  • Simple Python function that picks the right machine/model for each task
  • Fallback chain: GPU → CPU → cloud (only for emergencies)
  • I open-sourced my basic version here

3. Telegram Bot (Notification Layer)

  • Lightweight bot using python-telegram-bot
  • Receives alerts from all services
  • Simple commands for status checks (/status, /income, /health)
  • I wrote about this pattern here

4. GPU Rental (Vast.ai)

  • Install daemon, set price, wait
  • Use earnings to fund the next GPU
  • Treat it as a dividend on hardware that would otherwise be idle

5. Service Layer (Fiverr)

  • Use your own infrastructure as a selling point
  • "Runs on my hardware" = no API costs for clients
  • Document everything — clients love seeing the architecture

Should You Do This?

Yes, if:

  • You already have a GPU sitting around
  • You enjoy building and automating systems
  • You can handle variable income (some months are $150, some are $500)
  • You want to learn by doing, not by reading

No, if:

  • You need predictable income immediately
  • You don't want to maintain hardware
  • You're looking for a "set and forget" passive income stream (this isn't that — it needs attention)

The Honest Truth

This isn't a get-rich-quick scheme. It's a get-some-income-while-learning scheme. The real value isn't the money — it's that I now understand:

  • How to run production LLM inference
  • How to route workloads across heterogeneous hardware
  • How to build reliable automation that runs for months without intervention
  • How to sell technical services without being a "consultant"

The money is nice. The skills are better.


I write about running AI locally, automation side projects, and occasionally making money from hardware that would otherwise just sit there. If any of this is useful, feel free to follow or reach out on Telegram.

ai #sideproject #passiveincome #selfhosted #ollama

Top comments (0)