Ftz4OS es un sistema NixOS declarativo y modular, diseñado para infraestructura reproducible, desarrollo de sistemas distribuidos y entornos de ingeniería avanzados.
Basado originalmente en AlfheimOS, ahora completamente desacoplado, documentado y extendido con soporte para DB internals, clústeres y toolchains profesionales.
- ✨ Composición declarativa mediante Flakes
- 🧠 Entornos de desarrollo para:
- FoundationDB, ScyllaDB, PostgreSQL
- Java (OpenJDK17, GraalVM, Maven, Quarkus)
- Go, Bazel, Docker, K8s, K3s
- 🖥️ Hyprland + Stylix + pywal + swww
- 🧩 Modularización por perfiles (
desktop
,laptop
,work
) - 🔐 Secrets con
sops-nix
- 🛠️ Custom overlays y paquetes locales
.
├── flake.nix # Entrada principal declarativa
├── settings.nix # Variables como `username`, `hostname`, etc.
├── profiles/ # Perfiles por dispositivo (laptop, work, etc.)
│ └── laptop/
│ ├── configuration.nix # Configuración del sistema
│ └── home.nix # Configuración del usuario
├── system/ # Módulos del sistema (apps, hardware, wm, etc.)
├── user/ # Configuración del usuario: shells, apps, editors
├── shells/ # DevShells por stack
├── themes/ # Stylix + pywal + fondos
├── overlays/ # Extensiones del árbol de paquetes
└── pkgs/ # Paquetes locales y parches
Se asume que ya instalaste NixOS (23.11 o superior) en modo UEFI.
git clone https://github.com/tuusuario/Ftz4OS.git ~/.dotfiles
cd ~/.dotfiles
Genera la configuración de hardware (solo una vez por máquina):
sudo nixos-generate-config --show-hardware-config > profiles/laptop/hardware-configuration.nix
Edita settings.nix:
{
hostname = "ftz-laptop";
username = "fernando";
system = "x86_64-linux";
profile = "laptop";
shell = "zsh";
...
}
Construye el sistema:
sudo nixos-rebuild switch --flake .#ftz-laptop
Configuración del usuario (Home Manager)
home-manager switch --flake .#fernando
DevShells
nix develop .#db-internals
Incluye toolchain para:
- FoundationDB
- ScyllaDB
- Quarkus (Java 17 + Maven + GraalVM)
- Bazel
- Go
- Docker, Helm, kubectl, k3s, k9s
Inspirado por AlfheimOS, ahora desacoplado y extendido con diseño y objetivos propios.