Instalación de Nextcloud
Introducción: por qué Nextcloud
Dende fai algún tempo estame a amolar, cada vez máis,
esta guerra polos nosos datos que teñen as compañías.
Hoxe en día é raro atopar xente que non teña conta de Gmail,
que non use o seu calendario, á nube, etc. O mesmo ocorre,
pero nunha porcentaxe máis pequena no caso dos productos de
Apple. E isto xa sen falar dos casos máis descarados como
os de Meta, X, etc.
Hoxe en día estas empresas saben máis de nós cas nosas
familias e amizades. Sobre todo dende que a comodidade
pesa máis ca privacidade. Agora a xente adícase a meter
na casa Alexas, Google Homes, etc. Pero o que moita xente
descoñece ou prefire ignorar, é que estes aparellos están
permanentemente á escoita. E xa non falo de que haxa unha
IA por detrás analizando o que dicimos para ofrecernos
anuncios personalizados ou facer calquera outra cousa co
que saben de nós. Falo de que esas conversas, con motivo
de mellorar a comprensión, serán escoitadas por xente.
Polo que en ocasións xente das empresas de seguridade,
recomendan non falar de cartos ou de información sensible,
diante destes altofalantes. Xa que aínda que se firman
contratos de confidencialidade, pode ocorrer que algún
empregado caia na tentación de aproveitarse desa información.
Máis información disto neste artigo de Business Insider, no que entrevistan a Candace Worley, vicepresidenta de McAffee.
Por este motivo tan só teño na casa un teléfono Android,
hoxe en día case obrigatorio, polos grupos de empresa,
familia, etc. Se ven tento telo ubicado nun punto da casa,
e non levalo comigo no fogar. E agora seguindo con esta
xeira de artigos sobre servizos autoaloxados, preténdome
desligar de cada vez máis servizos fornecidos polas compañías,
que nos “regalan” as súas aplicacións de balde.
Se ata o de agora xa metín un buscador que non deixará rastro
das buscas, que me permite acceder ás versións das webs almacenadas en
archive.org, para evitar no posible as cookies de rastrexo.
Ou Invidious, que me permite tamén acceder aos contidos de
Youtube sen precisar dunha conta, evitando o xogo sucio de
Alphabet, disparando o custo de procesador ou metendo retardos,
no caso de utilizar Firefox, máis información disto nestes
artigos Genbeta,
Softzone,
El chapuzas informático.
Agora o turno chégalle ás citas, fotos e arquivos. Nunca utilicei
Google Drive para almacenar información, pero si que usei
Dropbox. Certo é que hai opcións de usar estes servizos,
de xeito que non se poida acceder á nosa información.
Como cifrar dita información, pero non é algo cómodo para
o uso cotían.
Así que hoxe o que vou presentar é Nextcloud. Unha aplicación,
de software libre, que nos permitirá entre outras cousas,
ter o noso propio calendario, a nosa nube de fotos e arquivos,
contactos, notas, etc. Sen depender de terceiros.
Así que, xa postos en contexto, imos ver como instalar esta aplicación.
Instalar Nextcloud con Docker
Unha vez máis polas ventaxas que ofrece, vou facer uso de docker. Así pois xeraremos unha serie de contenedores e servizos para botalo a andar. Neste caso teremos catro servizos configurados, unha base de datos MariaDB, un Redis, Nextcloud e outro máis para un cron.
Para as bases de datos podemos escoller entre Sqlite, MariaDB ou PostgreSQL. No meu caso escollín MariaDB, pola familiaridade.
Dito isto o docker-compose.yaml, quedaría deste xeito:
services:
nextcloud_db:
image: mariadb:11.2.3
container_name: nextcloud-database
init: true
hostname: nextcloud-database
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
networks:
- nextcloud_network
volumes:
- $NEXTCLOUD_DATA_PATH/db_data:/var/lib/mysql
environment:
- MARIADB_ROOT_PASSWORD
- MARIADB_USER
- MARIADB_PASSWORD
- MARIADB_DATABASE
- MARIADB_HOST
restart: unless-stopped
nextcloud_redis:
image: redis:alpine3.19
container_name: nextcloud-redis
init: true
hostname: nextcloud-redis
networks:
- nextcloud_network
volumes:
- $NEXTCLOUD_DATA_PATH/redis_data:/data
restart: unless-stopped
nextcloud:
image: nextcloud:28.0.2
container_name: nextcloud
init: true
hostname: nextcloud
networks:
- nextcloud_network
- proxy
volumes:
- $NEXTCLOUD_DATA_PATH/data:/var/www/html:z
- ./php-fpm/php-fpm-www.conf:/usr/local/etc/php-fpm.d/www.conf:ro
environment:
- OVERWRITECLIURL
- NEXTCLOUD_TRUSTED_DOMAIN:$NEXTCLOUD_DOMAIN_NAME
- REDIS_HOST
- OVERWRITEPROTOCOL
- OVERWRITEHOST
- OVERWRITEWEBROOT=${OVERWRITEWEBROOT}
- TRUSTED_PROXIES
- APACHE_DISABLE_REWRITE_IP
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.nextcloud.entrypoints=http"
- "traefik.http.routers.nextcloud.rule=Host(`${NEXTCLOUD_DOMAIN_NAME:-localhost}`)"
# Limit per minute calls
- "traefik.http.middlewares.nextcloud.ratelimit.average=100"
- "traefik.http.middlewares.nextcloud.ratelimit.burst=50"
depends_on:
- nextcloud_db
- nextcloud_redis
cron:
image: nextcloud:stable-fpm
container_name: nextcloud-cron
networks:
- nextcloud_network
volumes:
- $NEXTCLOUD_DATA_PATH/data:/var/www/html:z
entrypoint: /cron.sh
restart: unless-stopped
depends_on:
- nextcloud_db
- nextcloud_redis
networks:
nextcloud_network:
name: nextcloud_network
driver: bridge
external: false
proxy:
name: proxy
external: true
Agora explicarei cada parte. O primeiro, como se pode ver, estou collendo versións específicas das aplicacións. Nos propios exemplos de Nextcloud ven así, e ten senso. No caso de coller as versións latest, podería ocorrer que a versión de MariaDB non fose compatible con Nextcloud, o mesmo para Redis, etc. Así que acóllome ás que eles din que son compatibles.
Puntos a destacar da configuración.
- No servizo de nextcloud_db, vemos que se lanza un comando. Este comando indica parámetros de inicio do servizo.
- –transaction-isolation=READ-COMMITTED só permite ler as liñas que xa foron almacenadas. Non as liñas de transaccións en curso.
- –log-bin=binlog, activa o rexistro binario, para recuperación de erros, copias de seguridade, etc.
- –binlog-format=ROW, define o formato do binlog. Neste caso ROW almacenará os datos de antes e despois dos cambios.
- Vemos que todo-los servizos teñen a rede nextcloud_network, pero só Nextcloud ten a rede proxy, que é a de Traefik. Isto é porque só a web será accesible dende fora, non o resto de servizos. Pero como teñen que ser interoperables, todos eles comparten unha rede común.
- No caso do servizo de Nextcloud, nas variables de entorno, definimos o seguinte:
- OVERWRITECLIURL sobrescribimos a url á que imos acceder.
- NEXTCLOUD_TRUSTED_DOMAIN indicamos de que dominios nos fiamos para recibir peticións.
- OVERWRITEPROTOCOL sobrescribimos o protocolo a utilizar, de momento eu utilizarei HTTP.
- OVERWRITEWEBROOT sobrescribimos a raíz da url.
- TRUSTED_PROXIES indicamos de cales proxies nos fiamos, no meu caso será Traefik.
- APACHE_DISABLE_REWRITE_IP evita que se sobrescriba a IP que fixo a petición, se non veríamos sempre a que nos chegue de Traefik.
Este sería o .env do Nextcloud.
MARIADB_ROOT_PASSWORD=password
MARIADB_PASSWORD=password
MARIADB_USER=nextcloud
MARIADB_DATABASE=nextcloud
MARIADB_HOST=db
REDIS_HOST=nextcloud-redis
OVERWRITEPROTOCOL=http
TRUSTED_PROXIES=192.168.68.0/24 # Allows to get from traefik the requester ip
APACHE_DISABLE_REWRITE_IP=1
OVERWRITEHOST=nextcloud.raspberry.local:8081 # proxy hostname
NEXTCLOUD_DOMAIN_NAME=nextcloud.raspberry.local
NEXTCLOUD_PATH_NAME=nextcloud
NEXTCLOUD_DATA_PATH=../../nextcloud
OVERWRITEWEBROOT=/nextcloud
NEXTCLOUD_PORT=8081
Como xa expliquei no artigo de Pi-hole, o anterior, as configuracións de Nextcloud, xéranse ao acceder por primeira vez. Polo que se queremos mudar o punto de entrada e demais, teremos que facer isto primeiro. No meu caso como vou traballar con subdominios, xa non teño que parar outros servizos para poder facelo. O que fixo isto máis cómodo e rápido.
Nextcloud Primer acceso
A primeira vez que accedamos a Nextcloud, teremos que crear a conta de administrador, escoller base de datos e o cartafol para os datos. Este último non o vou tocar, porque xa está vinculado a un volume onde eu quero. Internamente dame igual onde o almacene.

Despois de configuralo presentaranos unha lista cas aplicacións recomendadas para instalar. Algunha delas pode ter senso se lle damos un uso en internet, pero pouco nunha intranet.

Xa despois de omitir esta pantalla, xa que prefiro escoller o que instalo. Chegamos á pantalla de benvida, na que veremos o noso estado. No caso de ter varios usuarios conectados, poden ver se estamos en liña. Se acaso tivésemos talks, saberían se poden contactar. Vemos tamén unha serie de ficheiros recomendados, neste caso veñen ca instalación da aplicación. E podemos ver que trae un engado para o tempo que fai, neste caso xa marquei a miña localización. O apartado de próximos eventos, é porque xa instalei o calendario. Se non, non aparecería.
Nextcloud Instalando aplicacións
Falando de instalar cousas, xa que instalei o calendario, imos ver como instalar outras aplicacións. Tendo en conta que non tiven moito tempo para ver as que hai. Así que prácticamente me limitarei ás recomendadas, sen Talk ou Mail.
Para instalar aplicacións iremos arriba á dereita, ao noso avatar. E pulsaremos en aplicacións.

Isto levaranos a un listado cas aplicacións dispoñibles, divididas en seccións para a nosa comodidade. Como as activas, as desactivadas, actualizacións, destacadas, oficina, organización,etc.

Como podemos ver instalar ou eliminar aplicacións é doado. Unha vez teñamos instaladas as nosas aplicacións, podemos acceder a elas na zona superior esquerda, a través de cadanseu icono.

Neste caso accedín ao calendario, que está baleiro xa que non utilicei nada ata este punto.
Outras aplicacións que instalei, todavía por probar, son:
- Marcadores: para almacenar os meus marcadores e poder compartilos entre os meus dispositivos.
- Notas: para almacenar as notas de texto plano, tamén markdown.
- Contactos: que permite engadir contactos e agrupalos. Con opción a importalos dende un ficheiro. Exportei os de Google, co seu formato CSV, pero parece que non é o que espera. Non da erro, pero non importa nada. A opción que me funcionou foi a de exportar para vCard de iOS.
- Gabeta: unha sorte de taboleiro kanban.
- Tarefas: semella ser outra vista das tarefas anotadas en Gabeta.
Unhas das cousas que me fixei é que as aplicacións interactúan. Por exemplo as tarefas que teño en Gabeta, aparecen tamén en Tarefas ou no calendario, se teñen data.

Nextcloud en varios dispositivos
Todo isto está moi ben, acceder a través da web e fedellar. Pero que pasa co móbil, ou se quero subir ficheiros.
Para subir arquivos pola web, simplemente imos ao cartafol e arrastramos os ficheiros que queiramos. Tamén podemos pulsar en Novo e escoller subir ficheiros. Indica unha mensaxe tamén que sincronice cos dispositivos. O cal parece ser que actuaría ao igual que Dropbox. Marcaríamos un cartafol que se mantería sincronizado entre dispositivos. Pero isto verémolo máis adiante.
Nextcloud no móbil

Nas imaxes de enriba podemos ver dúas aplicacións móbiles. A primeira é Nextcloud e a seguinte a aplicación de notas. Con elas poderemos conectar ao noso servidor, co usuario que teñamos creado e traballar.
No caso dos ficheiros funciona igual que calquer outra aplicación. Seleccionamos os que queiramos e compartimos, escollemos a aplicación de Nextcloud e xa nos amosa os directorios onde podemos gardalas.

A aplicación de notas tamén é sinxela. Dámoslle a crear nota, e comezamos a escribir, recordando que podemos usar markdown. Automáticamente as notas serán sincronizadas ca nosa nube. Unha das cousas que notei cando o probaba, é que admite edición simultánea. Marcando na pantalla cun cursor doutra cor, onde está a editar a outra persoa. Neste caso, ao principio, podemos ver un cursor verde que é o do meu usuario na web.

Co tempo irei vendo outras aplicacións, como a de contactos, ou o calendario. Pero de momento prefiro manter o artigo curto.
Conclusión e peche
Levaba xa algún tempo querendo escribir este artigo, pero foíseme atrasando por problemas que me ía atopando. Como o problema cas rutas que dou pé a instalación de Pi-hole. Agora que o teño instalado e funcionando, estou desexando probar as utilidades que trae. Para ver se me podo ir desligando, das aplicacións de terceiros e ir tendo algo máis de soberanía dos meus datos.
Ata o de agora non puiden probar demasiado, tamén é certo que aínda non estou preparado para mover toda a miña información aquí. Primeiro teño que montar algún sistema de copias de seguridade. Non quero que en calquer momento tendo xigas de información almacenada, o disco rompa e queden sen nada.
En calquer caso, irei engadindo información sobre aplicacións que vaia probando e sua utilidade.
Así que neste momento estou emocionado, vendo que as cousas van saíndo e que en breve irei tendo máis servizos para xestionar a información que manexo. Pero sobre todo agora que xa teño os básicos instalados, xa podo ir pensando en engadir servicios propios. Xa sexan bots para controlar os dispositivos conectados na rede, a temperatura da Raspberry, etc. Pero sobre todo montar algún proxecto, maior de aplicación web con distintos frontais.
Artigos Relacionados:
- Sincronizar Merkuro calendar con Nextcloud
- Instalación de News en Nextcloud
- Instalación de GPodder Sync en Nextcloud
- Actualizar Nextcloud en Docker
- Sincronizar Merkuro calendar con Nextcloud
- Recuperar ficheiros dun backup con Borgbackup
- Actualizar Invidious despois de que me dese erro bastante tempo
- Instalación de News en Nextcloud
- Instalación de GPodder Sync en Nextcloud
- Actualizar Nextcloud en Docker
- Configuración de Calibre web auto aloxado con Traefik
- Configuración de Jellyfin auto aloxado con Traefik
- Copias de seguridade con Borgbackup
- Controlar la temperatura del equipo con bash y telegram
- Instalación de Pi-hole
- Configuración de Invidious auto aloxado con Traefik
- Configuración de SearXNG auto aloxado con Traefik
- Cómo instalar Traefik con docker
- Instalando docker en modo rootless en Debian
- Instalando Jekyll con Docker