Self-directed technical projects exploring offline-first systems, self-hosting, and custom infrastructure.
A self-contained, offline-accessible intranet built on Raspberry Pi 4 for travel and off-grid use. Provides offline maps, knowledge bases, media library, note-taking, and astronomical data without internet connectivity.
LCARS-themed portal homepage showing all field station services
Building a portable knowledge and media server for places without reliable internet.
The Skydancer Field Station is a Raspberry Pi-based offline intranet designed for travel, camping, and off-grid scenarios. It runs multiple self-hosted services accessible via local WiFi, providing maps, books, movies, notes, and reference materials without requiring internet connectivity.
The system boots automatically, serves a custom LCARS-themed web portal as the entry point, and runs services like Kiwix (Wikipedia offline), Calibre Web (ebook library), Jellyfin (media server), Trilium Notes (personal wiki), and offline mapping for the US and Canada.
All services accessible without internet. Perfect for travel, remote locations, or network outages.
Any device on local WiFi can access the portal. Phones, tablets, laptops all work seamlessly.
Runs on Raspberry Pi 4, drawing minimal power. Can run on battery pack for extended periods.
Custom portal organizes all services. No memorizing ports or URLs.
Wikipedia, medical references, survival guides, technical documentation all available offline.
Detailed offline maps for entire US and Canada. No data charges, no signal needed.
Self-hosted applications providing offline knowledge, media, and tools.
Offline map viewer (zoomed in) - detailed street-level navigation
Full continental US coverage at zoom 14
System diagnostics dashboard: CPU temperature, memory, storage, network controls, Bluetooth management
A RAG-powered offline LLM assistant built from scratch for field reference queries.
The Skydancer Field Station includes a custom AI assistant called SPOCK (running on a dedicated 8GB Raspberry Pi) that provides intelligent responses to queries about survival, medical information, and reference materialsβall completely offline.
Qwen 2.5 0.5B running via Ollama. Optimized for Raspberry Pi CPU inference with ~3-4 minute response times.
ChromaDB storing 11,098 indexed document chunks with sentence-transformers embeddings (all-MiniLM-L6-v2).
Retrieval Augmented Generation: embeds questions, searches vector DB, retrieves relevant chunks, injects as context for LLM.
LCARS-styled web interface with streaming responses and source citations. Accessible from any device on local network.
Indexed documents: survival guides, medicinal plant references, pet emergency care, military medicine, prepper resources, field manuals.
Responds as Mr. Spock from Star Trek: logical, precise, references probability and Vulcan philosophy. Never says "I think"βsays "Logic dictates."
SPOCK processing query ("logic circuits engaged...")
Complete response with advice and source citations
Retrieval Augmented Generation was chosen over traditional fine-tuning because:
Optimized for Pi 4 CPU-only inference. Selected smallest viable model (0.5B parameters), reduced chunk size, tuned retrieval count to balance accuracy vs. speed.
Segmented long documents into semantically meaningful chunks (~500 tokens) with overlap to preserve context across boundaries.
Tested multiple sentence-transformer models. all-MiniLM-L6-v2 provided best balance of embedding quality and inference speed on Pi hardware.
Limited retrieved chunks to fit within Qwen's context window while leaving room for system prompt and response generation.
Why build an offline intranet in 2026?
Built retrieval augmented generation pipeline from scratch: document chunking, embedding generation, vector search, context injection, LLM inference.
ChromaDB setup, document indexing, similarity search optimization, embedding model selection and performance tuning.
Running inference on resource-constrained hardware, model selection for CPU-only environments, prompt engineering, context window management.
Managing services, networking, storage, user permissions, and systemd on Ubuntu Server.
Port management, reverse proxies, service isolation, resource constraints, auto-restart configurations.
Custom portal design, responsive layouts, Leaflet.js integration, LCARS theming with CSS, streaming chat interfaces.
Local DNS, static IPs, mDNS, WiFi access point configuration, port forwarding basics.
Running multiple services including LLM inference on limited hardware, storage management, memory constraints.
Creating intuitive interfaces for non-technical users, organizing complex information hierarchies.