Configuracion inicial completa del entorno personal

Modulos de restauracion:
- bootstrap: instala yq, age y dependencias base (curl, wget, git, nano, gpg)
- ssh: descifra e instala claves SSH desde secrets/sshKeys.tar.gz.age
- registry: aplica paquetes apt/snap/flatpak, dotfiles, servicios y configs Docker
- thunderbird: instala Thunderbird snap y restaura perfil desde ZIP
- claudeCode: configura repositorio apt de Anthropic e instala claude-code
- easyEffects: restaura configuracion y presets desde ZIP
- wireplumber: restaura dispositivo Bluetooth por defecto y perfiles de audio
- cups: restaura impresoras y drivers PPD desde ZIP

Scripts de captura (correr antes de push):
- scripts/encryptSsh.sh: cifra ~/.ssh con age
- scripts/thunderbird/capture.sh: captura perfil de Thunderbird snap
- scripts/easyEffects/capture.sh: captura config de EasyEffects flatpak
- scripts/wireplumber/capture.sh: captura estado de WirePlumber
- scripts/cups/capture.sh: captura impresoras CUPS y PPDs (requiere sudo)

Registro de aplicaciones (config/registry.yaml):
- 9 paquetes apt, 1 snap (dbeaver-ce), 22 flatpaks incluyendo VSCodium,
  Bitwarden, Inkscape, LibreOffice, OBS Studio, Nextcloud Desktop, entre otros

Secretos incluidos:
- secrets/sshKeys.tar.gz.age: claves SSH cifradas con age
- secrets/thunderbirdProfile.zip: perfil de Thunderbird sin emails ni cache
- secrets/easyEffectsConfig.zip: ajustes y presets de salida de audio
- secrets/wireplumberState.zip: estado de audio incluyendo auriculares Bluetooth
- secrets/cupsConfig.zip: 5 impresoras configuradas con sus drivers

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-20 18:16:40 -03:00
parent ff401597be
commit bd78fd9fbe
34 changed files with 2348 additions and 2 deletions
+28
View File
@@ -0,0 +1,28 @@
#!/usr/bin/env bash
readonly clrRed='\033[0;31m'
readonly clrGreen='\033[0;32m'
readonly clrYellow='\033[1;33m'
readonly clrBlue='\033[0;34m'
readonly clrCyan='\033[0;36m'
readonly clrBold='\033[1m'
readonly clrReset='\033[0m'
stpLogFile="${stpLogFile:-/tmp/stp-$(date +%Y%m%d-%H%M%S).log}"
export stpLogFile
log::emit() {
local level="$1" color="$2" symbol="$3"
shift 3
local message="$*"
local timestamp
timestamp="$(date '+%H:%M:%S')"
printf "${color}${symbol}${clrReset} %s\n" "$message"
printf "[%s] [%-5s] %s\n" "$timestamp" "$level" "$message" >> "$stpLogFile"
}
log::step() { log::emit "STEP" "${clrBold}${clrBlue}" "==>" "$@"; }
log::info() { log::emit "INFO" "${clrCyan}" " -> " "$@"; }
log::ok() { log::emit "OK" "${clrGreen}" " ✓ " "$@"; }
log::warn() { log::emit "WARN" "${clrYellow}" " ! " "$@"; }
log::error() { log::emit "ERROR" "${clrRed}" " ✗ " "$@"; }