34 lines
1.6 KiB
Markdown
34 lines
1.6 KiB
Markdown
---
|
|
title: Infrastructure principles
|
|
description: Core principles providing a secure, predictable, and minimal-dependency environment.
|
|
weight: 5
|
|
---
|
|
|
|
The Root framework is built on core principles designed to provide a secure, predictable, and minimal-dependency environment for independent self-hosted projects.
|
|
|
|
## Predictability through structure {#predictability}
|
|
|
|
Manual server configuration is prone to "configuration drift," where hosts intended to be identical slowly diverge. Root solves this by:
|
|
|
|
- **Git-centric truth**: Every configuration, from UFW rules to crontabs, is stored in the repository.
|
|
- **Idempotent automation**: [Actions](/root/glossary#action) are designed to be run multiple times without causing side effects, ensuring the host always matches the intended state.
|
|
|
|
## Minimal dependency footprint {#minimalism}
|
|
|
|
To ensure long-term maintainability, the framework avoids complex configuration management tools (like Ansible or Salt). Instead, it relies on:
|
|
|
|
- **Bash**: The universal language of Unix systems.
|
|
- **Docker**: For application isolation and environment consistency.
|
|
- **Standard Linux tools**: Leveraging `systemd`, `ufw`, and `cron` directly.
|
|
|
|
## Decentralization {#decentralization}
|
|
|
|
Each [Node](/root/glossary#node) is an island. While they share the [Commons](/root/glossary#commons) library, they do not depend on a central "master" server. This architecture ensures that a failure in one host does not impact unrelated services.
|
|
|
|
---
|
|
|
|
**See also:**
|
|
|
|
- [Concept: Security model](/root/concepts/security-model)
|
|
- [Concept: Tiered storage](/root/concepts/tiered-storage)
|