Loading repository data…
Loading repository data…
devsebastian44 / repository
Script para instalar y configurar Nextcloud automáticamente
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
[!CAUTION] This project is for educational and ethical cybersecurity purposes only. The author is not responsible for any misuse or damage caused by this software.
Este proyecto es un instalador automatizado de Nextcloud para entornos Ubuntu, construido íntegramente en Bash. A partir del análisis de la estructura del repositorio y sus archivos clave, el script principal (src/setup.sh) orquesta el despliegue completo de un stack LAMP (Linux + Apache + MySQL/MariaDB + PHP) y la configuración de Nextcloud sobre él, a través de un asistente interactivo por menú que guía al administrador en cada etapa del proceso.
El proyecto sigue una estrategia DevSecOps centrada en la automatización del despliegue y la seguridad de la infraestructura, garantizando que cada componente esté configurado siguiendo las mejores prácticas de la industria.
setup.sh presenta un menú modular que permite ejecutar cada fase del despliegue de forma independiente o secuencial./var/www/html/nextcloud/) para cumplir con las recomendaciones de seguridad oficiales.docs/ que cubren desde la arquitectura hasta el mantenimiento del sistema.docs/ con documentación detallada del proceso de despliegue, independiente del código fuente.| Componente | Tecnología |
|---|---|
| Sistema Operativo | Ubuntu 20.04 LTS o superior |
| Lenguaje de scripting | Bash / Shell |
| Servidor web | Apache2 |
| Base de datos | MySQL / MariaDB |
| Lenguaje backend | PHP (con extensiones Nextcloud) |
| Aplicación desplegada | Nextcloud (plataforma self-hosted) |
| Control de versiones | Git (GitHub) |
sudo)# 1. Clonar el repositorio
git clone https://github.com/devsebastian44/Nextcloud.git
cd Nextcloud
# 2. Otorgar permisos de ejecución al script principal
chmod +x src/setup.sh
# 3. Ejecutar el instalador con privilegios de root
sudo ./src/setup.sh
⚠️ Se recomienda ejecutar el instalador sobre un servidor limpio o una máquina virtual dedicada. No ejecutar sobre sistemas con servicios web ya configurados sin revisar previamente los archivos de configuración en
configs/.
Al ejecutar sudo ./src/setup.sh, se presenta un menú interactivo con las siguientes opciones:
╔══════════════════════════════════════╗
║ Nextcloud Professional Installer ║
╠══════════════════════════════════════╣
║ [1] Instalar Requisitos ║
║ [2] Configurar Nextcloud ║
║ [3] Configurar Seguridad ║
║ [4] Verificar Estado ║
║ [0] Salir ║
╚══════════════════════════════════════╝
Flujo recomendado de ejecución:
# Paso 1 — Instalar el stack LAMP (Apache, MySQL, PHP)
Seleccionar opción [1]
# Paso 2 — Desplegar y vincular Nextcloud con la base de datos
Seleccionar opción [2]
# Paso 3 — Aplicar hardening de permisos y configuración de seguridad
Seleccionar opción [3]
# Paso 4 — Verificar que todos los servicios estén activos
Seleccionar opción [4]
Verificación manual post-instalación:
# Estado de Apache2
sudo systemctl status apache2
# Estado de MySQL/MariaDB
sudo systemctl status mysql
# Acceder a Nextcloud desde el navegador
http://<IP_DEL_SERVIDOR>/
Nextcloud/
│
├── src/
│ └── setup.sh # Script principal del instalador:
│ # menú interactivo, instalación LEMP,
│ # despliegue y configuración de Nextcloud
│
├── docs/ # Documentación técnica detallada:
│ # guías de configuración, diagramas
│ # de arquitectura y flujos de despliegue
│
├── .gitignore # Exclusiones de Git: archivos de entorno,
│ # configs reales y artefactos privados
│
├── LICENSE # Licencia GPL-3.0
└── README.md # Documentación pública del repositorio
📌 El repositorio incluye adicionalmente:
configs/(plantillas de configuración) ytests/(validaciones y pruebas unitarias).
Este proyecto despliega una plataforma de colaboración privada. Se consideran las siguientes implicaciones de seguridad:
www-data, 750/640) para limitar la exposición de archivos sensibles.php.ini tenga deshabilitadas directivas como expose_php, display_errors y configurados límites de subida adecuados (upload_max_filesize, post_max_size).mysql_secure_installation tras la instalación para eliminar usuarios anónimos, deshabilitar el acceso root remoto y eliminar bases de datos de prueba.ufw para permitir únicamente los puertos necesarios (80, 443) y bloquear accesos directos al puerto de base de datos (3306).⚠️ Este repositorio contiene la versión completa y funcional del instalador. Se recomienda revisar los archivos de configuración en
configs/antes del despliegue.
El proyecto incluye scripts de validación para asegurar la calidad del código:
# Ejecutar verificación de sintaxis
./tests/test_syntax.sh
# Ejecutar linting (requiere shellcheck)
./tests/test_lint.sh
Los tests se ejecutan automáticamente en cada Pull Request mediante GitHub Actions.
¡Las contribuciones son bienvenidas! Si deseas mejorar el instalador:
git checkout -b feature/amazing-feature).git push origin feature/amazing-feature).Posibles mejoras identificadas a partir del análisis del código y la arquitectura actual:
Este proyecto está bajo la licencia GNU General Public License v3.0 (GPL-3.0).
GPL-3.0 License — Copyright (c) devsebastian44
Se permite el uso, modificación y distribución bajo los términos de la GPL v3.
Las versiones derivadas deben mantener la misma licencia y publicar el código fuente.
Sebastian GitHub: @devsebastian44
Proyecto desarrollado con fines educativos y de automatización de infraestructura, siguiendo principios DevSecOps para el despliegue seguro de plataformas self-hosted.