Compare commits
3 commits
3eb5cfc7c5
...
9e8420c287
Author | SHA1 | Date | |
---|---|---|---|
9e8420c287 | |||
a556225146 | |||
0b68ca3e18 |
3 changed files with 67 additions and 38 deletions
65
README.md
65
README.md
|
@ -41,14 +41,21 @@ bin/update.sh
|
|||
|
||||
### Estructura de Directorios
|
||||
|
||||
Durante la instalación y uso, MRDevs Tools crea varios directorios importantes:
|
||||
MRDevs Tools utiliza una estructura organizada que separa el código (en ~/devs) y la configuración (en directorios ocultos):
|
||||
|
||||
- `~/devs/bin/`: Scripts y herramientas ejecutables
|
||||
- `~/devs/ollama/`: Configuración y datos para Ollama AI
|
||||
- `~/devs/sounds/`: Archivos de sonido para notificaciones
|
||||
#### Código y scripts
|
||||
- `~/devs/bin/`: Scripts ejecutables y herramientas principales
|
||||
- `lib/`: Bibliotecas compartidas de funciones
|
||||
- `msg/`: Archivos de mensajes multilingües
|
||||
- `config/`: Configuración del sistema
|
||||
|
||||
#### Configuración y datos
|
||||
- `~/.sounds/`: Archivos de audio para notificaciones y alertas
|
||||
- `~/.ollama/`: Configuración, modelos y datos para Ollama AI
|
||||
- `~/.vosk/`: Modelos para reconocimiento de voz local
|
||||
- `~/.cortana/`: Configuración y tokens para Claude Code
|
||||
- `~/.developer/`: Tokens y configuraciones para herramientas de desarrollo
|
||||
- `~/.cache/devs/`: Caché de descargas y datos temporales
|
||||
|
||||
## 🔧 Funcionalidades Principales
|
||||
|
||||
|
@ -78,7 +85,7 @@ Durante la instalación y uso, MRDevs Tools crea varios directorios importantes:
|
|||
| `bin/sora_enable.sh` | Activa el alias 'sora' para Aider permanentemente |
|
||||
| `bin/sora_disable.sh` | Desactiva el alias 'sora' para Aider |
|
||||
| `bin/ai_token.sh` | Gestiona tokens de múltiples proveedores de IA vía SOPS |
|
||||
| `bin/ollama_up.sh` | Inicia el servicio Ollama (IA local) con podman-compose. Crea y configura `~/devs/ollama/` |
|
||||
| `bin/ollama_up.sh` | Inicia el servicio Ollama (IA local) con podman-compose. Crea y configura `~/.ollama/` |
|
||||
| `bin/ollama_down.sh` | Detiene el servicio Ollama (IA local) |
|
||||
| `bin/ollama.sh` | Cliente para interactuar con Ollama (auto-inicia el servicio si es necesario) |
|
||||
| `bin/nodered.sh` | Administra Node-RED con soporte para ejecución, monitoreo y gestión completa del servicio |
|
||||
|
@ -201,7 +208,7 @@ bin/claude_voice.py --timeout 30
|
|||
bin/claude_voice.py --text "Cómo puedo crear un archivo en Python"
|
||||
```
|
||||
|
||||
> **NOTA**: Esta funcionalidad es experimental y requiere un micrófono configurado correctamente. El reconocimiento de voz utiliza Vosk, una solución local que no requiere conexión a Internet. La primera vez que ejecutes el script con un nuevo idioma, descargará automáticamente el modelo de reconocimiento correspondiente. Los archivos de sonido para notificaciones se almacenan en `~/devs/sounds/`.
|
||||
> **NOTA**: Esta funcionalidad es experimental y requiere un micrófono configurado correctamente. El reconocimiento de voz utiliza Vosk, una solución local que no requiere conexión a Internet. La primera vez que ejecutes el script con un nuevo idioma, descargará automáticamente el modelo de reconocimiento correspondiente. Los archivos de sonido para notificaciones se almacenan en `~/.sounds/`.
|
||||
|
||||
#### Aider CLI
|
||||
|
||||
|
@ -440,20 +447,48 @@ bin/cocomo.py --project /ruta/al/proyecto --ignore "*.generated.js" --ignore "ve
|
|||
|
||||
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.
|
||||
|
||||
## 🔐 Seguridad y Privacidad
|
||||
|
||||
MRDevs Tools está diseñado con la seguridad y privacidad en mente:
|
||||
|
||||
- **Almacenamiento seguro**: Todos los tokens y credenciales se almacenan encriptados usando SOPS
|
||||
- **Directorios ocultos**: La configuración sensible se almacena en directorios ocultos (con prefijo `.`)
|
||||
- **Sin telemetría**: Las herramientas no recopilan ni envían datos de uso
|
||||
- **Podman como predeterminado**: Se usa Podman (sin privilegios) para mayor seguridad en contenedores
|
||||
- **Ejecución local**: Las funcionalidades como reconocimiento de voz funcionan localmente sin enviar datos
|
||||
|
||||
## 🔌 Arquitectura del Sistema
|
||||
|
||||
### Estructura de Directorios
|
||||
|
||||
```
|
||||
devs/
|
||||
├── bin/ # Scripts ejecutables y herramientas
|
||||
│ ├── lib/ # Bibliotecas compartidas
|
||||
│ ├── msg/ # Archivos de mensajes multilingües
|
||||
│ └── config/ # Configuraciones y parámetros
|
||||
│ └── *.gitignore # Plantillas de .gitignore específicas por tipo de proyecto
|
||||
├── ollama/ # Configuración y datos de Ollama (IA local)
|
||||
│ └── data/ # Almacenamiento persistente para modelos de Ollama
|
||||
└── sounds/ # Archivos de audio para notificaciones
|
||||
$HOME/
|
||||
├── devs/ # Directorio principal del proyecto
|
||||
│ └── bin/ # Scripts ejecutables y herramientas
|
||||
│ ├── lib/ # Bibliotecas compartidas
|
||||
│ ├── msg/ # Archivos de mensajes multilingües
|
||||
│ ├── config/ # Configuraciones y parámetros
|
||||
│ │ └── *.gitignore # Plantillas para proyectos
|
||||
│ ├── bootstrap.sh # Instalador básico
|
||||
│ ├── update.sh # Actualizador de entorno
|
||||
│ ├── ollama*.sh # Scripts de Ollama
|
||||
│ ├── claude_voice.py # Asistente de voz para Claude Code
|
||||
│ └── ... # Otros scripts
|
||||
│
|
||||
├── .sounds/ # Archivos de audio para notificaciones
|
||||
├── .ollama/ # Configuración y datos de Ollama (IA)
|
||||
│ ├── models/ # Modelos descargados
|
||||
│ └── podman-compose.yml # Configuración del contenedor
|
||||
│
|
||||
├── .vosk/ # Modelos para reconocimiento de voz
|
||||
│ └── models/ # Modelos de voz por idioma
|
||||
│
|
||||
├── .cortana/ # Configuración de Claude Code
|
||||
│ └── cortana.sops.yaml # Token encriptado
|
||||
│
|
||||
└── .developer/ # Tokens y configuraciones de desarrollo
|
||||
├── github.sops.yaml # Token de GitHub encriptado
|
||||
└── forgejo.sops.yaml # Token de Forgejo encriptado
|
||||
```
|
||||
|
||||
### Componentes Principales
|
||||
|
|
|
@ -42,13 +42,8 @@ class Colors:
|
|||
|
||||
def play_sound(sound_type):
|
||||
"""Reproduce un sonido para indicar estados"""
|
||||
# Obtener el directorio del script y del proyecto
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
bin_dir = os.path.dirname(script_dir) if script_dir.endswith("/bin") else script_dir
|
||||
project_dir = os.path.dirname(bin_dir) if bin_dir.endswith("/bin") else os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
# Usar sounds en el directorio del proyecto, no en /bin
|
||||
sounds_dir = os.path.join(project_dir, "sounds")
|
||||
# Usar ~/.sounds como directorio estándar para archivos de sonido
|
||||
sounds_dir = os.path.join(os.path.expanduser("~"), ".sounds")
|
||||
if not os.path.exists(sounds_dir):
|
||||
os.makedirs(sounds_dir, exist_ok=True)
|
||||
|
||||
|
|
|
@ -55,8 +55,8 @@ source "${BIN_HOME}/${BIN_BASE}/${BIN_LIBS}/base.lib"
|
|||
load_messages "${BIN_HOME}/${BIN_BASE}" "${BIN_MESG}" "${BIN_LANG}" "head"
|
||||
title="${head_000} ${head_002}"
|
||||
|
||||
# Create the directory for Ollama in the development directory
|
||||
mkdir -p "${BIN_HOME}/ollama"
|
||||
# Create the directory for Ollama in the user's home directory
|
||||
mkdir -p "${HOME}/.ollama"
|
||||
|
||||
# Check if we should use podman or docker (prefer podman)
|
||||
if command -v podman >/dev/null 2>&1; then
|
||||
|
@ -83,27 +83,26 @@ fi
|
|||
echo "Using ${COMPOSE_CMD} to start Ollama service..."
|
||||
|
||||
# Copy compose file if it doesn't exist in the new location
|
||||
if [ ! -f "${BIN_HOME}/ollama/podman-compose.yml" ] && [ -f "${BIN_HOME}/${BIN_BASE}/ollama/podman-compose.yml" ]; then
|
||||
cp "${BIN_HOME}/${BIN_BASE}/ollama/podman-compose.yml" "${BIN_HOME}/ollama/"
|
||||
if [ ! -f "${HOME}/.ollama/podman-compose.yml" ] && [ -f "${BIN_HOME}/${BIN_BASE}/ollama/podman-compose.yml" ]; then
|
||||
cp "${BIN_HOME}/${BIN_BASE}/ollama/podman-compose.yml" "${HOME}/.ollama/"
|
||||
fi
|
||||
|
||||
# Change to the directory containing the compose file
|
||||
cd "${BIN_HOME}/ollama"
|
||||
cd "${HOME}/.ollama"
|
||||
|
||||
# Create a subdirectory for Ollama data
|
||||
mkdir -p "${BIN_HOME}/ollama/data"
|
||||
|
||||
# Update the compose file to use ollama/data directory
|
||||
if [ -f "${BIN_HOME}/ollama/podman-compose.yml" ]; then
|
||||
# Update the volume mount to use ollama/data instead of data
|
||||
sed -i 's|../../data:/root/.ollama|../ollama/data:/root/.ollama|g' "${BIN_HOME}/ollama/podman-compose.yml"
|
||||
sed -i 's|${BIN_HOME}/data:/root/.ollama|${BIN_HOME}/ollama/data:/root/.ollama|g' "${BIN_HOME}/ollama/podman-compose.yml"
|
||||
# Update the compose file to use the default Ollama directory
|
||||
if [ -f "${HOME}/.ollama/podman-compose.yml" ]; then
|
||||
# Update any old volume paths to use the standard location
|
||||
sed -i 's|../../data:/root/.ollama|.:/root/.ollama|g' "${HOME}/.ollama/podman-compose.yml"
|
||||
sed -i 's|${BIN_HOME}/data:/root/.ollama|${HOME}/.ollama:/root/.ollama|g' "${HOME}/.ollama/podman-compose.yml"
|
||||
sed -i 's|./data:/root/.ollama|.:/root/.ollama|g' "${HOME}/.ollama/podman-compose.yml"
|
||||
sed -i 's|../ollama/data:/root/.ollama|.:/root/.ollama|g' "${HOME}/.ollama/podman-compose.yml"
|
||||
|
||||
# Start Ollama service with compose
|
||||
${COMPOSE_CMD} -f podman-compose.yml up -d
|
||||
else
|
||||
# Create a basic compose file if none exists
|
||||
cat > "${BIN_HOME}/ollama/podman-compose.yml" <<EOF
|
||||
cat > "${HOME}/.ollama/podman-compose.yml" <<EOF
|
||||
version: '3'
|
||||
services:
|
||||
ollama:
|
||||
|
@ -112,7 +111,7 @@ services:
|
|||
ports:
|
||||
- "11434:11434"
|
||||
volumes:
|
||||
- ./data:/root/.ollama
|
||||
- .:/root/.ollama
|
||||
restart: unless-stopped
|
||||
privileged: true
|
||||
EOF
|
||||
|
@ -132,7 +131,7 @@ if ! ${CONTAINER_CMD} container exists ollama 2>/dev/null || ! ${CONTAINER_CMD}
|
|||
${CONTAINER_CMD} run -d --name ollama \
|
||||
--privileged \
|
||||
-p 11434:11434 \
|
||||
-v "${BIN_HOME}/ollama/data:/root/.ollama" \
|
||||
-v "${HOME}/.ollama:/root/.ollama" \
|
||||
--restart unless-stopped \
|
||||
docker.io/ollama/ollama:latest
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue