Una página de inicio web minimalista, personalizable y extensible diseñada para reemplazar la página de inicio por defecto de tu navegador. Con soporte para múltiples escritorios, drag & drop, y un servidor local completo.
- 🌅 Apertura
- Sistema de escritorios independientes (Trabajo, Ocio, Proyectos, etc.)
- Navegación intuitiva con flechas y puntos indicadores
- Drag & drop para reordenar escritorios
- Fondos personalizables por escritorio (colores sólidos y gradientes)
- Paleta de colores predefinida
- Input de color personalizado
- Interfaz adaptable y responsive
- Añadir enlaces con favicons automáticos
- Drag & drop para reordenar enlaces
- Mover enlaces entre escritorios
- Menú contextual con opciones avanzadas
- Navegación con teclado (teclas ← →)
- Navegación con botones del navegador (Mouse4/Mouse5)
- Historial de navegación integrado
- Datos guardados en localStorage
- Sin necesidad de cuenta o registro
- Totalmente privado y offline
- Sistema de importación/exportación de configuraciones
- Servidor Node.js completo incluido
- Ejecutable como servicio de Windows
- Puerto 5000 por defecto
- API REST preparada para expansiones
Apertura está diseñada para usuarios que quieren:
- 🏠 Reemplazar la página de inicio del navegador con algo más útil y personalizado
- 📊 Organizar enlaces por categorías (trabajo, ocio, herramientas, etc.)
- ⚡ Acceso rápido a sitios web frecuentes con una interfaz limpia
- 🎨 Personalización visual que se adapte a sus gustos
- 🔒 Privacidad total sin sincronización en la nube (opcional)
- 🚀 Extensibilidad para futuras funcionalidades (IA, widgets, etc.)
- Node.js (v16 o superior)
- Windows 10/11 (para servicio automático)
# 1. Clona el repositorio
git clone https://github.com/indice/apertura.git
cd apertura
# 2. Ejecuta el instalador
install.batEl instalador se encargará de:
- ✅ Instalar dependencias del cliente y servidor
- ✅ Construir la aplicación para producción
- ✅ Configurar el servicio de Windows (opcional)
- ✅ Abrir la aplicación en tu navegador
# 1. Instalar dependencias del cliente
cd client
npm install
npm run build
# 2. Instalar dependencias del servidor
cd ../server
npm install
# 3. Iniciar servidor
npm startUna vez instalado, accede a: http://localhost:5000
- ⚡ Vite - Build tool y dev server ultrarrápido
- 🎨 Vue 3 - Framework progresivo para interfaces
- 💎 Tailwind CSS - Framework CSS utility-first
- 📦 Pinia - State management para Vue
- 🧭 Vue Router - Enrutador oficial de Vue
- 🖱️ VueDraggable - Componentes drag & drop
- 🟢 Node.js - Runtime de JavaScript
- 🚂 Express - Framework web minimalista
- 🔒 Helmet - Middleware de seguridad
- 🌐 CORS - Cross-Origin Resource Sharing
- 📦 Compression - Compresión gzip
- 🔧 node-windows - Servicios de Windows
- 📦 pkg - Generador de ejecutables
- 🔄 nodemon - Recarga automática en desarrollo
apertura/
├── 📁 client/ # Aplicación Vue.js
│ ├── 📁 src/
│ │ ├── 📁 components/ # Componentes Vue
│ │ ├── 📁 views/ # Vistas principales
│ │ ├── 📁 stores/ # Stores de Pinia
│ │ └── 📁 assets/ # Recursos estáticos
│ ├── 📄 package.json
│ └── ⚙️ vite.config.js
├── 📁 server/ # Servidor Node.js
│ ├── 📄 index.js # Servidor principal
│ ├── 📄 install-service.js # Instalador de servicio
│ ├── 📄 package.json
│ └── 📄 README.md
├── 📄 install.bat # Instalador automático
└── 📄 README.md # Este archivo
# Instalar como servicio de Windows
cd server
node install-service.js
# Desinstalar servicio
node uninstall-service.js# Desarrollo
npm run dev # Cliente con hot-reload
npm run dev # Servidor con nodemon
# Producción
npm run build # Construir cliente
npm start # Iniciar servidor
npm run build-exe # Crear ejecutable
# Servicio
npm run install-service # Instalar como servicio
npm run uninstall-service # Desinstalar servicioPORT=5000 # Puerto del servidor (default: 5000)
NODE_ENV=production # Entorno de ejecución- Crear: Click en "⚙️ Configurar" → "➕ Escritorio"
- Reordenar: Arrastra los escritorios por el handle
⋮⋮ - Navegar: Usa las flechas, puntos, o botones del mouse
- Personalizar: Cambia nombre y fondo de cada escritorio
- Añadir: Click en "➕ Añadir enlace" en el header
- Reordenar: Arrastra los enlaces a la posición deseada
- Mover: Arrastra enlaces entre escritorios diferentes
- Editar: Click derecho → "✏️ Editar"
- Eliminar: Click derecho → "🗑️ Eliminar"
- Teclado:
←→para cambiar escritorios - Mouse: Botones laterales del mouse (si están configurados)
- Navegador: Botones atrás/adelante (si está habilitado)
- Touch: Gestos táctiles en dispositivos móviles
- Exportar: Click en "⚙️ Configurar" → "📂 Gestionar Configuraciones" → "📥 Descargar Configuración"
- Importar: Selecciona archivo JSON de configuración → "📤 Importar"
- Reset: Restablecer a configuración por defecto
- Transferir: Comparte configuraciones entre diferentes instalaciones
El servidor incluye una API REST preparada para expansiones:
GET /api/health # Estado del servidor
GET /api/config # Configuración (preparado)
GET /api/widgets # Widgets (preparado)
POST /api/ai/chat # Chat IA (preparado)// Verificar estado del servidor
fetch('/api/health')
.then(response => response.json())
.then(data => console.log(data));
// Respuesta:
// {
// "status": "ok",
// "timestamp": "2024-01-01T12:00:00.000Z",
// "version": "1.1.0"
// }- Paleta predefinida de 20 colores
- Input de color personalizado
- Soporte para códigos hex (#ff0000)
- 6 gradientes prediseñados
- Colores sólidos
- Gradientes lineales
- Fácil extensión para imágenes (futuro)
- Navegación con teclado (on/off)
- Navegación con navegador (on/off)
- Configuración persistente en localStorage
- Exportación/importación de configuraciones
- Transferencia entre instalaciones
- Arreglar validación de import/export con ID 0
- Mejorar robustez del sistema de configuraciones
- Compatibilidad con versiones anteriores
- Sistema de exportación de configuraciones
- Sistema de importación con validación
- Transferencia entre instalaciones
- Reset a configuración por defecto
- Widget del clima
- Widget de noticias
- Widget de reloj
- Widget de notas
- Asistente virtual integrado
- Sugerencias de enlaces
- Búsqueda inteligente
- Comandos por voz
- Sincronización en la nube
- Múltiples dispositivos
- Backup automático
- Sincronización automática de configuraciones
- Sistema de plugins
- Temas personalizables
- Widgets de terceros
- API pública
¡Las contribuciones son bienvenidas! Si quieres contribuir:
- Fork del repositorio
- Crea una rama para tu feature (
git checkout -b feature/nueva-caracteristica) - Commit tus cambios (
git commit -am 'Añadir nueva característica') - Push a la rama (
git push origin feature/nueva-caracteristica) - Abre un Pull Request
Usa el sistema de issues para reportar bugs o solicitar features.
¿Tienes una idea genial? ¡Compártela en las discussions!
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
¿Te gusta Apertura? ⭐ Dale una estrella al repositorio
Hecho con ❤️ y ☕ por indice