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 shEscollim 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 -dEn 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 nextcloudPer veure els logs dels contenidors per detectar problemes o errades, has de teclejar
docker logs nextcloudPer 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.