Servidor Nextcloud + Collabora Online: diferència entre les revisions
De FFAWiki
Cap resum de modificació |
|||
| Línia 1: | Línia 1: | ||
= Passos Previs = | = Passos Previs = | ||
== Crear una base de dades i usuari MySQL per Nextcloud == | == Crear una base de dades i usuari MySQL per Nextcloud (en cas de no utilitzar un contenirdor com a base de dades) == | ||
== 1. Accedir a MySQL com a root == | == 1. Accedir a MySQL com a root == | ||
| Línia 211: | Línia 211: | ||
nextcloud_data: | nextcloud_data: | ||
</pre> | </pre> | ||
= Comandes útils de Docker Compose = | |||
== 1. Llençar tots els serveis == | |||
<pre> | |||
docker compose up -d | |||
</pre> | |||
* `-d` fa que s’executi en background. | |||
== 2. Parar tots els serveis == | |||
<pre> | |||
docker compose down | |||
</pre> | |||
== 3. Veure l’estat dels serveis == | |||
<pre> | |||
docker compose ps | |||
</pre> | |||
== 4. Veure els logs == | |||
<pre> | |||
docker compose logs | |||
docker compose logs -f # Seguir els logs en temps real | |||
</pre> | |||
== 5. Reiniciar un servei concret == | |||
<pre> | |||
docker compose restart nextcloud | |||
docker compose restart collabora | |||
</pre> | |||
== 6. Accedir a un contenidor == | |||
<pre> | |||
docker compose exec nextcloud bash | |||
docker compose exec db bash | |||
</pre> | |||
* Permet entrar dins del contenidor per fer configuracions o consultes. | |||
== 7. Actualitzar les imatges i reiniciar == | |||
<pre> | |||
docker compose pull | |||
docker compose up -d | |||
</pre> | |||
* Baixa les últimes versions de les imatges i reinicia els serveis. | |||
== 8. Veure els volums i eliminar-los == | |||
<pre> | |||
docker volume ls | |||
docker volume rm nom_volum | |||
</pre> | |||
== Notes == | |||
* Sempre és millor parar serveis amb `docker compose down` abans de modificar `docker-compose.yml`. | |||
* Amb `docker compose logs -f` pots depurar errors de Nextcloud o Collabora en temps real. | |||
Revisió del 15:11, 13 ago 2025
Passos Previs
Crear una base de dades i usuari MySQL per Nextcloud (en cas de no utilitzar un contenirdor com a base de dades)
1. Accedir a MySQL com a root
sudo mysql
2. Crear la base de dades
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- Substitueix `nextcloud` pel nom que vulguis per la base de dades.
3. Crear un usuari amb contrasenya
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'supersecret';
- Substitueix `nextclouduser` i `supersecret` per l’usuari i contrasenya que vulguis.
4. Concedir tots els permisos sobre aquesta base de dades
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
5. Aplicar els canvis
FLUSH PRIVILEGES;
6. Comprovar
SHOW DATABASES; SELECT User, Host FROM mysql.user;
Notes
- Aquest usuari tindrà permisos només sobre la base de dades `nextcloud`.
- No necessita permisos globals de root, augmentant la seguretat.
Instal·lació de Nextcloud + Collabora amb Docker Compose
1. Preparar el projecte
mkdir ~/nextcloud-docker cd ~/nextcloud-docker
2. Crear fitxer docker-compose.yml
version: "3.8"
services:
traefik:
image: traefik:v3.0
container_name: traefik
restart: unless-stopped
command:
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.email=tuemail@domini.com"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "traefik_letsencrypt:/letsencrypt"
db:
image: mariadb:10.11
container_name: nextcloud-db
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
environment:
MYSQL_ROOT_PASSWORD: supersecretroot
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: supersecret
volumes:
- db_data:/var/lib/mysql
nextcloud:
image: nextcloud:27
container_name: nextcloud-app
restart: unless-stopped
environment:
MYSQL_PASSWORD: supersecret
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_HOST: db
volumes:
- nextcloud_data:/var/www/html
labels:
- "traefik.enable=true"
- "traefik.http.routers.nextcloud.rule=Host(`cloud.tudomini.com`)"
- "traefik.http.routers.nextcloud.entrypoints=websecure"
- "traefik.http.routers.nextcloud.tls.certresolver=myresolver"
- "traefik.http.services.nextcloud.loadbalancer.server.port=80"
depends_on:
- db
collabora:
image: collabora/code
container_name: collabora
restart: unless-stopped
environment:
- domain=cloud\\.tudomini\\.com
- username=admin
- password=supersecret
- extra_params=--o:ssl.enable=false
labels:
- "traefik.enable=true"
- "traefik.http.routers.collabora.rule=Host(`office.tudomini.com`)"
- "traefik.http.routers.collabora.entrypoints=websecure"
- "traefik.http.routers.collabora.tls.certresolver=myresolver"
- "traefik.http.services.collabora.loadbalancer.server.port=9980"
volumes:
db_data:
nextcloud_data:
traefik_letsencrypt:
3. Llençar els serveis
docker compose up -d
4. Configurar Nextcloud per Collabora
- Accedir a Nextcloud: https://cloud.tudomini.com
- Instal·lar l'app Collabora Online des del Nextcloud App Store.
- Configurar l’URL de Collabora: https://office.tudomini.com
Nextcloud + Collabora sense domini
1. Accés mitjançant IP
- Pots accedir a Nextcloud i Collabora utilitzant l'adreça IP pública o privada del servidor.
- Exemple: http://192.168.1.100:8080
- No podràs obtenir certificats SSL de Let's Encrypt sense un domini.
2. Certificat auto-signat
- Pots generar un certificat TLS auto-signat per habilitar HTTPS.
- Exemple per generar-lo:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout selfsigned.key -out selfsigned.crt
- Hauràs d'indicar aquest certificat a Traefik o directament a Collabora i Nextcloud.
- Els navegadors mostraran un avís de “no fiable” perquè no és signat per una CA pública.
3. Editar Traefik o Docker Compose
- Substitueix els hostnames (`cloud.tudomini.com`, `office.tudomini.com`) per la IP del servidor.
- Desactiva o no utilitzis `certresolver` si no tens un domini.
4. Consideracions pràctiques
- Sense domini, no pots utilitzar Let’s Encrypt automàticament.
- Algunes funcions com Collabora Online poden requerir configurar l’IP a la llista de domini permesos.
- Pots sempre configurar un domini local (`/etc/hosts`) per provar el sistema sense comprar un domini.
4. Fitxer docker-compose.yml sense domini
version: "3.8"
services:
db:
image: mariadb:10.11
container_name: nextcloud-db
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
environment:
MYSQL_ROOT_PASSWORD: supersecretroot
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: supersecret
volumes:
- db_data:/var/lib/mysql
nextcloud:
image: nextcloud:27
container_name: nextcloud-app
restart: unless-stopped
environment:
MYSQL_PASSWORD: supersecret
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_HOST: db
volumes:
- nextcloud_data:/var/www/html
ports:
- "8080:80"
depends_on:
- db
collabora:
image: collabora/code
container_name: collabora
restart: unless-stopped
environment:
- domain=192\\.168\\.1\\.100
- username=admin
- password=supersecret
- extra_params=--o:ssl.enable=false
ports:
- "9980:9980"
volumes:
db_data:
nextcloud_data:
Comandes útils de Docker Compose
1. Llençar tots els serveis
docker compose up -d
- `-d` fa que s’executi en background.
2. Parar tots els serveis
docker compose down
3. Veure l’estat dels serveis
docker compose ps
4. Veure els logs
docker compose logs docker compose logs -f # Seguir els logs en temps real
5. Reiniciar un servei concret
docker compose restart nextcloud docker compose restart collabora
6. Accedir a un contenidor
docker compose exec nextcloud bash docker compose exec db bash
- Permet entrar dins del contenidor per fer configuracions o consultes.
7. Actualitzar les imatges i reiniciar
docker compose pull docker compose up -d
- Baixa les últimes versions de les imatges i reinicia els serveis.
8. Veure els volums i eliminar-los
docker volume ls docker volume rm nom_volum
Notes
- Sempre és millor parar serveis amb `docker compose down` abans de modificar `docker-compose.yml`.
- Amb `docker compose logs -f` pots depurar errors de Nextcloud o Collabora en temps real.
