Principles¶
The philosophy and design decisions that guide Famlab development.
Famlab exists to solve a specific problem: providing families with self-hosted digital infrastructure that doesn't become a second job to maintain. These principles shape every decision we make.
Core Philosophy¶
Maintenance is the Enemy¶
The biggest barrier to sustainable self-hosting isn't technical complexity—it's ongoing maintenance. Traditional homelab solutions require constant attention: security updates, configuration drift, service failures, and integration breakdowns.
Famlab treats maintenance as a design problem to be solved, not an inevitable burden to accept.
"Set and Forget" by Design¶
Every component in Famlab must support unattended operation:
- Automatic updates with rollback capability
- Self-healing services that recover from common failures
- Defensive defaults that prevent configuration drift
- Proactive monitoring with actionable alerts only
Design Principles¶
Simplicity Over Flexibility¶
While flexibility sounds appealing, it creates maintenance overhead. Famlab prioritizes:
- Curated service selection - A focused set of well-integrated services
- Opinionated defaults - Less configuration means fewer things to break
- Standard protocols - Stick to proven, interoperable standards
Why Not Maximum Flexibility?
Maximum flexibility means maximum complexity. Every configuration option is a potential failure point and a maintenance decision someone must make and maintain.
Files First, Databases Second¶
Data portability and backup simplicity drive our storage strategy:
- Filesystem-based storage where possible (easier backup, migration, debugging)
- SQLite for structured data when databases are necessary (single-file, zero-config)
- Avoid complex database systems unless absolutely required for functionality
Integration Without Patches¶
Services must work together seamlessly using standard interfaces:
- Standard authentication (LDAP, SAML, OIDC)
- Standard protocols (WebDAV, CalDAV, IMAP, etc.)
- API-based integration where available
- No custom patches to upstream software when possible
Operational Principles¶
One-Click Operations¶
Common administrative tasks should be simple:
- Status reporting - Single dashboard view of system health
- Problem resolution - Automated fixes for predictable issues
- Backup verification - One command to verify backup integrity
- Service management - Simple controls for common operations
Configuration Management¶
Focus on reliable, maintainable system configuration:
- Reliable updates - System updates that don't break existing functionality
- Consistent configuration - Standard approaches across all nodes
- Predictable behavior - System behaves the same way after updates
Architecture Decisions¶
Distributed Backup Network¶
Famlab is fundamentally a distributed backup system that creates mesh networks of family nodes replicating each other's backup data. This provides true disaster resilience by eliminating single points of failure across geographic locations.
Each node serves as both a local backup target (SMB share) and a replica store for other family nodes' data. The mesh topology ensures backup data remains available even when multiple nodes go offline.
For detailed rationale and implementation, see ADR-0002: Distributed Backup Network Architecture.
Backup and Recovery Strategy¶
The Problem with Current Solutions:
Families face a false choice with backup solutions:
- Local-only backups: Vulnerable to house fires, theft, disasters
- Cloud backups: Expensive subscriptions, vendor lock-in, privacy concerns
- Traditional homelab: Still single points of failure, complex disaster recovery
Famlab's Solution: Trust People, Not Corporations
Famlab shifts backup trust from faceless corporations to people who actually care about you. Instead of paying monthly fees to cloud providers, families create backup networks with trusted family members and friends.
3-2-1 Backup Without the Cloud:
- Copy 1: Original data stays on your devices (laptop, phone)
- Copy 2: Back up to your local Famlab node via SMB share
- Copy 3: Your local node automatically replicates to other family nodes
Network Effects: The more family members who join, the more resilient everyone's backups become. Two nodes survive each other's disasters, three nodes provide multiple redundancy, four or more create highly distributed backup networks.
Implementation Principles:
- Zero recurring costs - Everyone contributes storage, everyone benefits
- Geographic distribution - Family locations provide natural disaster isolation
- Incremental efficiency - rsync over SSH minimizes bandwidth usage
- Mesh resilience - Data remains available when multiple nodes go offline
- Standard tools - Built on btrfs, rsync, SSH for maximum reliability
- Family trust model - Leverage existing relationships instead of corporate contracts
MVP Trade-offs: The initial implementation uses full replication, which may cause storage problems with mismatched node capacities. This limitation is acceptable for validating the concept before implementing more sophisticated erasure coding solutions.
These principles guide but don't dictate implementation. They evolve as we learn from real-world usage and feedback from families running Famlab.