En aquesta entrada us mostraré com fer una instal·lació de Nextcloud amb la base de dades MariaDB tot darrere un proxy invers, protegit amb Let’s encrypt i usant la tecnologia de contenidors Docker.
Bàsicament, aquest post és per compartir el que m’he trobat i bàsicament és una documentació.
Per fer aquesta instal·lació, anem a fer una llista del que necessitem:
- Servidor gnu/linux amb accés root o un usuari amb permisos d’administrador.
- Docker.
Passes a seguir:
Instal·lació de Docker
Si ja tens docker instal·lat al servidor, simplement pots passar al següent punt.
En primer lloc, assegurar-nos que tenim el docker instal·lat. En cas que no ho tinguem, podem seguir les pautes que trobareu a https://docs.docker.com/engine/install/#server La forma més senzilla d’instal·lació és usar el següent script:
curl -fsSL https://get.docker.com | sudo sh
Escollim el que volem instal·lar, ens decantarem per LinuxServer.io
Per facilitar la instal·lació del sistema, usarem les imatges de LinuxServer.io, podem trobar-les a fleet.linuxserver.io Nosaltres instal·larem nextcloud, mariadb i swag tot junt mitjançant docker compose. A continuació teniu el docker-compose.yaml que vaig crear per aixecar els contenidors:
services:
nextcloud:
image: lscr.io/linuxserver/nextcloud:latest
container_name: nextcloud
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Madrid
volumes:
- /opt/appdata/nextcloud/config:/config
- /mnt/nextcloud-data:/data
depends_on:
- mariadb
restart: unless-stopped
mariadb:
image: lscr.io/linuxserver/mariadb:latest
container_name: mariadb
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Madrid
- MYSQL_ROOT_PASSWORD=XXXXXXXX
- MYSQL_DATABASE=NomDeLaBD
- MYSQL_USER=UsuariBD
- MYSQL_PASSWORD=***********
volumes:
- /opt/appdata/mariadb-nextcloud/config:/config
ports:
- 3306:3306
restart: unless-stopped
swag:
image: lscr.io/linuxserver/swag
container_name: swag
cap_add:
- NET_ADMIN
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Madrid
- URL=elmeudomini.cat
- VALIDATION=http
- EMAIL=xxxx@xxxx.com
volumes:
- /opt/appdata/swag-ssl/config:/config
ports:
- 443:443
- 80:80
restart: unless-stopped
Explicarem un poc el que fa aquest fitxer.
Es creen tres serveis, Nextcloud el que ens interessa, MariaDB el motor de base de dades que usarem per persistir les dades dels usuaris (no els fitxers) i Swag el qual ens servirà de proxy invers i a més gestionarà els certificats SSL de Let’s Encrypt. Per saber com funciona de forma més estesa, podeu visitar el web de docs.LinuxServer.io on ho expliquen. També teniu una explicació molt sòlida del perquè crear volums per persistir les dades a disc, ho teniu a https://docs.linuxserver.io/general/volumes/
Aixequem els serveis
A partir d’aquí, una vegada tenim el fitxer, simplement hem de teclejar el següent
docker compose up -d
En pocs segons tindreu el sistema funcionant.
A partir d’aquí pots accedir al domini que tenguis configurat al paràmetre URL del servei swag, i si tot ha anat bé, veuràs la pàgina de configuració del Nextcloud.
Una vegada configurat, reinicia el contenidor de Nextcloud i ja tindràs el sistema configurat.
docker restart nextcloud
Per veure els logs dels contenidors per detectar problemes o errades, has de teclejar
docker logs nextcloud
Per revisar els logs dels programes, pots accedir a /opt/appdata, ja que hem creat els volums i els hem persistit dins /opt/appdata
En principi ja ho tenim, és senzill, tindràs un sistema madur i les teves dades seran teves.