nimory: My Internet at Home

(nimory)[http://home.nihars.com] is a single machine running everything I need β€” files, photos, notes, sync, and local AI. No subscriptions. No third-party dependency for the things that matter.

This is a write-up of how it's built and how it works.


Hardware πŸ–₯️

A Dell OptiPlex 7060. Small form factor, low power, silent enough to ignore.

Storage is partitioned with LVM:

nvme0n1
β”œβ”€β”€ nvme0n1p1   512M   /boot/efi
β”œβ”€β”€ nvme0n1p2   488M   /boot
└── nvme0n1p3   1.8T   LVM
    β”œβ”€β”€ nimory--vg-root    β†’  /
    └── nimory--vg-swap_1  β†’  swap

It runs continuously with minimal intervention and low power usage.


Access Model 🌐

Internet (Cloudflare Tunnel)

No ports are exposed on the router. nimory establishes an outbound encrypted tunnel.

Browser β†’ Cloudflare DNS β†’ Cloudflare Tunnel β†’ cloudflared β†’ Caddy β†’ App

Admin (Tailscale)

SSH is private via WireGuard mesh:

bash tailscale ssh nimory

Local LAN

AdGuard resolves local domains:

Device β†’ AdGuard DNS β†’ Caddy β†’ App

Access Summary


Reverse Proxy 🧭

All traffic passes through a single entry point: Caddy

Security headers:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Referrer-Policy: strict-origin-when-cross-origin

Public Domains

LAN Domains


Containers πŸ“¦

Each service runs in isolation and communicates over a shared internal network.

Edge + Networking

Infrastructure

Files + Sync

Photos (Immich)

AI Stack (Nimos)

Everything runs locally. No external API calls.

Apps


Storage πŸ’Ύ

All persistent data lives on host:

/home/datar/
β”œβ”€β”€ data/
β”‚   β”œβ”€β”€ notes/
β”‚   β”œβ”€β”€ backups/
β”‚   └── workspace/
└── docker/

Automation βš™οΈ

Two cron jobs manage the system:

30 2 * * * flock -n /tmp/notesctl.lock timeout 60m  ./notesctl
30 3 * * * flock -n /tmp/nimoryd.lock  timeout 180m ./nimoryd

notesctl

nimoryd


Security Model πŸ”

Attack surface is intentionally minimal.


Not Done Yet 🚧


nimory runs quietly and stays out of the way.

It’s not complex for the sake of it. Just controlled, predictable, and entirely mine.

# Last updated on .