Back to Homelab
services

Localhake Automation

Identity

ServiceLocalhake Automation
Container Typelxc
VMID107
IP:Port10.1.10.107:3002

Host

HostJack

Network

VLANVLAN 10 — Production

Resources

vCPU4
RAM8192 MB
Disk32 GB
OSDebian 13 (trixie)
Domainlocalhake.hake.rodeo

Depends On

None

Depended On By

None

The localhake automation container is the backbone of the content workflow for localhake.com. It hosts the local PostgreSQL database, Node.js applications, and direct NAS media access that power the blog, review, video, and product management pipeline.

What It Does

This container runs the internal tooling that makes content creation efficient:

  • Local PostgreSQL 17 database (localhake_local) stores private workflow data — media file catalogs with automated descriptions, YouTube video drafts and transcripts, content ideas, and background job logs. This data never touches the public Supabase database.
  • Admin web app for managing the content pipeline — reviewing enriched media, editing YouTube metadata drafts, and publishing content.
  • Worker services handle background tasks like nightly YouTube stats sync, media enrichment, and Supabase upload orchestration.

Architecture

The container bridges two databases: the public Supabase instance (where published content, videos, images, and products live) and the local PostgreSQL database (where private workflow data lives). Soft foreign keys link records across databases — for example, a local youtube_local row references a Supabase videos row by UUID.

Three NAS bind mounts provide direct filesystem access to media:

  • /media/localhake — dedicated workspace for the automation system
  • /media/youtube — YouTube video files (raw footage, edited exports, thumbnails)
  • /media/photos — photo library shared with Immich

Why Local PostgreSQL?

Some data is inherently private and shouldn't live in a cloud database:

  • NAS file paths — internal storage layout
  • API responses — raw output used for media enrichment
  • YouTube drafts — metadata staging before pushing to YouTube
  • Processing state — which files have been enriched, uploaded, or failed

Keeping this local also means zero latency for batch operations that touch thousands of media files, and no cloud database costs for high-volume workflow data.

Service Details

PropertyValue
ContainerLXC (unprivileged)
VMID107
IP10.1.10.107
VLAN10 (Production)
OSDebian 13 (trixie)
Resources4 vCPU, 8 GB RAM, 32 GB disk (SSD)
DatabasePostgreSQL 17
RuntimeNode.js 22 LTS + pnpm
Domainlocalhake.hake.rodeo