Wprowadzenie: Odzyskaj Kontrolę nad Swoją Cyfrową Półką z Książkami
W erze cyfrowej, pojęcie własności stało się płynne. Kupujemy e-booki, prenumerujemy cyfrowe magazyny i gromadzimy obszerne kolekcje dokumentów PDF, a jednak rzadko kiedy mamy nad nimi pełną kontrolę. Nasze zbiory są często rozproszone po różnych platformach i zamknięte w zastrzeżonych ekosystemach, takich jak Amazon Kindle czy Apple Books, zależne od widzimisię korporacji, które mogą w każdej chwili zmienić warunki usługi lub zniknąć z rynku. Ten przewodnik jest manifestem cyfrowej suwerenności – podróżą mającą na celu odzyskanie pełnej kontroli nad własną biblioteką i stworzenie prywatnego, bezpiecznego i eleganckiego sanktuarium dla słowa pisanego.
U podstaw naszego projektu leży potężna trójca oprogramowania open-source, która wspólnie tworzy system przewyższający funkcjonalnością wiele komercyjnych rozwiązań. Fundamentem jest TrueNAS SCALE, hiperkonwergentny system operacyjny, który przekształca domowy serwer w niezawodną fortecę dla danych. Na tym fundamencie zbudujemy Nextcloud, nasze prywatne centrum dowodzenia – wszechstronną chmurę, która pozwoli na łatwe zarządzanie, synchronizację i organizację plików naszej biblioteki z dowolnego urządzenia. Zwieńczeniem dzieła będzie Kavita, błyskawiczny i estetyczny serwer do czytania, który zamieni naszą kolekcję plików w piękną, interaktywną czytelnię, dostępną zarówno w domu, jak i w podróży.
Droga do stworzenia tego cyfrowego azylu, choć niezwykle satysfakcjonująca, jest najeżona technicznymi niuansami. Niniejszy przewodnik jest mapą tej podróży, stworzoną na podstawie rzeczywistych doświadczeń i wyzwań napotkanych podczas konfiguracji – od zawiłości uprawnień systemowych, przez izolację kontenerów, po konfigurację bezpiecznego dostępu zdalnego. Nie jest to jedynie zbiór instrukcji, ale dogłębna analiza, która ma na celu nie tylko pokazanie, jak coś zrobić, ale również wyjaśnienie, dlaczego robimy to w określony sposób. Celem jest wyposażenie czytelnika w wiedzę i pewność siebie, które pozwolą mu zbudować profesjonalny, stabilny i w pełni spersonalizowany system do zarządzania cyfrową biblioteką.
Architektura Twojego Cyfrowego Imperium: Zrozumienie Komponentów
Zanim przystąpimy do instalacji, kluczowe jest zrozumienie roli, jaką każdy z komponentów odgrywa w naszej architekturze. Wybór oprogramowania nie jest przypadkowy – tworzy ono synergiczny ekosystem, w którym każdy element specjalizuje się w swoim zadaniu, co prowadzi do powstania bardziej wydajnego i elastycznego rozwiązania niż jakikolwiek monolityczny system.
Fundament: TrueNAS SCALE – Więcej niż Dysk Sieciowy
Wielu użytkowników postrzega serwer NAS (Network Attached Storage) jako zwykły dysk sieciowy. TrueNAS SCALE wykracza daleko poza tę definicję. Jest to w pełni funkcjonalna, darmowa platforma hiperkonwergentnej infrastruktury (HCI), zbudowana na solidnych fundamentach systemu Linux (Debian). Oznacza to, że łączy w sobie dwie kluczowe funkcje: zaawansowane zarządzanie pamięcią masową oraz platformę do uruchamiania aplikacji w zwirtualizowanych środowiskach, takich jak kontenery Docker i maszyny wirtualne KVM.
Sercem i duszą TrueNAS jest system plików OpenZFS. To on stanowi o jego przewadze nad prostszymi rozwiązaniami. ZFS został zaprojektowany od podstaw z myślą o integralności i ochronie danych, oferując funkcje klasy korporacyjnej, które są teraz dostępne dla użytkowników domowych :
- Ochrona przed „cichym” uszkodzeniem danych: ZFS nieustannie weryfikuje sumy kontrolne danych, automatycznie wykrywając i naprawiając błędy, które na innych systemach plików mogłyby pozostać niezauważone aż do momentu, gdy plik stanie się nie do odczytania.
- Elastyczność i ochrona: Funkcje takie jak nielimitowane, natychmiastowe migawki (snapshots) pozwalają na tworzenie punktów przywracania całego systemu plików, chroniąc przed przypadkowym usunięciem danych czy atakami ransomware.
- Wydajność: Zaawansowane mechanizmy buforowania, takie jak ARC (Adaptive Replacement Cache), inteligentnie wykorzystują pamięć RAM serwera do przyspieszenia dostępu do najczęściej używanych plików.
W naszym projekcie TrueNAS SCALE nie jest tylko magazynem na pliki. Jest aktywną platformą, która będzie hostować aplikacje Nextcloud i Kavita, zapewniając im stabilne i bezpieczne środowisko do działania.
Centrum Zarządzania: Nextcloud – Twoje Prywatne Centrum Danych
Nextcloud to znacznie więcej niż tylko alternatywa dla Google Drive czy Dropbox. Jest to potężna, otwartoźródłowa platforma do współpracy i synchronizacji plików, która oddaje użytkownikowi 100% kontroli nad danymi. W architekturze naszej cyfrowej biblioteki Nextcloud pełni rolę centrum logistycznego. Jego zadaniem jest zapewnienie prostego i uniwersalnego sposobu na zarządzanie plikami – dodawanie nowych magazynów, usuwanie starych numerów czy porządkowanie książek w folderach.
Dzięki klientom na komputery stacjonarne (Windows, macOS, Linux) oraz aplikacjom mobilnym (iOS, Android), Nextcloud umożliwia bezproblemową synchronizację plików między wszystkimi naszymi urządzeniami a serwerem. Możemy po prostu przeciągnąć nowy plik PDF do odpowiedniego folderu na naszym laptopie, a on automatycznie pojawi się na serwerze, gotowy do odczytania przez Kavita. Ta separacja ról jest kluczowa: Nextcloud doskonale radzi sobie z trudnym zadaniem zarządzania plikami i ich synchronizacją, pozwalając Kavita skupić się wyłącznie na tym, co robi najlepiej – na czytaniu.
Elegancka Czytelnia: Kavita – Serwer Stworzony dla Czytelników
Kavita jest klejnotem koronnym naszego systemu – to wyspecjalizowany serwer mediów, zaprojektowany od podstaw z myślą o czytelnikach. Podczas gdy Nextcloud posiada własną, prostą aplikację do czytania, Kavita oferuje doświadczenie o klasę wyższe, porównywalne z najlepszymi komercyjnymi aplikacjami. Jej główne atuty to:
- Szybkość i Wydajność: Interfejs jest niezwykle responsywny, a wbudowane czytniki są zoptymalizowane pod kątem płynnego przeglądania nawet bardzo dużych plików PDF czy archiwów z komiksami (CBZ/CBR).
- Bogate Metadane: Kavita automatycznie skanuje pliki, pobierając okładki, streszczenia i inne metadane, prezentując naszą kolekcję w formie atrakcyjnej wizualnie biblioteki, a nie tylko listy plików.
- Wyspecjalizowane Czytniki: Oferuje dedykowane, konfigurowalne czytniki dla różnych formatów, w tym tryb „webtoon” (przewijanie w pionie) dla komiksów internetowych, oraz zaawansowany czytnik EPUB z opcjami personalizacji czcionki, marginesów i motywów kolorystycznych.
- Dostęp Mobilny przez PWA: Kavita wykorzystuje technologię Progresywnej Aplikacji Webowej (PWA). Oznacza to, że możemy „zainstalować” jej stronę internetową na ekranie głównym naszego smartfona lub tabletu. Uruchamia się ona wtedy jak natywna aplikacja – na pełnym ekranie, bez paska adresu przeglądarki, oferując doskonałe wrażenia z użytkowania bez konieczności pobierania czegokolwiek ze sklepu z aplikacjami.
W naszym systemie Kavita działa jako elegancki front-end, który pobiera dane przygotowane i zorganizowane przez Nextcloud, a następnie prezentuje je w sposób zoptymalizowany pod kątem konsumpcji treści. Taki modularny podział obowiązków jest fundamentem solidnej i skalowalnej architektury.
Kładzenie Fundamentów: Struktura Danych i Uprawnienia w TrueNAS
Zanim zainstalujemy jakąkolwiek aplikację, musimy przygotować solidny fundament dla naszych danych. W świecie TrueNAS oznacza to stworzenie dedykowanej struktury w systemie plików ZFS i, co najważniejsze, precyzyjne skonfigurowanie uprawnień dostępu. Ten etap jest absolutnie kluczowy. Doświadczenie pokazuje, że niemal wszystkie późniejsze, trudne do zdiagnozowania problemy z aplikacjami, takie jak błędy „magazyn niedostępny” czy „brak dostępu”, mają swoje źródło w błędnie skonfigurowanych uprawnieniach na tym najniższym poziomie. Potraktowanie tej sekcji z należytą uwagą to najlepsza inwestycja czasu, która zaoszczędzi godzin frustrującego rozwiązywania problemów w przyszłości.

Planowanie Przestrzeni: Dedykowany Zbiór Danych (Dataset) na Media
Pierwszym krokiem jest wydzielenie logicznej przestrzeni na nasze książki i magazyny. Zamiast tworzyć zwykłe foldery, w TrueNAS użyjemy do tego zbiorów danych (datasets). Pozwalają one na znacznie bardziej granularne zarządzanie, na przykład ustawianie różnych reguł migawek czy uprawnień dla różnych typów danych.
Proces ten jest prosty:
- W interfejsie webowym TrueNAS SCALE należy przejść do sekcji
Datasets
. - Należy wybrać pulę dyskową (pool), na której będą przechowywane dane (np.
Pool1
), kliknąć na trzy kropki i wybraćAdd Dataset
. - Tworzymy główny zbiór danych dla naszego projektu, na przykład o nazwie
nextcloud
. Ścieżka do niego będzie wyglądać następująco:/mnt/Pool1/nextcloud
. - Następnie, klikając na trzy kropki obok nowo utworzonego datasetu
nextcloud
, tworzymy w nim dwa zagnieżdżone zbiory danych:books
orazmagazines
.
Dzięki temu uzyskujemy przejrzystą i łatwą w zarządzaniu strukturę: /mnt/Pool1/nextcloud/books
oraz /mnt/Pool1/nextcloud/magazines
.
Klucz do Królestwa: Dogłębna Analiza Uprawnień ACL
To jest najważniejszy etap konfiguracji. Aplikacje w TrueNAS SCALE działają w odizolowanych kontenerach jako specjalny, systemowy użytkownik o nazwie apps
. Aby aplikacje takie jak Nextcloud czy Kavita mogły odczytywać i zapisywać dane w naszych nowo utworzonych zbiorach danych, musimy jawnie nadać użytkownikowi apps
odpowiednie uprawnienia. Robimy to za pomocą List Kontroli Dostępu (ACL).
Wprowadzenie do ACL i użytkownika apps
TrueNAS SCALE domyślnie używa typu ACL NFSv4
, który jest bardziej granularny i złożony niż tradycyjne uprawnienia POSIX znane z systemów Linux. Każda oficjalna aplikacja z katalogu TrueNAS jest zaprojektowana do pracy z tym typem ACL i uruchamiana jest jako użytkownik apps
, który w systemie ma przypisany unikalny identyfikator (UID) 568
oraz należy do grupy apps
(GID 568
). Oznacza to, że aby wszystko działało poprawnie, właścicielem naszych zbiorów danych musi być właśnie użytkownik apps
.
Konfiguracja Krok po Kroku
Przejdźmy do edycji uprawnień dla naszego głównego zbioru danych /mnt/Pool1/nextcloud
. Zmiany te zostaną odziedziczone przez zagnieżdżone zbiory books
i magazines
.
- W sekcji
Datasets
należy odnaleźć zbiór danychnextcloud
, kliknąć na trzy kropki i wybraćEdit Permissions
. - W otwartym oknie edytora ACL należy ustawić właściciela. W polu
Owner
należy wybrać z listy użytkownikaapps
. - Następnie, w polu
Owner Group
należy wybrać grupęapps
. - Teraz przechodzimy do listy
Access Control List
. Musimy upewnić się, że istnieje wpis dla użytkownikaapps
i że ma on odpowiednie uprawnienia. Należy kliknąćAdd Item
i skonfigurować go następująco:Who
:User
User
:apps
Permissions
:Full Control
Flags
:Inherit
Krytyczne Ustawienia, Których Nie Można Pominąć
Dwa ustawienia w tym oknie są absolutnie kluczowe dla uniknięcia przyszłych problemów:
Permissions
:Modify
vs.Full Control
: Na pierwszy rzut oka mogłoby się wydawać, że uprawnieniaModify
(modyfikacja, odczyt, zapis, usuwanie) są wystarczające. Jednak niektóre aplikacje, w tym Nextcloud, do poprawnego działania wymagają uprawnieńFull Control
. Daje to aplikacji dodatkową możliwość zarządzania uprawnieniami do plików, które sama tworzy. WybórFull Control
jest bezpieczniejszą i pewniejszą opcją, która zapobiega całej klasie potencjalnych błędów.Flags
:Inherit
(Dziedzicz): To jest najważniejsza opcja w całym oknie. Ustawienie tej flagi sprawia, że każdy nowy plik i folder, który zostanie utworzony w tym zbiorze danych (np. poprzez wgranie pliku przez Nextcloud), automatycznie odziedziczy te same, poprawne uprawnienia. Bez tego, nowo dodany magazyn mógłby być niewidoczny dla Kavita, ponieważ nie miałby odpowiednich uprawnień do odczytu.
Na koniec, przed zapisaniem zmian, należy bezwzględnie zaznaczyć pole Apply permissions recursively
(Zastosuj uprawnienia rekursywnie). Spowoduje to nadanie skonfigurowanych uprawnień nie tylko samemu zbiorowi danych, ale także wszystkim plikom i folderom, które już się w nim znajdują. Po wykonaniu tych kroków i zapisaniu listy ACL, nasz fundament pod dane jest gotowy, solidny i poprawnie zabezpieczony.
Prywatna Chmura Plików: Instalacja i Konfiguracja Nextcloud
Mając przygotowaną i zabezpieczoną przestrzeń na dane, możemy przystąpić do instalacji pierwszego filaru naszego systemu – prywatnej chmury Nextcloud. Będzie ona pełnić rolę bramy do naszej biblioteki, umożliwiając łatwe zarządzanie plikami z dowolnego miejsca.
Instalacja Aplikacji
Instalacja Nextcloud w TrueNAS SCALE jest procesem prostym. W interfejsie webowym należy przejść do sekcji Apps
, wybrać zakładkę Available Applications
i wyszukać nextcloud
. Należy upewnić się, że wybrana aplikacja pochodzi z oficjalnego katalogu TrueNAS Community
. Podczas instalacji większość opcji można pozostawić domyślnych, z wyjątkiem danych administratora, które należy skonfigurować.
Budowanie Mostu do Danych: Izolacja Kontenerów i Montowanie Pamięci
Kluczowym konceptem w TrueNAS SCALE jest izolacja kontenerów. Każda aplikacja, w tym Nextcloud, działa we własnym, odseparowanym środowisku i domyślnie nie ma dostępu do głównego systemu plików serwera. Aby Nextcloud mógł „zobaczyć” nasze przygotowane wcześniej zbiory danych, musimy zbudować między nimi most. Służy do tego funkcja Additional Storage
w ustawieniach aplikacji.
- W sekcji
Apps
->Installed Applications
należy odnaleźć Nextcloud i kliknąćEdit
. - Należy przewinąć w dół do sekcji
Storage
i kliknąćAdd
obokAdditional Storage
. - W tym miejscu konfigurujemy „most”, definiując dwie ścieżki:
- Host Path (Ścieżka Hosta): To jest rzeczywista, fizyczna lokalizacja naszych danych na serwerze. Wskażemy tu nasz główny zbiór danych:
/mnt/Pool1/nextcloud
. - Mount Path in Pod (Ścieżka Montowania): To jest wirtualna ścieżka, pod którą dane z
Host Path
będą widoczne wewnątrz kontenera Nextcloud. Należy wpisać tu prostą i łatwą do zapamiętania nazwę, np./moje_dane
.
- Host Path (Ścieżka Hosta): To jest rzeczywista, fizyczna lokalizacja naszych danych na serwerze. Wskażemy tu nasz główny zbiór danych:
Po zapisaniu tych ustawień TrueNAS zrestartuje aplikację Nextcloud. Od tego momentu, z perspektywy aplikacji, w jej systemie plików istnieje folder /moje_dane
, który jest bezpośrednim odzwierciedleniem zawartości /mnt/Pool1/nextcloud
na serwerze.
Rozwiązywanie Problemów z Nextcloud
Nawet przy starannej konfiguracji, interakcja między systemem plików, kontenerem i aplikacją może prowadzić do problemów. Oto najczęstsze z nich, wraz z rozwiązaniami zdiagnozowanymi podczas rzeczywistego wdrożenia:
- Problem 1: Błąd „Storage is temporarily not available” lub „Service Unavailable” (HTTP 503).Ten błąd niemal zawsze wskazuje na problem z uprawnieniami. Aplikacja próbuje uzyskać dostęp do swoich plików, ale system operacyjny jej na to nie pozwala. Pierwszym krokiem jest powrót do Sekcji 2 tego przewodnika i skrupulatne zweryfikowanie wszystkich ustawień ACL dla zbioru danych. Należy upewnić się, że właścicielem jest apps i ma on uprawnienia Full Control z flagą Inherit, a zmiany zostały zastosowane rekursywnie.
- Problem 2: Brak możliwości tworzenia folderów mimo poprawnych ACL; komunikaty o istniejących folderach, których nie widać.To bardziej złożony problem, który pojawia się, gdy wewnętrzny indeks plików Nextcloud (przechowywany w bazie danych) staje się niespójny z rzeczywistą zawartością systemu plików. Może to być spowodowane konfliktem między synchronizacją klienta desktopowego a mechanizmem „Pamięci zewnętrznej”. Klient próbuje wgrywać pliki do domyślnej lokalizacji Nextcloud, podczas gdy my oczekujemy ich w podmontowanym folderze. Aplikacja tworzy foldery, ale w niewidocznym dla nas miejscu, co prowadzi do błędów „folder już istnieje”. Rozwiązanie: Należy zmusić Nextcloud do ponownego, kompletnego przeskanowania plików i odbudowania swojego indeksu. Służy do tego narzędzie wiersza poleceń
occ
.- Należy połączyć się z konsolą serwera TrueNAS (np. przez SSH).
- Należy wejść do wnętrza kontenera Nextcloud za pomocą komendy: docker exec -it ix-nextcloud-nextcloud-1 /bin/bash
- Będąc w kontenerze, należy uruchomić skanowanie dla wszystkich użytkowników, zalogować się jako root: sudo -i , i wykonać komendę: php /var/www/html/occ files:scan –all
- Po zakończeniu skanowania należy opuścić kontener (komendą
exit
) i zrestartować aplikację Nextcloud w interfejsie TrueNAS.
Ten proces naprawia niespójności w bazie danych aplikacji, rozwiązując problemy z „niewidzialnymi” folderami i przywracając pełną funkcjonalność zapisu.
Twoja Osobista Czytelnia: Instalacja i Konfiguracja Kavita
Gdy nasze centrum zarządzania plikami, Nextcloud, jest już w pełni operacyjne, nadszedł czas na stworzenie eleganckiej przestrzeni do czytania. Instalacja i konfiguracja Kavity jest znacznie prostsza, pod warunkiem, że rozumiemy jej specyficzne wymagania dotyczące struktury danych.
Instalacja Aplikacji
Podobnie jak w przypadku Nextcloud, Kavitę instalujemy z oficjalnego katalogu TrueNAS Community
. W sekcji Apps
należy wyszukać kavita
i postępować zgodnie z instrukcjami instalatora, konfigurując dane administratora.
Wskazanie Źródła
Kavita, tak jak Nextcloud, działa w odizolowanym kontenerze i potrzebuje „mostu” do naszych zbiorów danych. Proces ten jest analogiczny do tego, który przeprowadziliśmy dla Nextcloud, ale wykonamy go dwukrotnie – osobno dla książek i magazynów.
- W ustawieniach aplikacji Kavita w TrueNAS (
Apps
->Installed Applications
->kavita
->Edit
) należy przejść do sekcjiStorage
. - Korzystając z
Additional Storage
, dodajemy dwa wpisy:- Pierwszy wpis (Książki):
Host Path
:/mnt/Pool1/nextcloud/books
Mount Path in Pod
:/books
- Drugi wpis (Magazyny):
Host Path
:/mnt/Pool1/nextcloud/magazines
Mount Path in Pod
:/magazines
- Pierwszy wpis (Książki):
- Po zapisaniu konfiguracji aplikacja Kavita zostanie zrestartowana. Od tej pory wewnątrz jej kontenera będą widoczne dwa foldery:
/books
i/magazines
, które bezpośrednio wskazują na nasze dane.
Tworzenie Bibliotek
Po zalogowaniu się do interfejsu webowego Kavity, musimy poinformować ją, gdzie znajdują się nasze zbiory i jakiego są typu.
- Należy przejść do
Server Settings
->Libraries
. - Należy kliknąć
Add Library
. - Tworzymy pierwszą bibliotekę dla książek:
Name
: KsiążkiType
:Book
(jest to uniwersalny typ dla plików EPUB i PDF)Folder
: Po kliknięciuBrowse
należy wybrać folder/books
.
- Następnie, ponownie klikając
Add Library
, tworzymy drugą bibliotekę dla magazynów:Name
: MagazynyType
:Book
Folder
: Należy wybrać folder/magazines
.
Po zapisaniu Kavita rozpocznie skanowanie wskazanych folderów w poszukiwaniu plików.
Sekret Prawidłowego Skanowania: „Pusta Biblioteka” Rozwiązana
W tym momencie wielu użytkowników napotyka na problem: mimo że pliki PDF lub EPUB znajdują się w odpowiednich folderach, a uprawnienia są poprawne, biblioteka w Kavita pozostaje pusta. To nie jest błąd, lecz cecha wynikająca z filozofii działania aplikacji.
Serwery mediów, takie jak Kavita, Plex czy Jellyfin, nie są prostymi przeglądarkami plików. Są to narzędzia do zarządzania biblioteką, które narzucają własną, opartą na metadanych logikę na strukturę plików. Kavita oczekuje, że każdy odrębny element – każda książka, każdy numer magazynu, każdy tom komiksu – będzie znajdował się w swoim własnym, dedykowanym podfolderze. To pozwala jej poprawnie zidentyfikować „serię” (nazwa folderu) i jej zawartość (plik w środku).
- Zła Struktura (nie zadziała):
/magazines/ ├── magazyn_A_01-2024.pdf └── magazyn_A_02-2024.pdf
- Dobra Struktura (zadziała):
/magazines/ ├── Magazyn A (01-2024)/ │ └── magazyn_A_01-2024.pdf └── Magazyn A (02-2024)/ └── magazyn_A_02-2024.pdf
Po zorganizowaniu plików w ten sposób i ponownym uruchomieniu skanowania w Kavicie (Force Scan
), biblioteka poprawnie wypełni się zawartością, prezentując okładkę każdego numeru jako osobny element. Zrozumienie tej zasady jest kluczowe do bezproblemowego korzystania nie tylko z Kavity, ale z większości oprogramowania do self-hostingu mediów.
Wygodny Dostęp z Komputera: Sieciowe Udostępnianie Plików
Aby nasza biblioteka była łatwa w utrzymaniu, potrzebujemy prostego sposobu na dodawanie do niej nowych plików bezpośrednio z naszego komputera. Najlepszą metodą jest udostępnienie naszych zbiorów danych w sieci lokalnej. TrueNAS oferuje dwa popularne protokoły do tego celu: SMB (Samba) i NFS. Wybór między nimi ma istotne konsekwencje dla łatwości konfiguracji i bezproblemowego działania.
Wielka Debata: SMB kontra NFS w Sieci Domowej
Chociaż oba protokoły służą do udostępniania plików, robią to w fundamentalnie różny sposób, co ma bezpośredni wpływ na użytkownika domowego.
- NFS (Network File System): Jest to protokół natywny dla środowisk Linux/UNIX. W teorii oferuje nieco niższy narzut i potencjalnie wyższą wydajność w sieciach składających się wyłącznie z maszyn linuksowych. Jednak jego model uprawnień, oparty na identyfikatorach użytkownika (UID) i grupy (GID), jest źródłem niekończących się problemów w środowiskach mieszanych. Jak pokazały rzeczywiste trudności, poprawne zmapowanie użytkowników między serwerem TrueNAS a komputerem klienckim (np. Ubuntu czy macOS) może być skomplikowane i prowadzić do trudnych do zdiagnozowania błędów „access denied” lub „permission denied”, nawet gdy konfiguracja wydaje się poprawna.
- SMB (Server Message Block): Jest to protokół natywny dla systemów Windows, ale dzięki implementacji Samba jest doskonale wspierany na wszystkich platformach, w tym macOS i Linux. Jego największą zaletą jest model uwierzytelniania oparty na nazwie użytkownika i haśle. Zamiast martwić się o dopasowywanie UID/GID, po prostu tworzymy na serwerze dedykowanego użytkownika (np.
smb_user
z hasłem) i nadajemy mu uprawnienia do folderu. Podczas łączenia się z dowolnego komputera w sieci, podajemy te dane logowania i uzyskujemy dostęp. Jest to model znacznie prostszy do zrozumienia, wdrożenia i zarządzania w typowej sieci domowej.
Werdykt: Dla naszego celu – łatwego i niezawodnego dodawania plików do biblioteki z różnych komputerów – SMB jest zdecydowanie prostszym, bardziej elastycznym i mniej podatnym na błędy wyborem.
Cecha | SMB (Server Message Block) | NFS (Network File System) |
Główne środowisko | Natywny dla Windows, doskonale wspierany na Linux/macOS | Natywny dla Linux/UNIX |
Uwierzytelnianie | Oparte na użytkowniku i haśle (łatwe w zarządzaniu) | Tradycyjnie oparte na adresie IP i mapowaniu UID/GID (skomplikowane) |
Kompatybilność | Doskonała na wszystkich popularnych systemach operacyjnych | Najlepsza w homogenicznych sieciach Linux/UNIX; może sprawiać problemy z Windows/macOS |
Zarządzanie uprawnieniami | Intuicyjne, oparte na listach ACL dla konkretnych użytkowników | Zależne od spójności identyfikatorów użytkowników w całej sieci |
Łatwość konfiguracji | Wysoka; prosta do wdrożenia w sieci domowej | Niższa; wymaga głębszego zrozumienia mapowania użytkowników |
Rekomendacja | Zalecany dla typowych sieci domowych i środowisk mieszanych | Zalecany dla zaawansowanych użytkowników w sieciach opartych wyłącznie na Linuksie |
Poradnik: Konfiguracja Udziału SMB w TrueNAS
Udostępnienie naszych danych przez SMB jest niezwykle proste:
- W interfejsie TrueNAS należy przejść do sekcji
Shares
. - Przy
Windows (SMB) Shares
należy kliknąćAdd
. - W polu
Path
należy wybrać nasz główny zbiór danych, czyli/mnt/Pool1/nextcloud
. - W polu
Name
należy wpisać prostą nazwę, pod jaką udział będzie widoczny w sieci, np.nextcloud
. - Po zapisaniu udziału należy upewnić się, że usługa SMB jest włączona w sekcji
Services
.
Ostatnim krokiem jest nadanie uprawnień do tego udziału dla konkretnego użytkownika. Należy stworzyć w TrueNAS nowego, lokalnego użytkownika (np. o nazwie smb_user
) i dodać go do listy ACL dla zbioru danych nextcloud
(zgodnie z instrukcjami w Sekcji 2), nadając mu uprawnienia Full Control
.
Poradnik: Automatyczne Montowanie Udziału w Ubuntu przez /etc/fstab
Aby uniknąć konieczności ręcznego łączenia się z udziałem sieciowym po każdym uruchomieniu komputera, możemy skonfigurować system Ubuntu tak, aby robił to automatycznie. Wykorzystamy do tego plik /etc/fstab
.
- Instalacja narzędzi: Najpierw należy upewnić się, że zainstalowany jest pakiet cifs-utils:sudo apt-get update && sudo apt-get install cifs-utils
- Stworzenie punktu montowania: Należy utworzyć pusty folder, w którym pojawi się zawartość udziału sieciowego:sudo mkdir /media/nasza_biblioteka
- Stworzenie pliku z danymi logowania: Przechowywanie hasła bezpośrednio w pliku
/etc/fstab
jest niebezpieczne. Lepszym rozwiązaniem jest stworzenie osobnego, chronionego pliku:- Należy utworzyć plik:
nano ~/.smbcredentials
- W pliku należy wpisać dane w formacie:
username=smb_user password=haslo_uzytkownika
- Należy zabezpieczyć plik, nadając mu odpowiednie uprawnienia:
chmod 600 ~/.smbcredentials
- Należy utworzyć plik:
- Dodanie wpisu do
/etc/fstab
: Należy otworzyć plik/etc/fstab
z uprawnieniami administratora (sudo nano /etc/fstab
) i dodać na końcu nową linię, zastępując adres IP, ścieżki i nazwę użytkownika swoimi danymi://192.168.0.13/nextcloud /media/nasza_biblioteka cifs credentials=/home/nazwa_uzytkownika/.smbcredentials,uid=1000,gid=1000,iocharset=utf8,vers=3.0 0 0
//192.168.0.13/nextcloud
: Adres sieciowy i nazwa udziału SMB./media/nasza_biblioteka
: Lokalny punkt montowania.credentials=...
: Ścieżka do pliku z danymi logowania.uid=1000,gid=1000
: Ustawia lokalnego użytkownika i grupę jako właścicieli zamontowanego folderu, co zapewnia pełne uprawnienia do zapisu.vers=3.0
: Wymusza użycie nowoczesnej i bezpiecznej wersji protokołu SMB.
Po zapisaniu pliku /etc/fstab
i ponownym uruchomieniu komputera, folder z biblioteką będzie automatycznie dostępny w lokalizacji /media/nasza_biblioteka
, gotowy do łatwego dodawania nowych książek i magazynów.
Sekcja 6: Biblioteka w Twojej Kieszeni: Dostęp Mobilny i Zdalny
Stworzyliśmy potężny system, ale jego prawdziwa wartość ujawnia się, gdy możemy z niego korzystać swobodnie, niezależnie od tego, gdzie jesteśmy. W tej sekcji skonfigurujemy dostęp do naszej biblioteki z urządzeń mobilnych oraz bezpieczny dostęp zdalny z dowolnego miejsca na świecie, bez narażania naszej sieci domowej na niebezpieczeństwo.
Aplikacja bez App Store: Kavita jako Progresywna Aplikacja Webowa (PWA)
Jedną z najmocniejszych stron Kavity jest jej nowoczesny interfejs webowy, który został zaprojektowany jako Progresywna Aplikacja Webowa (PWA).7 PWA to technologia, która pozwala stronie internetowej zachowywać się jak natywna aplikacja mobilna. Możemy ją „zainstalować” na ekranie głównym smartfona lub tabletu, a po uruchomieniu otworzy się na pełnym ekranie, bez paska adresu przeglądarki, oferując płynne i zintegrowane doświadczenie.15
Instalacja PWA jest niezwykle prosta i nie wymaga wizyty w żadnym sklepie z aplikacjami 16:
- Na urządzeniach z systemem iOS (iPhone/iPad):
- Należy otworzyć przeglądarkę Safari i przejść pod adres lokalny naszej instancji Kavity (np.
http://192.168.0.13:5000
). - Należy dotknąć ikony „Udostępnij” (kwadrat ze strzałką w górę).
- Z listy opcji należy wybrać „Dodaj do ekranu początkowego”.
- Należy potwierdzić nazwę i dotknąć „Dodaj”. Na ekranie głównym pojawi się ikona Kavity.
- Należy otworzyć przeglądarkę Safari i przejść pod adres lokalny naszej instancji Kavity (np.
- Na urządzeniach z systemem Android:
- Należy otworzyć przeglądarkę Chrome i przejść pod adres lokalny Kavity.
- Należy dotknąć menu z trzema kropkami w prawym górnym rogu.
- Z menu należy wybrać opcję „Zainstaluj aplikację” lub „Dodaj do ekranu głównego”.
- Ikona Kavity zostanie dodana do listy aplikacji i na ekran główny.
Dzięki PWA, czytanie w podróży staje się równie wygodne, jak w dedykowanej aplikacji, z zachowaniem pełnej prywatności i kontroli.
Bezpieczna Brama na Świat: Nginx Proxy Manager i Cloudflare
Aby uzyskać dostęp do naszej biblioteki spoza sieci domowej, moglibyśmy po prostu przekierować porty na naszym routerze. Jest to jednak rozwiązanie niebezpieczne, ponieważ wystawia nasz serwer bezpośrednio na ataki z internetu, a także zdradza nasz domowy adres IP. Znacznie bezpieczniejszym i bardziej profesjonalnym podejściem jest użycie odwrotnego serwera proxy (reverse proxy) w połączeniu z usługą Cloudflare.
Cel: Chcemy uzyskać dostęp do naszej biblioteki pod przyjaznym adresem, np. kavita.mojadomena.pl
, z szyfrowaniem SSL, bez otwierania wielu portów i bez ujawniania naszego adresu IP.
Krok 1: Konfiguracja Cloudflare
Cloudflare to usługa, która stanie się pośrednikiem między internetem a naszym serwerem. Oferuje darmowy plan, który jest w zupełności wystarczający dla naszych potrzeb.
- Rejestracja i dodanie domeny: Należy założyć darmowe konto na Cloudflare i dodać swoją domenę (jeśli jej nie posiadamy, można ją tanio zarejestrować). Cloudflare poinstruuje, jak zmienić serwery nazw (nameservers) u rejestratora domeny.
- Tworzenie tokenu API: Nasz serwer proxy będzie potrzebował sposobu na automatyczne udowodnienie, że jest właścicielem domeny, aby uzyskać certyfikat SSL. Jest to kluczowe, zwłaszcza przy zmiennym adresie IP.
- W panelu Cloudflare należy przejść do
My Profile
->API Tokens
->Create Token
. - Należy użyć szablonu
Edit zone DNS
. - W sekcji
Zone Resources
należy wybrać konkretną domenę, której token ma dotyczyć. - Po utworzeniu tokenu należy go skopiować i zapisać w bezpiecznym miejscu. Będzie potrzebny tylko raz.23
- W panelu Cloudflare należy przejść do
Krok 2: Instalacja i Konfiguracja Nginx Proxy Manager (NPM)
NPM to łatwy w zarządzaniu odwrotny serwer proxy z graficznym interfejsem. Będzie on działał na naszym serwerze TrueNAS i pełnił rolę „dyspozytora ruchu”.
- Uwolnienie portów 80 i 443: Domyślnie interfejs webowy TrueNAS może zajmować standardowe porty HTTP (80) i HTTPS (443). Zanim zainstalujemy NPM, należy w ustawieniach TrueNAS (
System Settings
->General
) zmienić te porty na inne, np. 81 i 444.24 - Instalacja NPM: Należy zainstalować aplikację
nginx-proxy-manager
z kataloguTrueNAS Community
. Podczas instalacji należy upewnić się, że w sekcjiNetwork Configuration
portyHTTP Port
iHTTPS Port
są ustawione odpowiednio na 80 i 443.23 - Pierwsze logowanie: Dostęp do panelu administracyjnego NPM uzyskujemy pod adresem IP serwera i portem webowym (domyślnie 81 lub inny skonfigurowany, np.
http://192.168.0.13:81
). Domyślne dane logowania toadmin@example.com
z hasłemchangeme
, które należy natychmiast zmienić.26 - Tworzenie certyfikatu SSL:
- W panelu NPM należy przejść do
SSL Certificates
->Add SSL Certificate
->Let's Encrypt
. - W polu
Domain Names
należy wpisać naszą domenę w formie wildcard, np.*.mojadomena.pl
. - Należy włączyć opcję
Use a DNS Challenge
. - Jako
DNS Provider
należy wybraćCloudflare
. - W polu
Credentials File Content
należy wkleić skopiowany wcześniej token API od Cloudflare.23 - Po zaakceptowaniu warunków i zapisaniu, NPM automatycznie uzyska ważny certyfikat SSL dla naszej domeny i wszystkich jej subdomen.
- W panelu NPM należy przejść do
- Konfiguracja hosta proxy dla Kavity:
- Należy przejść do
Hosts
->Proxy Hosts
->Add Proxy Host
. - W zakładce
Details
:Domain Names
:kavita.mojadomena.pl
Scheme
:http
Forward Hostname / IP
: lokalny adres IP serwera TrueNAS (np.192.168.0.13
)Forward Port
: port, na którym działa Kavita (np.5000
)- Należy włączyć opcje
Block Common Exploits
iWebsockets Support
.
- W zakładce
SSL
:SSL Certificate
: Należy wybrać z listy utworzony wcześniej certyfikat wildcard.- Należy włączyć opcje
Force SSL
iHTTP/2 Support
.
- Po zapisaniu, NPM zacznie automatycznie kierować cały ruch przychodzący na adres
https://kavita.mojadomena.pl
do naszej lokalnej instancji Kavity, szyfrując całą komunikację.
- Należy przejść do
Dzięki tej konfiguracji uzyskujemy bezpieczny, profesjonalny dostęp zdalny. Nasz domowy adres IP pozostaje ukryty, a cała komunikacja jest szyfrowana. Dodanie dostępu do innych usług, takich jak Nextcloud, sprowadza się do stworzenia kolejnego hosta proxy (np. cloud.mojadomena.pl
) – bez konieczności otwierania dodatkowych portów na routerze.
Zakończenie: Twoje Prywatne Cyfrowe Sanktuarium
Po przejściu przez kolejne etapy konfiguracji, od fundamentalnych ustawień systemu plików po zaawansowaną konfigurację sieciową, stworzyliśmy coś znacznie więcej niż tylko serwer plików. Zbudowaliśmy w pełni funkcjonalny, prywatny ekosystem cyfrowy, który oddaje nam pełną kontrolę nad jedną z naszych najcenniejszych własności – wiedzą i rozrywką zawartą w naszej bibliotece.
System ten opiera się na solidnych i sprawdzonych technologiach. Niezawodny fundament ZFS w TrueNAS SCALE chroni integralność każdego bitu naszych danych. Wszechstronność Nextcloud zapewnia bezproblemowe zarządzanie plikami i ich synchronizację, stanowiąc solidne zaplecze logistyczne. Wreszcie, elegancja i szybkość Kavity przekształcają surowe pliki w piękną, interaktywną czytelnię. Całość, spięta bezpiecznym dostępem zdalnym za pomocą Nginx Proxy Manager i Cloudflare, tworzy rozwiązanie klasy korporacyjnej, dostępne w zaciszu własnego domu.
Wartość tego projektu wykracza poza czystą technologię. Jest to praktyczne zastosowanie idei cyfrowej suwerenności. Wysiłek włożony w konfigurację owocuje systemem, który jest w pełni nasz – prywatny, wolny od komercyjnych ograniczeń, subskrypcji i śledzenia. To my decydujemy, kto ma dostęp do naszych książek, jak są one prezentowane i na jakich urządzeniach możemy je czytać.
Stworzenie tak potężnego i zintegrowanego systemu jest możliwe tylko dzięki wysiłkowi tysięcy programistów i entuzjastów z całego świata, którzy tworzą i rozwijają oprogramowanie open-source. Projekty takie jak TrueNAS, Nextcloud i Kavita są świadectwem siły współpracy i wspólnego dążenia do tworzenia narzędzi, które wzmacniają pozycję użytkownika. Mamy nadzieję, że ten przewodnik nie tylko posłużył jako mapa do osiągnięcia celu, ale także zainspirował do dalszego odkrywania fascynującego świata self-hostingu i otwartego oprogramowania.