Esta guía esta pensada para usarse con un servidor (equipo) con Debian Stable, es importante tomar en cuenta temas de seguridad, gestión de certificados y respaldo. > [!NOTE] > Es impo 1. Instalar una interfaz de gestor de paquetes de apt (Nala) > [!TIP] > Se recomienda usar esta inferfaz por sus beneficios al llevar un registro de instlación de paquetes y descargar multihilo. ``` sudo apt install nala ``` 1. Si en la maquina se esta trabajando como super usuario (root), se debe de generar un usuario no privilegiado con acceso limitado a root. ``` nala install sudo useradd -m -s /bin/bash/ nombre_usuario # Asignarle una contraseña (debe de ser segura) passwd nombre_usuario usermod -aG sudo nombre_usuario ``` 2. Si no existe servicio ssh (suele ocurrir cuando es un contendor LXC, LXD o incus) ``` nala install openssh-server ``` Es importante conectarse mediante SSH a la maquina con el usuario y no en modo super usuario (root). 2. Instalar el stack LEPP (Linux, Nginx, PostgreSQL y PHP) ``` sudo nala install php-fpm nginx postgresql ``` 3. Instalar los paquetes necesario de PHP (podra variar entre versiones y de los servicios que se instalaran) ``` # Generalemte podemos consultar las extensiones que tenemos # instaladas con php -m # Para instalar alguna extension se hace con # sudo nala install php-nombre_de_la_extensión # Para esta instalación minima instalaremos las isguientes extensiones sudo nala install php-{apcu,bz2,curl,gd,gmp,igbinary,imagick,intl,mbstring,pgsql,pgsql,redis,xml,zip} ``` 4. Generar base de datos ``` sudo -i -u postgres psql CREATE USER username WITH PASSWORD 'password' CREATEDB; CREATE DATABASE nextcloud TEMPLATE template0 ENCODING 'UTF8'; ALTER DATABASE nextcloud OWNER TO username; GRANT ALL PRIVILEGES ON DATABASE nextcloud TO username; GRANT ALL PRIVILEGES ON SCHEMA public TO username; \q ``` Cambia el "username" y "password" por alguno de tu preferencia, también puedes cambiar el nombre de la base de datos. 5. Descargar, extraer y asignar permisos de los archivos base de Nextcloud ``` # Si no tienes unzip sudo nala install unzip ``` 1. Se tiene que revisar el changelog para obtener la ultima versión [Changelog Nextcloud](https://nextcloud.com/changelog/) ``` # Generalmente se utiliza wget sudo nala install wget wget https://download.nextcloud.com/server/releases/nextcloud-32.0.5.zip ``` 2. Extraer los datos ``` unzip nextcloud-32.0.5.zip ``` 3. Asignarle permisos correspondientes ``` sudo chown -R www-data:www-data nextcloud ``` 6. Mover el directorio a /var/www ``` sudo mv nextcloud /var/www ``` 7. Configurar Nginx 1. La [Documentación Oficial](https://docs.nextcloud.com/server/stable/admin_manual/installation/nginx.html) nos indica la configuración oficial que debe de incluir certificados SSL para usar HTTPS, por ello, mostraremos la forma de generar certificados autofrimados, Let's Encrypt de modo tradicional o por 'Challenge DNS01' 1. Certificados autofirmados Seguir las instrucciones de [Digital Ocean](https://docs.nextcloud.com/server/stable/admin_manual/installation/nginx.html). Hasta Debian 13 (Trixie) funciona tal y como lo expresan las instrucciones. 2. Let's Encrypt Generalmente se utiliza si se va exponer los servicios a internet y requiere que se los puertos 80 y 443 esten abierto para que el servicio externo verifique que exista maquina que utilizara el dominio. En caso contrario, de no abrir puertos por estar detras de un CGNAT o sin poder abrir puertos por parte del ISP, se pueden obtener dichos certificados solo si se tiene un dominio a su nombre y administrado por Cloudflare. 1. Tradicional Se deben seguir las instrucciones de [Cerbot](https://certbot.eff.org/instructions?ws=nginx&os=pip).