Command Vault es una aplicación web local diseñada para almacenar, organizar y consultar comandos técnicos rápidos orientados a:
- 🔐 Hacking ético / Pentesting
- 🧰 Sysadmin / DevOps
- 🤖 Automatización / RPA
- 🖥️ Uso diario en terminal (Bash, PowerShell, Python, etc.)
La aplicación funciona 100% en local, no requiere internet una vez instalada y está pensada como un vault personal de comandos útiles con explicación y resaltado de sintaxis.
⚠️ Estado actual: BETA
La aplicación es funcional pero puede cambiar estructura y features.
Actualmente la aplicación incluye comandos de prueba cuyo objetivo es validar la funcionalidad general del sistema.
El código se encuentra publicado para facilitar aportaciones, mejoras y feedback por parte de la comunidad.
Paralelamente, el proyecto está en desarrollo activo y se irán incorporando nuevos comandos de forma progresiva. Cuando la base de datos alcance un volumen sólido y útil de comandos reales, se publicará una nueva release en GitHub con una Command Database mucho más amplia y madura.
Documentación en GitBook: GitBook Documentación
- 📂 Workspaces → Secciones → Comandos
- 🎨 Resaltado de sintaxis automático por lenguaje
- ⌨️ Editor con vista previa de código en tiempo real
- 🗃️ Base de datos local (persistencia)
- 🌐 Interfaz web moderna (React + Vite)
- ⚡ Muy rápida, sin dependencias externas
- 🖥️ Funciona en segundo plano
- React + TypeScript
- Vite (bundler ultrarrápido)
- Framer Motion (animaciones)
- Lucide Icons
- react-syntax-highlighter (Prism)
- Node.js (v20.20.0)
- TypeScript
- API local (REST)
- Base de datos local (persistente)
- Todo se ejecuta en localhost
- No se envía ningún dato fuera
- Ideal para entornos de pentesting
El proyecto se distribuye como un archivo .zip portable.
No hay instalador gráfico.
Todo se controla desde un único archivo:
run.bat- 🪟 Windows
- ✅ Necesitas Node (v20.20.0) instalado previamente (En la misma carpeta esta el instalador)
- ❌ No necesitas configurar nada manualmente
- Descarga el
.zipdel proyecto - Descomprímelo en cualquier carpeta
- Dentro verás algo como:
command-vault/
│
├─ client/
├─ server/
├─ node/
│ └─ node.msi
├─ run.bat
├─ install.bat
- Haz doble click en
install.bat - Despues de instalar las dependencias haz doble click en
run.bat
Automáticamente:
- ✔️ Comprueba si Node.js está instalado
- 📦 Si no lo está, lo instala en silencio
- 📥 Instala dependencias del backend
- 📥 Instala dependencias del frontend
Automáticamente:
- 🚀 Arranca backend + frontend
- 🌐 Abre el navegador en:
http://localhost:5173
🟢 La terminal queda abierta en segundo plano
🟢 No necesitas interactuar con ella (Solamente para parar el proceso)
Una vez abierto el navegador:
- Toda la interacción se hace desde la web
- Puedes cerrar el navegador y volver a abrir la URL
- Mientras la terminal esté abierta, la app sigue funcionando
- Cierra la ventana de la terminal que abrió
run.bat - O cierra el proceso de Node desde el Administrador de tareas
Command Vault puede ejecutarse fácilmente en Linux y especialmente en Raspberry Pi (recomendado 4 / 8 GB RAM) utilizando Docker y Portainer, manteniendo persistentes tanto la base de datos como el código fuente.
Este método permite:
- Ejecución local vía navegador
- Persistencia de datos (
.db) - Reinicio automático del servicio
- Desarrollo activo sin recompilar imágenes
- Raspberry Pi 4 (4 GB mínimo, 8 GB recomendado) o cualquier Linux x64
- Sistema operativo basado en Debian (Raspberry Pi OS, Ubuntu, etc.)
- Docker instalado
- Portainer instalado y funcionando
- Acceso a la carpeta
/opt
El proyecto debe ubicarse en el host de la Raspberry Pi en la siguiente ruta:
/opt/command-vault/
├── client/
├── server/
│ └── data/
│ └── command-vault.db
├── package.json
├── package-lock.json
└── docker-compose.yml
⚠️ La carpeta server/data/ es crítica, ya que contiene la base de datos SQLite y debe ser persistente.
Este es el docker-compose.yml funcional utilizado para el despliegue:
version: "3.9"
services:
command-vault:
image: node:20.20.0-bullseye
container_name: command-vault
restart: unless-stopped
working_dir: /app
environment:
NODE_ENV: development
DB_PATH: /app/server/data/command-vault.db
ports:
- "600:5173" # Frontend (Vite)
- "5179:5179" # Backend API
volumes:
# Código fuente (persistente)
- /opt/command-vault/server:/app/server
- /opt/command-vault/client:/app/client
- /opt/command-vault/package.json:/app/package.json
- /opt/command-vault/package-lock.json:/app/package-lock.json
# Base de datos persistente
- /opt/command-vault/server/data:/app/server/data
command: >
sh -c "
npm install &&
npm run dev
"- Accede a Portainer
- Ve a Stacks
- Crea un nuevo Stack
- Pega el contenido del
docker-compose.yml - Asigna un nombre (por ejemplo:
command-vault) - Pulsa Deploy the stack
Portainer descargará la imagen, instalará dependencias y lanzará el frontend y backend automáticamente.
NOTA IMPORTANTE! Para que se pueda acceder de forma externa hay que añadirle en el archivo
command-vault/client/vite.config.tsuna lineahost: truepara que pueda tener acceso desde fuera (0.0.0.0)
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
export default defineConfig({
plugins: [react()],
server: {
host: true, // 👈 AÑADIR ESTO DE AQUÍ
port: 5173,
proxy: {
"/api": "http://localhost:5179"
}
}
});Una vez desplegado:
- Frontend Web:
http://<IP_DE_LA_RASPBERRY>:600
- Backend API:
http://<IP_DE_LA_RASPBERRY>:5179
La aplicación se ejecuta completamente en local desde el navegador, sin necesidad de Electron ni binarios adicionales.
- La base de datos SQLite se guarda en:
/opt/command-vault/server/data/
- Los cambios en código (
.ts,.tsx, etc.) son persistentes - El contenedor puede reiniciarse sin pérdida de datos
- Ideal tanto para uso diario como para desarrollo activo
- No se conecta a internet
- No ejecuta comandos automáticamente
- Solo almacena texto
- El usuario es responsable del uso de los comandos
Esta versión es BETA, lo que implica:
- Posibles cambios en estructura
- Posibles bugs visuales
- No se recomienda para producción crítica
Feedback, ideas y mejoras son bienvenidas.
“No perder tiempo buscando el mismo comando por quinta vez.”
Command Vault está pensado como:
- Un cerebro externo
- Un vault personal
- Una base de conocimiento viva
Ideal para:
- Pentesters
- Red Team
- Blue Team
- Sysadmins
- Estudiantes de seguridad
Uso personal / educativo.
El autor no se responsabiliza del uso indebido de los comandos almacenados.
- Import / export de comandos
- Búsqueda avanzada
- Tags
- Shortcuts
- Versionado de comandos
💀 Happy hacking (ethical)
⚡ Built for speed