Nextcloud na OpenMediaVault w Dockerze
Nextcloud to Twój własny Dropbox/Google Drive — pliki, kalendarz, kontakty i zdjęcia trzymane na własnym serwerze, bez miesięcznego abonamentu i bez oddawania danych komuś w chmurze. Jeśli masz NAS z OpenMediaVault i Dockerem, postawisz go w kilkanaście minut. Kluczowe, żeby zrobić to dobrze: osobna baza danych, trwałe wolumeny i HTTPS przez reverse proxy.
openmediavault-compose (Docker). Katalog danych na dysku macierzy. Domena albo subdomena (np. cloud.twojadomena.pl) wskazująca na serwer, jeśli chcesz dostęp z zewnątrz.
Krok 1: docker-compose z bazą MariaDB
Nextcloud działa najlepiej z osobną bazą MariaDB (nie z domyślnym SQLite). W OMV → Services → Compose → Files dodaj stack:
services:
nextcloud-db:
image: mariadb:11
container_name: nextcloud-db
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
environment:
MYSQL_ROOT_PASSWORD: <silne_haslo_root>
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: <silne_haslo_db>
volumes:
- /srv/dev-disk-by-.../appdata/nextcloud/db:/var/lib/mysql
nextcloud:
image: nextcloud:latest
container_name: nextcloud
restart: unless-stopped
depends_on:
- nextcloud-db
ports:
- "8081:80"
environment:
MYSQL_HOST: nextcloud-db
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: <silne_haslo_db>
NEXTCLOUD_TRUSTED_DOMAINS: cloud.twojadomena.pl
volumes:
- /srv/dev-disk-by-.../appdata/nextcloud/html:/var/www/html
- /srv/dev-disk-by-.../appdata/nextcloud/data:/var/www/html/data
Podmień ścieżki i hasła. Rozdzielenie wolumenu data (pliki użytkowników) od html (aplikacja) ułatwia późniejsze backupy i aktualizacje.
Krok 2: pierwsze logowanie
Po Up wejdź na http://IP_SERWERA:8081, załóż konto administratora i wskaż połączenie z bazą (host nextcloud-db, baza/user/hasło jak w compose). Kreator dokończy instalację.
Krok 3: HTTPS przez reverse proxy
Nie wystawiaj Nextclouda po HTTP. Postaw przed nim reverse proxy (nginx/Traefik/Caddy) z certyfikatem. Ważne nagłówki i przekierowania, żeby Nextcloud nie zgłaszał ostrzeżeń bezpieczeństwa:
location / {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 0; # duze pliki (upload)
}
W config/config.php dopisz zaufane proxy i protokół, żeby generowane linki były po HTTPS:
'trusted_proxies' => ['192.168.100.98'],
'overwriteprotocol' => 'https',
'overwrite.cli.url' => 'https://cloud.twojadomena.pl',
Krok 4: backup
Własna chmura ma sens tylko z backupem. Do skopiowania są trzy rzeczy: katalog data (pliki), katalog html (konfiguracja) i zrzut bazy:
docker exec nextcloud-db mysqldump -u nextcloud -p<haslo> nextcloud > nextcloud-db-$(date +%F).sql
Backup rób z włączonym trybem konserwacji (occ maintenance:mode --on) albo w nocy przy minimalnym ruchu.
NAS albo mini-PC z dyskiem na dane
Nextcloud lubi trochę RAM-u (2 GB+) i szybki dysk na bazę. Wygodny zestaw to mini-PC N100 z dyskiem SSD na system/bazę i większym HDD/SSD na pliki użytkowników.
Zobacz NAS i mini-PC ›Podsumowanie
- Używaj MariaDB, nie SQLite — Nextcloud działa wtedy stabilnie przy większym użyciu.
- Rozdziel wolumeny
dataihtml; trzymaj je na dysku, nie w kontenerze. - Zawsze HTTPS przez reverse proxy +
trusted_proxiesioverwriteprotocol. - Backup = pliki + konfiguracja + zrzut bazy; najlepiej automatycznie.
Zobacz też: AdGuard Home w Dockerze na OMV.