Creo que somos unos cuantos por aquí que usamos Nextcloud pero no he visto ningún hilo.
Me gustaría que compartiéramos los setups que nos hemos montado, recomendar apps, dar consejos y consultar dudas.
Qué es?
Se trata de un software libre y open source que te permite tener tu propia nube, es decir, las mismas funcionalidades que las que puede ofrecerte Google por ejemplo, como alojamiento y disponibilidad online de tu carrete de fotos del móvil, tus contactos, calendario, documentos, etc. Pero con la principal diferencia de que la infraestructura (el servidor) te la montas tú y tienes la soberanía total de tus datos.
Es muy flexible, permite ser instalado en casi cualquier hardware, crear múltiples usuarios (para tus familiares por ejemplo) y tiene una arquitectura modular, ofreciendo una "app store" en la que la comunidad contribuye, por lo que la personalización y formas de uso es casi infinita.
El equipo principal detrás del software se sostiene ofreciendo servicios premium y para empresas.
NextCloudPi
En mi caso he usado una simple RaspberryPi 4 con una microSD de 64gb y conectada a internet.
(éste mismo screenshot está siendo alojado en la raspberry :D)
Usé ésto https://ownyourbits.com/nextcloudpi/ que es un wrapper del software original que facilita la instalación y configuración en una raspberry.
Más adelante, cuando me vaya quedando con menos espacio, contemplaré usar un NAS.
Cosas que me faltan:
- Planear como hacer backups.
- Cifrar la SD.
Instalación
Básicamente seguid las guías de https://docs.nextcloudpi.com/en/
Importante cambiar el password del usuario pi
o crear uno nuevo y que sea parte del grupo sudo
.
Y setear una ip fija a la rpi. En el archivo /etc/dhcpcd.conf
:
# Example static IP configuration:
interface eth0
static ip_address=192.168.1.10/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
Teneis 3 metodos a elegir para instalar
- Imagen para grabar en la microSD (Debian + nextcloud). Aconsejable solo para muy novatos.
- Imagen de docker
- Curl installer:
curl -sSL https://raw.githubusercontent.com/nextcloud/nextcloudpi/master/install.sh | sudo bash
En cualquiera de los tres casos, una vez finalizada la instalación, tendréis el nextcloud levantado y corriendo en apache2.
Para acceder, en el navegador id a la ip de vuestra rpi. El panel de control es lo mismo pero en el puerto 4443.
Para que podamos acceder a la rasppberry desde el exterior a traves de internet, será necesario:
- Un dominio (tambien los teneis gratis, por ejemplo en https://freedns.afraid.org/)
- Proporcionar un certificado usando Let's Encrypt.
En los dos casos es configurable facilmente desde el panel de control de nextcloud.
Un apunte importante, es posible que el Let's Encrypt os falle (no se si al primer setup pero seguramente sí posteriormente cuando intenteis renovar).
Se trata de un bug del certbot
en la version 0.31 (y en el repo oficial no hay versión mas nueva por el momento). Asi que para arreglarlo, modificad el archivo /etc/letsencrypt/renewal/<vuestro_dominio>.conf
añadiendo un parametro que falta:
[[webroot_map]]
vuestro_dominio = /var/www/nextcloud
Recomendaciones de seguridad
Vamos a habilitar el firewal
ufw
y configurarlo para que deniege por defecto cualquier conexión entrante y habilitar solo los puertos que necesitamos.$ sudo apt install ufw $ sudo su # ufw default deny incoming # ufw default allow outgoing # ufw allow 22 comment 'allow SSH' # ufw allow 80 comment 'allow http' # ufw allow 443 comment 'allow https' # ufw allow 4443 comment 'allow nextcloudpi control panel' # ufw enable # systemctl enable ufw # ufw status # exit
En vuestro router haced port-forwarding de los mismos puertos, a excepción del 22.
(Opcional) Configuramos SSH para que la rpi solo sea accessible por nuestro ordenador
En Windows: https://www.tecmint.com/ssh-passwordless-login-with-putty/
En Mac/Linux:- Comprobar si ya tenemos generados el par de llaves pública/privada:
ls -la ~/.ssh/*.pub
Sino, las generamos:
ssh-keygen -t rsa -b 4096
- Y copiamos la llave pública a la rpi
ssh-copy-id pi@<ip de la rpi>
- Comprobar si ya tenemos generados el par de llaves pública/privada:
Si intentais loguear ahora por ssh, lo hareis automaticamente.
En el archivo /etc/ssh/sshd_config
buscad y setead a 'no' las siguientes propiedades:
ChallengeResponseAuthentication = no
PasswordAuthentication = no
Y aplicamos los cambios
sudo systemctl restart sshd
De esta forma nos aseguramos de que solo el usuario pi
(o el que hayais configurado) pueda acceder, denegando el acceso a otros usuarios.