- Utilizar dialog_input_filepath para selección de archivos - Reordenar verificación de dialog para consistencia - Codificar secreto en base64 para mayor seguridad - Ajustar flujo lógico de la función principal 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
---|---|---|
bin | ||
inventory | ||
sops | ||
.gitignore | ||
CHANGELOG.md | ||
CLAUDE.md | ||
README.md |
MRDevs Tools
📋 Descripción
MRDevs Tools es un conjunto integral de herramientas para entornos de desarrollo que facilita la instalación, configuración y gestión de aplicaciones y servicios en múltiples sistemas operativos. Diseñado para aumentar la productividad de los desarrolladores, este toolkit automatiza tareas repetitivas y estandariza entornos de desarrollo.
🚀 Inicio Rápido
Requisitos Previos
- Git instalado en su sistema
- Permisos de administrador (para algunas operaciones)
- Conexión a Internet
Instalación
# Clonar el repositorio
cd $HOME
git clone https://git.rosero.one/mrosero/devs.git
# Instalar herramientas básicas
cd $HOME/devs
bin/bootstrap.sh
# Actualizar el entorno (opcional)
bin/update.sh
🔧 Funcionalidades Principales
Gestión del Entorno de Desarrollo
Comando | Descripción |
---|---|
bin/bootstrap.sh |
Instala herramientas básicas (incluyendo oathtool y zbar) y configura la gestión de contenedores |
bin/update.sh |
Actualiza el entorno de desarrollo y herramientas (incluyendo oathtool y zbar) |
bin/npm_install.sh |
Instala NodeJS y npm de forma interactiva |
bin/project_new.sh |
Crea un nuevo proyecto con estructura estandarizada según el tipo seleccionado |
Herramientas de IA y Productividad
Comando | Descripción |
---|---|
bin/cortana_install.sh |
Instala Claude Code CLI (Cortana) |
bin/cortana_install.sh -u |
Desinstala Claude Code CLI |
bin/cortana_token.sh |
Gestiona la encriptación del token de Cortana vía SOPS |
bin/cortana_alias.sh |
Configura alias de línea de comandos para Cortana |
bin/cortana_enable.sh |
Activa el uso de Cortana |
bin/cortana_disable.sh |
Desactiva temporalmente Cortana |
Herramientas para Editores de Código
Comando | Descripción |
---|---|
bin/helix_install.sh |
Instala Helix Editor con soporte multiplataforma (apt, snap, pacman, etc.) |
Herramientas para Control de Versiones
Comando | Descripción |
---|---|
bin/ghcli_install.sh |
Instala GitHub CLI (gh) con soporte multiplataforma |
bin/glcli_install.sh |
Instala GitLab CLI (glab) con múltiples métodos de instalación |
bin/fjcli_install.sh |
Instala Forgejo/Codeberg CLI vía Cargo |
bin/cversadm_token.sh |
Gestiona tokens de acceso para plataformas de control de versiones de forma segura |
bin/fj_login.sh |
Inicia/cierra sesión en Forgejo usando tokens encriptados con SOPS |
Seguridad y Acceso
Comando | Descripción |
---|---|
bin/qr_secret.sh |
Extrae secretos de imágenes QR y los guarda encriptados con SOPS |
bin/vpn_install.sh |
Instala el cliente Pritunl VPN |
bin/vpn_install.sh --update |
Actualiza el cliente VPN a la última versión |
bin/vpn_users.sh |
Gestiona usuarios de la VPN |
bin/gpg_init.sh |
Inicializa configuración GPG para cifrado seguro |
Gestión de Perfiles
Comando | Descripción |
---|---|
bin/profile_backup.sh |
Realiza copia de seguridad del perfil del desarrollador (GPG, SSH, Git, y carpeta .developer) |
bin/profile_restore.sh <archivo> |
Restaura perfil desde copia de seguridad |
Desarrollo Especializado
Comando | Descripción |
---|---|
bin/rate_update.py |
Actualiza tarifas por hora de diferentes tipos de programadores |
bin/cocomo.py |
Calcula costos de proyecto usando el modelo COCOMO |
📚 Guía de Usuario
Preparación del Entorno
El directorio $HOME/devs
sirve como área principal de desarrollo donde se gestionan diversos ambientes y proyectos. Por razones de seguridad, se prioriza podman sobre docker como gestor de contenedores.
Si desea usar Docker en lugar de Podman, debe instalarlo manualmente antes de ejecutar bootstrap.sh
.
Configuración de Claude Code (Cortana)
MRDevs Tools facilita el trabajo con herramientas de IA como Claude Code CLI:
# Instalación
bin/cortana_install.sh
# Gestión del token de forma segura
bin/cortana_token.sh
# Crear alias para facilitar su uso
bin/cortana_alias.sh
# Habilitar uso de Cortana
bin/cortana_enable.sh
# Deshabilitar temporalmente Cortana
bin/cortana_disable.sh
El token se encripta usando SOPS y se almacena de forma segura en $HOME/.cortana/cortana.sops.yaml
.
La configuración de proyectos se almacena en bin/config/projects.dat
, donde se encuentra el nombre de la carpeta de proyectos utilizada por el sistema.
Instalación de Helix Editor
Helix es un editor de código moderno similar a Vim/Neovim pero con una curva de aprendizaje más amigable:
# Instalación automatizada
bin/helix_install.sh
El script detecta automáticamente tu sistema operativo y utiliza el método de instalación más adecuado:
- En Ubuntu: Instala mediante snap para obtener la versión más reciente
- En Arch Linux: Utiliza pacman
- En Fedora: Instala a través de dnf
- En otros sistemas: Descarga e instala desde el tarball oficial
Herramientas para Control de Versiones
MRDevs Tools incluye scripts para simplificar la instalación de CLIs para diferentes plataformas Git:
GitHub CLI (gh)
# Instalación automatizada
bin/ghcli_install.sh
El script detecta tu sistema operativo y utiliza el método de instalación más adecuado:
- En Debian/Ubuntu: Añade el repositorio oficial de GitHub y usa apt
- En Red Hat/Fedora: Configura el repositorio rpm y usa dnf
- En Arch Linux: Instala desde los repositorios oficiales
- En macOS: Instala a través de Homebrew
Para aprender a usar GitHub CLI, consulta la documentación oficial de GitHub CLI.
GitLab CLI (glab)
# Instalación automatizada
bin/glcli_install.sh
El script prioriza los métodos de instalación en este orden:
- Paquetes oficiales del sistema si están disponibles
- Script oficial de instalación de GitLab
- Gestores de paquetes como snap o Homebrew
- Binarios precompilados o instalación vía Go
Para aprender a usar GitLab CLI, consulta la documentación oficial de GitLab CLI.
Forgejo/Codeberg CLI
# Instalación automatizada
bin/fjcli_install.sh
El script instala la CLI mediante Cargo (el gestor de paquetes de Rust):
- Verifica si Cargo está instalado y lo instala si es necesario
- Instala codeberg-cli que es compatible con servidores Forgejo
Para aprender a usar Codeberg CLI (compatible con Forgejo), consulta la documentación en el repositorio de Codeberg CLI.
Gestión de tokens para control de versiones
# Gestión segura de tokens de acceso
bin/cversadm_token.sh
Este script proporciona una interfaz para gestionar tokens de acceso para diferentes plataformas:
- Permite seleccionar entre Github, Gitlab y Forgejo
- Solicita y valida el token de forma segura
- Encripta el token con SOPS y lo almacena en ~/.developer
- Incluye verificación de formato y seguridad de tokens
- Gestiona automáticamente permisos para archivos de tokens
Autenticación con Forgejo usando token encriptado
# Iniciar sesión en Forgejo usando el token encriptado
bin/fj_login.sh
# Cerrar sesión de Forgejo
bin/fj_login.sh --logout
Este script facilita la autenticación con Forgejo/Codeberg CLI (berg):
- Utiliza el token almacenado y encriptado por cversadm_token.sh
- Desencripta automáticamente el token usando SOPS
- Detecta la URL de Forgejo basándose en la configuración de git
- Configura la variable BERG_BASE_URL con la URL detectada
- Proporciona opciones para login (por defecto) y logout
Copias de Seguridad
Para respaldar configuraciones importantes:
bin/profile_backup.sh
Esto crea un archivo ZIP en $HOME/secure/backups
que incluye:
- Configuración GPG completa
- Claves SSH y configuración
- Configuración Git
- Carpeta .developer (para configuraciones de servidores Git)
La carpeta puede contener múltiples archivos de respaldo con un archivo gpg.secret
que contiene la contraseña encriptada. La pérdida de este archivo imposibilitará la restauración.
Para restaurar:
bin/profile_restore.sh <archivo-zip-backup>
Creación de Proyectos Estandarizados
MRDevs Tools proporciona una forma estandarizada de crear nuevos proyectos con project_new.sh
:
# Crear un nuevo proyecto
bin/project_new.sh
El script project_new.sh
crea proyectos con una estructura completa según el tipo seleccionado:
- Solicita nombre, tipo, licencia y descripción del proyecto
- Crea una estructura organizada de carpetas según el tipo de proyecto
- Inicializa un repositorio Git con archivo .gitignore específico
- Configura archivos README.md y documentación básica
- Permite seleccionar el tipo de servidor Git (GitHub, GitLab, Gitea, Forgejo, None)
- Genera un commit inicial automático
Tipos de proyectos soportados:
- Python, Node.js, PHP, Rust, C, C++, C#
- Odoo, Ansible, ESP32/Arduino
- COBOL y otros tipos personalizados
Cada tipo de proyecto incluye:
- Estructura de directorios optimizada
- Archivos de configuración específicos
- Archivos .gitignore personalizados
- Documentación inicial básica
Gestión de Tarifas y Costos
MRDevs Tools incluye utilidades para la gestión de tarifas y estimación de costos:
Actualización de Tarifas
El script rate_update.py
permite mantener actualizadas las tarifas por hora de diferentes tipos de programadores:
# Actualizar tarifas faltantes
bin/rate_update.py
# Listar todas las tarifas disponibles
bin/rate_update.py --list
# Actualizar la tarifa de un tipo específico de programador
bin/rate_update.py --type python
# Actualizar todas las tarifas, incluso las existentes
bin/rate_update.py --init
Las tarifas se almacenan en archivos individuales dentro de bin/config/rates/
y pueden ser utilizadas por otras herramientas.
Estimación de Costos con COCOMO
El script cocomo.py
implementa el modelo COCOMO para estimar costos de proyectos de software basados en las líneas de código:
# Calcular costo de un proyecto
bin/cocomo.py --project /ruta/al/proyecto
# Usar un tipo específico de programador para los costos
bin/cocomo.py --project /ruta/al/proyecto --type devops
# Especificar un modelo COCOMO específico
bin/cocomo.py --project /ruta/al/proyecto --model embedded
# Ignorar patrones adicionales de archivos
bin/cocomo.py --project /ruta/al/proyecto --ignore "*.generated.js" --ignore "vendor/**"
El script analizará el código fuente, contará las líneas efectivas, y calculará estimaciones de esfuerzo, tiempo y costos utilizando las tarifas por hora configuradas.
🔌 Arquitectura del Sistema
Estructura de Directorios
bin/
├── lib/ # Bibliotecas compartidas
├── msg/ # Archivos de mensajes multilingües
├── config/ # Configuraciones y parámetros
│ └── *.gitignore # Plantillas de .gitignore específicas por tipo de proyecto
└── ansible/ # Recursos para automatización
Componentes Principales
- Bibliotecas Base: Conjunto de funciones reutilizables (
base.lib
,bootstrap.lib
,developers.lib
, etc.) - Sistema de Mensajes: Soporte multilingüe para internacionalización
- Gestión de Configuración: Archivos de configuración centralizados, plantillas .gitignore por tipo de proyecto
- Herramientas de Automatización: Scripts y playbooks de Ansible
- Creación de Proyectos: Sistema estandarizado de plantillas para diversos tipos de proyectos
- Backup y Seguridad: Herramientas para respaldar configuraciones de desarrollador
💻 Compatibilidad
El proyecto está diseñado para funcionar en múltiples sistemas operativos:
- Ubuntu/Debian (apt)
- Red Hat/Fedora (dnf/yum)
- Arch Linux (pacman)
- BSD (pkg)
- macOS (brew)
🤝 Contribución
Para contribuir al proyecto:
- Asegúrese de seguir las convenciones de codificación
- Use los mensajes de commit con prefijos estándar:
[ADDED]
- Nueva funcionalidad añadida[IMPROVED]
- Mejora en funcionalidad existente[FIXED]
- Corrección de errores[SOPS]
- Cambios relacionados con encriptación/secretos[DOCS]
- Actualización de documentación[INIT]
- Inicialización de proyecto o componente[REFACTORED]
- Reestructuración de código sin cambios funcionales[MODIFIED]
- Cambios menores o ajustes
- Para archivos Python, use la plantilla de encabezado que está en
bin/config/python.head
:#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Programa: nombre_archivo.py Descripción: Breve descripción del programa Autor: Su Nombre <su.email@ejemplo.com> Creación: Fecha de creación Actualización: Fecha de última actualización Versión: X.Y Licencia: AGPL """
- Documente cualquier nueva funcionalidad añadida
📄 Licencia
Este proyecto está licenciado bajo la Licencia Pública General Affero (AGPL) - vea el archivo LICENSE para más detalles.
👥 Colaboradores
- Mauro Rosero P. - Desarrollador Principal - mauro@rosero.one
- Claude Code - Asistente Digital - claude@anthropic.com
- Cortana Rosero One - Asistente Digital - cortana@rosero.one
📞 Soporte
Para dudas o problemas, contacte con:
- Email: mauro@rosero.one
- Web: https://rosero.one
MRDevs Tools - Simplificando el entorno de desarrollo © 2025 Mauro Rosero P.