Ostrzeżenia bezpieczeństwa i konfiguracji
Poprawna konfiguracja jest ważna dla bezpieczeństwa i wydajności Twojej instancji. W celach pomocniczych przeprowadzane jest automatyczne sprawdzanie. Więcej informacji możesz znaleźć w dokumentacji.
- WebSocket server URL is not configured. Real-time collaboration requires a separate WebSocket server. Basic whiteboard functionality works without it. Więcej informacji można znaleźć w dokumentacji ↗.
- Brak skonfigurowanego zaplecza o wysokiej wydajności – Uruchomienie Nextcloud Talk bez zaplecza o wysokiej wydajności jest skalowalne tylko dla bardzo małych połączeń (maks. 2–3 uczestników). Skonfiguruj zaplecze o wysokiej wydajności, aby zapewnić bezproblemową pracę połączeń z wieloma uczestnikami. Więcej informacji można znaleźć w dokumentacji ↗.
Rozumiem, że chcesz rozwiązać dwa problemy z ostrzeżeniami bezpieczeństwa i konfiguracji Nextcloud na systemie TrueNAS SCALE:
- WebSocket server URL is not configured – brak skonfigurowanego serwera WebSocket dla aplikacji Whiteboard.
- Brak zaplecza o wysokiej wydajności (HPB) – brak skonfigurowanego zaplecza dla Nextcloud Talk, co ogranicza połączenia do 2–3 uczestników.
Poniżej przedstawiam instrukcje rozwiązania tych problemów, dostosowane do TrueNAS SCALE (w wersji 24.04 lub nowszej, używającej Dockera). Każda komenda będzie wyraźnie oznaczona, wskazując, gdzie należy ją wykonać: w powłoce systemowej TrueNAS, w Dockerze lub w kontenerze Dockera. Zakładam, że Nextcloud jest już zainstalowany jako aplikacja w TrueNAS SCALE.
Przygotowanie środowiska
Wymagania wstępne:
- TrueNAS SCALE: Wersja 24.04 (Dragonfish) lub nowsza.
- Dostęp do powłoki systemowej: Włączony dostęp SSH (System > Advanced > Enable SSH) lub użyj interfejsu webowego TrueNAS (System > Shell).
- Nextcloud: Zainstalowany jako aplikacja z TrueNAS Apps, z dostępem do datasetów (np. nextcloud/userdata, nextcloud/postgres, nextcloud/appdata).
- Certyfikat SSL: Skonfigurowany dla domeny (np. za pomocą Let’s Encrypt w Nginx Proxy Manager lub Traefik).
- Domena: Np. nextcloud.twojadomena.pl dla dostępu zewnętrznego.
- Uprawnienia: Upewnij się, że dataset nextcloud ma uprawnienia dla użytkownika www-data (UID: 33) lub użytkownika aplikacji (np. UID: 568).
Dostęp do powłoki systemowej:
- W interfejsie TrueNAS przejdź do System > Shell lub włącz SSH i zaloguj się:bashssh root@<IP_SERWERA>
- Sprawdź, czy Docker jest aktywny:(Wykonaj w powłoce systemowej TrueNAS).bashdocker –version
Dostęp do kontenera Nextcloud:
- Znajdź nazwę kontenera Nextcloud:(W powłoce systemowej TrueNAS). Nazwa kontenera będzie podobna do ix-nextcloud-nextcloud-1.bashdocker ps
- Wejdź do powłoki kontenera:(Wykonaj w powłoce systemowej TrueNAS).bashdocker exec -it ix-nextcloud-nextcloud-1 /bin/bash
Problem 1: WebSocket server URL is not configured
Ten problem dotyczy aplikacji Whiteboard, która wymaga osobnego serwera WebSocket dla współpracy w czasie rzeczywistym. W TrueNAS SCALE uruchomimy serwer WebSocket w osobnym kontenerze Docker.
Kroki rozwiązania:
- Utwórz dataset dla serwera WebSocket:
- W interfejsie TrueNAS przejdź do Datasets.
- W puli (np. tank) utwórz nowy dataset: nextcloud/whiteboard.
- Ustaw uprawnienia:
- Owner: www-data (UID: 33) lub użytkownik aplikacji (np. UID: 568).
- Permissions: Read/Write/Execute.
- Zainstaluj serwer WebSocket w osobnym kontenerze:
- W powłoce systemowej TrueNAS utwórz plik docker-compose.yml dla serwera WebSocket:(Wykonaj w powłoce systemowej TrueNAS).bashmkdir /mnt/tank/nextcloud/whiteboardnano /mnt/tank/nextcloud/whiteboard/docker-compose.yml
- Wklej następującą konfigurację:yamlversion: '3′services:whiteboard:image: node:20container_name: nextcloud_whiteboardrestart: alwaysvolumes:– /mnt/tank/nextcloud/whiteboard:/appworking_dir: /appcommand: >/bin/bash -c „npm install @nextcloud/whiteboard &&npm start”ports:– 3002:3002
- Zapisz i uruchom kontener:(Wykonaj w powłoce systemowej TrueNAS).bashcd /mnt/tank/nextcloud/whiteboarddocker-compose up -d
- W powłoce systemowej TrueNAS utwórz plik docker-compose.yml dla serwera WebSocket:
- Skonfiguruj reverse proxy dla WebSocket:
- Zakładam, że używasz Nginx Proxy Manager lub Traefik jako reverse proxy w TrueNAS SCALE.
- W Nginx Proxy Manager:
- Przejdź do Apps > Installed Applications > Nginx Proxy Manager > Manage.
- Dodaj nowy Proxy Host:
- Domain Names: whiteboard.twojadomena.pl lub nextcloud.twojadomena.pl.
- Scheme: http.
- Forward Hostname/IP: Adres IP TrueNAS (np. 192.168.0.47).
- Forward Port: 3002.
- Włącz WebSocket Support (przełącznik w interfejsie).
- Dodaj certyfikat SSL (np. Let’s Encrypt).
- Zapisz zmiany.
- Jeśli używasz Traefik, dodaj konfigurację w pliku docker-compose.yml dla Traefik:yamllabels:– „traefik.enable=true”– „traefik.http.routers.whiteboard.rule=Host(`whiteboard.twojadomena.pl`)”– „traefik.http.routers.whiteboard.entrypoints=websecure”– „traefik.http.services.whiteboard.loadbalancer.server.port=3002”– „traefik.http.routers.whiteboard.tls.certresolver=letsencrypt”
- Zrestartuj Traefik:(Wykonaj w powłoce systemowej TrueNAS).bashdocker-compose -f /path/to/traefik/docker-compose.yml up -d
- Zrestartuj Traefik:
- Ustaw adres WebSocket w Nextcloud:
- Zaloguj się do Nextcloud jako administrator.
- Przejdź do Ustawienia > Aplikacje > Whiteboard.
- W polu WebSocket server URL wprowadź: wss://whiteboard.twojadomena.pl/whiteboard lub wss://nextcloud.twojadomena.pl:3002/whiteboard.
- Zapisz zmiany.
- Testowanie:
- W powłoce systemowej TrueNAS sprawdź dostępność serwera WebSocket:(Zastąp 192.168.0.47 adresem IP TrueNAS).bashcurl -v http://192.168.0.47:3002/whiteboard
- Oczekiwana odpowiedź to kod HTTP 200.
- W Nextcloud przetestuj aplikację Whiteboard, tworząc nową tablicę i sprawdzając współpracę w czasie rzeczywistym.
- W powłoce systemowej TrueNAS sprawdź dostępność serwera WebSocket:
Uwagi:
- Jeśli serwer WebSocket nie działa, sprawdź logi kontenera:(Wykonaj w powłoce systemowej TrueNAS).bashdocker logs nextcloud_whiteboard
- Upewnij się, że port 3002 jest otwarty w firewallu TrueNAS:(Wykonaj w powłoce systemowej TrueNAS, jeśli masz włączony firewall).bashufw allow 3002/tcp
Problem 2: Brak zaplecza o wysokiej wydajności (HPB)
Nextcloud Talk wymaga zaplecza o wysokiej wydajności (HPB) dla połączeń z więcej niż 2–3 uczestnikami. HPB składa się z serwera sygnalizacyjnego i bramki WebRTC (Janus). W TrueNAS SCALE uruchomimy je w kontenerach Docker.
Kroki rozwiązania:
- Utwórz dataset dla HPB:
- W interfejsie TrueNAS przejdź do Datasets.
- W puli (np. tank) utwórz nowy dataset: nextcloud/talk-hpb.
- Ustaw uprawnienia:
- Owner: www-data (UID: 33) lub użytkownik aplikacji (np. UID: 568).
- Permissions: Read/Write/Execute.
- Zainstaluj serwer sygnalizacyjny:
- W powłoce systemowej TrueNAS utwórz plik docker-compose.yml dla serwera sygnalizacyjnego:bashmkdir /mnt/tank/nextcloud/talk-hpbnano /mnt/tank/nextcloud/talk-hpb/docker-compose.yml
- Wklej konfigurację:yamlversion: '3′services:signaling:image: golang:1.21container_name: nextcloud_signalingrestart: alwaysvolumes:– /mnt/tank/nextcloud/talk-hpb:/appworking_dir: /appcommand: >/bin/bash -c „git clone https://github.com/strukturag/nextcloud-spreed-signaling.git &&cd nextcloud-spreed-signaling &&make build &&cp server.conf.in server.conf &&sed -i 's/listen = .*/listen = 0.0.0.0:8080/’ server.conf &&sed -i 's/hashkey = .*/hashkey = $(openssl rand -hex 32)/’ server.conf &&sed -i 's/blockkey = .*/blockkey = $(openssl rand -hex 32)/’ server.conf &&sed -i 's/backends = .*/backends = nextcloud-backend-0/’ server.conf &&echo '[nextcloud-backend-0]’ >> server.conf &&echo 'url = https://nextcloud.twojadomena.pl’ >> server.conf &&echo 'secret = $(openssl rand -hex 32)’ >> server.conf &&./bin/signaling”ports:– 8080:8080
- Uruchom kontener:(Wykonaj w powłoce systemowej TrueNAS).bashcd /mnt/tank/nextcloud/talk-hpbdocker-compose up -d
- W powłoce systemowej TrueNAS utwórz plik docker-compose.yml dla serwera sygnalizacyjnego:
- Zainstaluj Janus WebRTC Gateway:
- W powłoce systemowej TrueNAS utwórz osobny plik docker-compose.yml dla Janus:bashmkdir /mnt/tank/nextcloud/janusnano /mnt/tank/nextcloud/janus/docker-compose.yml
- Wklej konfigurację:yamlversion: '3′services:janus:image: meetecho/janus-gatewaycontainer_name: nextcloud_janusrestart: alwaysvolumes:– /mnt/tank/nextcloud/janus:/usr/local/etc/janusports:– 8088:8088– 8089:8089– 8188:8188– 20000-40000:20000-40000/udpenvironment:– JANUS_WEBSOCKETS=yes
- Uruchom kontener:(Wykonaj w powłoce systemowej TrueNAS).bashcd /mnt/tank/nextcloud/janusdocker-compose up -d
- Skonfiguruj Janus w pliku /mnt/tank/nextcloud/janus/janus.jcfg (możesz edytować w TrueNAS lub w kontenerze):(Wykonaj w powłoce systemowej TrueNAS, a edytuj w kontenerze).bashdocker exec -it nextcloud_janus /bin/bashnano /usr/local/etc/janus/janus.jcfg
- Włącz wtyczkę VideoRoom i transport WebSocket:inigeneral: {plugins: {janus.plugin.videoroom: true}transports: {janus.transport.websockets: true}}
- Włącz wtyczkę VideoRoom i transport WebSocket:
- W powłoce systemowej TrueNAS utwórz osobny plik docker-compose.yml dla Janus:
- Skonfiguruj reverse proxy dla HPB:
- W Nginx Proxy Manager:
- Dodaj nowy Proxy Host:
- Domain Names: signaling.twojadomena.pl lub nextcloud.twojadomena.pl.
- Scheme: http.
- Forward Hostname/IP: Adres IP TrueNAS (np. 192.168.0.47).
- Forward Port: 8080.
- Włącz WebSocket Support.
- Dodaj certyfikat SSL.
- Zapisz zmiany.
- Dodaj nowy Proxy Host:
- Dla Traefik, dodaj do docker-compose.yml serwera sygnalizacyjnego:yamllabels:– „traefik.enable=true”– „traefik.http.routers.signaling.rule=Host(`signaling.twojadomena.pl`)”– „traefik.http.routers.signaling.entrypoints=websecure”– „traefik.http.services.signaling.loadbalancer.server.port=8080”– „traefik.http.routers.signaling.tls.certresolver=letsencrypt”
- Zrestartuj Traefik:(Wykonaj w powłoce systemowej TrueNAS).bashdocker-compose -f /path/to/traefik/docker-compose.yml up -d
- Zrestartuj Traefik:
- W Nginx Proxy Manager:
- Ustaw HPB w Nextcloud:
- Zaloguj się do Nextcloud jako administrator.
- Przejdź do Ustawienia > Talk.
- W sekcji High Performance Backend:
- Signaling server: wss://signaling.twojadomena.pl/standalone-signaling/.
- Shared secret: Skopiuj klucz secret z pliku /mnt/tank/nextcloud/talk-hpb/server.conf (sprawdź w powłoce systemowej TrueNAS):bashcat /mnt/tank/nextcloud/talk-hpb/server.conf | grep secret
- Zapisz zmiany.
- Opcjonalnie: Skonfiguruj serwer TURN/STUN:
- Zainstaluj Coturn w osobnym kontenerze:bashmkdir /mnt/tank/nextcloud/coturnnano /mnt/tank/nextcloud/coturn/docker-compose.yml
- Wklej konfigurację:yamlversion: '3′services:coturn:image: coturn/coturncontainer_name: nextcloud_coturnrestart: alwaysports:– 3478:3478– 3478:3478/udpenvironment:– TURN_PORT=3478– TURN_REALM=twojadomena.pl– TURN_SECRET=turnpassword– TURN_USER=turnuser
- Uruchom kontener:(Wykonaj w powłoce systemowej TrueNAS).bashcd /mnt/tank/nextcloud/coturndocker-compose up -d
- Wklej konfigurację:
- W Nextcloud (Ustawienia > Talk) dodaj:
- STUN: signaling.twojadomena.pl:3478.
- TURN: signaling.twojadomena.pl:3478 z użytkownikiem turnuser i hasłem turnpassword.
- Zainstaluj Coturn w osobnym kontenerze:
- Testowanie:
- Sprawdź serwer sygnalizacyjny:(Wykonaj w powłoce systemowej TrueNAS, zastąp 192.168.0.47 adresem IP TrueNAS).bashcurl -i http://192.168.0.47:8080/standalone-signaling/api/v1/welcome
- Oczekiwana odpowiedź: HTTP 200 i JSON, np. {„nextcloud-spreed-signaling”:”Welcome”,”version”:”1.0.0″}.
- Przetestuj Nextcloud Talk, organizując połączenie z więcej niż 3 uczestnikami.
- Sprawdź serwer sygnalizacyjny:
Dodatkowe uwagi dotyczące TrueNAS SCALE
- Uprawnienia datasetów:
- Jeśli kontenery nie mają dostępu do datasetów, sprawdź uprawnienia:(Wykonaj w powłoce systemowej TrueNAS).bashchown -R 33:33 /mnt/tank/nextcloudchmod -R 770 /mnt/tank/nextcloud
- Alternatywnie, użyj interfejsu TrueNAS do ustawienia ACL.
- Jeśli kontenery nie mają dostępu do datasetów, sprawdź uprawnienia:
- Firewall:
- Otwórz porty w firewallu TrueNAS:(Wykonaj w powłoce systemowej TrueNAS, jeśli firewall jest aktywny).bashufw allow 3002/tcpufw allow 8080/tcpufw allow 8088/tcpufw allow 8089/tcpufw allow 8188/tcpufw allow 3478/tcpufw allow 3478/udpufw allow 20000:40000/udp
- Otwórz porty w firewallu TrueNAS:
- Logi i debugowanie:
- Sprawdź logi kontenerów, jeśli coś nie działa:(Wykonaj w powłoce systemowej TrueNAS).bashdocker logs nextcloud_whiteboarddocker logs nextcloud_signalingdocker logs nextcloud_janusdocker logs nextcloud_coturn
- Logi Nextcloud znajdziesz w kontenerze:(Wykonaj w powłoce systemowej TrueNAS).bashdocker exec -it ix-nextcloud-nextcloud-1 cat /var/www/html/data/nextcloud.log
- Sprawdź logi kontenerów, jeśli coś nie działa:
- HTTPS:
- Upewnij się, że wszystkie połączenia (Nextcloud, WebSocket, HPB) używają HTTPS. Skonfiguruj certyfikaty w Nginx Proxy Manager lub Traefik.
- Cronjobs:
- Dodaj cronjob dla Nextcloud w TrueNAS (System > Cron Jobs):(Ustaw co 15 minut).bashdocker exec -u www-data ix-nextcloud-nextcloud-1 php /var/www/html/cron.php
- Dodaj cronjob dla Nextcloud w TrueNAS (System > Cron Jobs):
Alternatywa: Nextcloud All-in-One (AIO)
Jeśli konfiguracja WebSocket i HPB jest zbyt skomplikowana, rozważ użycie Nextcloud All-in-One, które automatycznie konfiguruje wszystkie komponenty, w tym Talk i Whiteboard.
- Utwórz dataset: nextcloud/aio.
- W powłoce systemowej TrueNAS utwórz plik docker-compose.yml:bashmkdir /mnt/tank/nextcloud/aionano /mnt/tank/nextcloud/aio/docker-compose.yml
- Wklej:yamlversion: '3′services:nextcloud:image: nextcloud/all-in-one:latestcontainer_name: nextcloud_aiorestart: alwaysvolumes:– /mnt/tank/nextcloud/aio:/mnt/docker-aio-config– /var/run/docker.sock:/var/run/docker.sock:roports:– 8080:8080environment:– APACHE_PORT=11000– NEXTCLOUD_DATADIR=/mnt/tank/nextcloud/aio/data– NEXTCLOUD_MOUNT=/mnt/tank/nextcloud/aio
- Wklej:
- Uruchom:(Wykonaj w powłoce systemowej TrueNAS).bashcd /mnt/tank/nextcloud/aiodocker-compose up -d
- Otwórz http://<IP_SERWERA>:8080 w przeglądarce i postępuj zgodnie z kreatorem AIO.
Podsumowanie
- WebSocket:
- Zainstaluj serwer WebSocket w kontenerze Docker (nextcloud_whiteboard).
- Skonfiguruj reverse proxy (Nginx/Traefik) z obsługą WebSocket.
- Ustaw adres w Nextcloud (wss://whiteboard.twojadomena.pl/whiteboard).
- HPB:
- Zainstaluj serwer sygnalizacyjny (nextcloud_signaling) i Janus (nextcloud_janus) w kontenerach Docker.
- Skonfiguruj reverse proxy i opcjonalnie serwer TURN/STUN (nextcloud_coturn).
- Ustaw parametry w Nextcloud Talk.
- TrueNAS SCALE:
- Używaj datasetów z poprawnymi uprawnieniami.
- Sprawdzaj logi kontenerów w razie problemów.
- Włącz HTTPS i otwórz niezbędne porty.
Jeśli napotkasz konkretny problem (np. błąd w logach, problem z dostępem), podaj szczegóły, a pomogę go rozwiązać!